Та-дам! Делаю всё более и более конфигурируемые хуки. Теперь, какие хуки ставить и с помощью чего, определяется через Config.xml Можете потрогать ручками(конкретно вот этот файл).
Очень классно, если кто-нибудь попробует запустить хукер с таким конфигом над червяками (в формочке надо поменять путь на путь к червякам, и заменить конфиг):
Пожалуйста, протестируйте кто-нибудь на червяках, мне надо узнать, работает ли оно. При старте игры должно появиться окошко с текстом вида luaL_openlib called for ... ________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
Так, ещё вот это надо кому-нибудь протестировать: http://dl.dropbox.com/u/1691759/LuaInject.zip Надо запустить с помощью этой проги червяков и проверить, что выводятся сообщения (скоре всего при старте игры). Последовательность сообщений должна быть такая: 1 lua_pushcfunction 1 lua_pushcfunction 2 2 lua_setglobal 1 lua_setglobal 2 lua_setglobal 3 lua_setglobal 4 3 lua_getglobal 1 lua_getglobal 2 lua_getglobal 3 4 5
Так, мне опять нужна ваша помощь) Протестируйте это: http://dl.dropbox.com/u/1691759/LuaInject.zip Должно выводиться много-много сообщений. Меня же интересует лишь наличие двух из них:
Code
can't hook lua_atpanic can't hook lua_call
Если первого нет - это мега круто)) ________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
Это усраться, как здорово! Мы доказали, что функции в червяках экспортированы по-нормальному, просто имена функций подвергнуты "Name mangling") Соответственно, я это теперь учёл и вот новый хукер: http://dl.dropbox.com/u/1691759/LuaInject.zip Жду результатов) ________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
Обновил, теперь надо тестировать это http://dl.dropbox.com/u/1691759/LuaInject.zip ________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
Unaited, а после последнего, что было? вот это: LocalHook.Create done? или игра вылетела, или что? ________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
а, всё, вижу! мы её почти хукнули!!!! теперь попробуй в файл stdvs.lua в функцию Worm_Died() впиши вызов функции hack:
Code
function Worm_Died() hack() -- if there is only one team left abort the turn now rather than wait on SendMessage("WormManager.GetActiveAlliances") AllianceCount = GetData("AllianceCount") if AllianceCount < 2 then SendMessage("Weapon.Delete") SendMessage("Utility.Delete") SendMessage("Timer.EndTurn") SendMessage("Weapon.DisableWeaponChange") EndTurn() end end
вообще без каких-либо сообщений? ________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
Меня сраный юкоз заблочил по ип (где-то на сутки). Добавься ко мне в скайп - gerich.work ________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|