Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
19 Nov 2015, 23:10
(Сообщение отредактировал feanor - 19 Nov 2015, 23:15)
Сообщение
#321
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20605 раз |
Эм, что не билдится?
если чо, прост распакуй рыбу, ребилдни и попробуй скомпилить |
|
|
|
19 Nov 2015, 23:18
(Сообщение отредактировал igrik - 19 Nov 2015, 23:36)
Сообщение
#322
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
![]() А как распаковать рыбу? Код #include <windows.h> #include <stdio.h> #include "..\..\Era\era.h" Patcher * globalPatcher; PatcherInstance *patcher; int __stdcall hook_464FBA(LoHook* h, HookContext* c) { FireErmEvent(880001); return EXEC_DEFAULT; } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { if (ul_reason_for_call == DLL_PROCESS_ATTACH) { globalPatcher = GetPatcher(); patcher = globalPatcher->CreateInstance("Poker"); ConnectEra(); patcher->WriteLoHook(0x464FBA, (void*)hook_464FBA); } return TRUE; } -------------------- |
|
|
|
19 Nov 2015, 23:35
Сообщение
#323
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20605 раз |
Ошибки-то какие?
|
|
|
|
19 Nov 2015, 23:37
(Сообщение отредактировал igrik - 19 Nov 2015, 23:37)
Сообщение
#324
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
-------------------- |
|
|
|
19 Nov 2015, 23:43
(Сообщение отредактировал feanor - 19 Nov 2015, 23:44)
Сообщение
#325
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20605 раз |
Эм, а сама-то дллка создается?
И да, инклуд патчера куда подевался? Цитата А как распаковать рыбу? Винраром, полагаю я.Цитата
|
|
|
|
19 Nov 2015, 23:48
Сообщение
#326
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
На счет рыбы затупил))
Получилось!! Огромное спасибо!!! -------------------- |
|
|
|
19 Nov 2015, 23:54
Сообщение
#327
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20605 раз |
Цитата Successful
|
|
|
|
21 Nov 2015, 09:45
(Сообщение отредактировал igrik - 21 Nov 2015, 10:05)
Сообщение
#328
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
igrik, а можно допилить, чтобы еще и уровень (нет...эксперт) каста задавать? И силу(длительность). И сторону (левый/правый/обе/поле?/целевой гекс?). С заклинаниями урона работает, кстати? А с минами/зыбучими песками? Algor, слишком сложно реализовать все хотелки, ибо нюансов тут масса. Ты лучше ее потестируй и запили в нужном для тебя контексте. Но если вкратце, то основная команда: Код !!UN:C6919200/4/?y1; !!SN:E5898560/2/y1/x1/-1/2/-1/3/50; Сторону выбрать ты не можешь. Заклинание кастуется только активной стороной (и если это дружественное, то на себя и т.п.). Собственно !!SN:E5898560/2/y1/x1/x2/x3/x4/x5/x6 это функция каста закла, где: y1 - это комбат менеджер (его мы не трогаем и оставляем как есть) x1 - номер закла (очень важна связка с x2, иначе вылеты), если целевое заклинание, то обязательно в x2 номер цели x2 - целевой стек (важно чтобы там был стек монстра), либо если массоввый закл (-1) /либо поле, но я не тестировал на этом/ x3 - кто кастует и описалово как в !!MM: 0 - герой (c вычетом маны и невозможностью каста в этом раунде битвы), 1 - монстр, 2 - арт (зачастую "что попало" в !!MM), 3 - герой (без вычета маны), 4 - герой (без вычета маны + бистро бистро анимация) x4 - тут если НЕ стоит -1, то это становится целевй стек, а на позиции x2 проигрывается анимация "волшебное зеркало" x5 - собственно уровень навыка (нет...эксперт) x6 - длительность/сила Минное поле/ зыбучие пески работают как массовый закл c x2=-1. Армагеддон тоже массовый. Ударные заклинания работают: у меня лазурный перед ударом бил взрывом Если в x3=1 (монстр), то полет заклинания происходит от позиции данного стека. Походу через эту функцию запилили атаку Санта-гремлинов. -------------------- |
|
|
|
05 Dec 2015, 12:45
(Сообщение отредактировал Richter - 09 Dec 2015, 14:17)
Сообщение
#329
|
|
![]() collector of time Сообщений: 159 Спасибо сказали: 73 раза |
Здравствуйте все! Задача у меня назрела следующая:
Понадобилось разместить def файл в окне героя, с управлением под "началом" ERM (тобишь регулировать показ номера кадра) с координатами (x,y) размером выше 1 байта. Думалось поначалу через Olly переписать ID (110) показа слова "Журнал" в окне героя. Ничего не вышло. Нужно допом что то писать похоже, чтобы вклиниться. Может ZGODBON.DEF задействовать, но где его функция. Несмог найти. Есть у кого интерес? -------------------- |
|
|
|
05 Dec 2015, 14:23
(Сообщение отредактировал igrik - 05 Dec 2015, 14:25)
Сообщение
#330
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
Не уверен, но попробуй через добавление новой кнопки + эта функция
Код !!UN:C10916496/4/?y1; !!if&y1>0:; !!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3 Ey3/0/^название основной кнопки (без расширения def)^; !!VRy4:Sv1; !!SN:E6288384/2/y1/512/9/y4/z1; !!SN:E6288384/2/y1/512/2/y4/0; !!SN:E6288528/2/y1/6/16384; !!SN:E6288816/2/y1/6; !!en:; в z1 должно лежать название дефа кнопки которую нужно отобразить -------------------- |
|
|
|
07 Dec 2015, 14:40
(Сообщение отредактировал Richter - 07 Dec 2015, 14:54)
Сообщение
#331
|
|
![]() collector of time Сообщений: 159 Спасибо сказали: 73 раза |
Код !!UN:C10916496/4/?y1; !!if&y1>0:; !!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3 Ey3/0/^название основной кнопки (без расширения def)^; !!VRy4:Sv1; !!SN:E6288384/2/y1/512/9/y4/z1; !!SN:E6288384/2/y1/512/2/y4/0; !!SN:E6288528/2/y1/6/16384; !!SN:E6288816/2/y1/6; !!en:; в z1 должно лежать название дефа кнопки которую нужно отобразить Не совсем понял как реализовать контроль за кадром, сделал так. !?FU5212225; !!VRz477:S^Butst1.def^; !!UN:C10916496/4/?y1; !!if&y1>0:; !!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3 Ey3/0/^Butst1^; !!VRy4:Sv1; !!SN:E6288384/2/y1/512/9/y4/z477; !!SN:E6288384/2/y1/512/2/y4/0; !!SN:E6288528/2/y1/6/16384; !!SN:E6288816/2/y1/6; !!en:; !?CM2; !!CM:I?y5 F?y6; !!FU5212225&y5=0/y6=512:P; Вызов функции по ПКМ на условном месте 0. Пишет ошибка синтаксиса: Ey3/0/^Butst1^; P.S. текстовик для кнопок и dll'ка на своих местах. -------------------- |
|
|
|
07 Dec 2015, 14:50
(Сообщение отредактировал igrik - 07 Dec 2015, 14:53)
Сообщение
#332
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
в z477 - название кнопки, которую хочешь там видеть
Ey3/0/^название основной кнопки^ - оно не изменно, и должно быть прописано у тебя в button.btn. А ты название новой впилил зачем то в "Ey3/0/^название основной кнопки^" Например. Старая кнопка называется Butst1, а новая Butst2. Тогда код будет примерно таким Код !!VRz477:S^Butst2.def^; !!FU1:P; !?FU1; !!UN:C10916496/4/?y1; !!if&y1>0:; !!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3 Ey3/0/^Butst1^; !!VRy4:Sv1; !!SN:E6288384/2/y1/512/9/y4/z477; !!SN:E6288384/2/y1/512/2/y4/0; !!SN:E6288528/2/y1/6/16384; !!SN:E6288816/2/y1/6; !!en:; -------------------- |
|
|
|
07 Dec 2015, 15:04
(Сообщение отредактировал Richter - 07 Dec 2015, 16:16)
Сообщение
#333
|
|
![]() collector of time Сообщений: 159 Спасибо сказали: 73 раза |
в z477 - название кнопки, которую хочешь там видеть Ey3/0/^название основной кнопки^ - оно не изменно, и должно быть прописано у тебя в button.btn. А ты название новой впилил зачем то в "Ey3/0/^название основной кнопки^" Например. Старая кнопка называется Butst1, а новая Butst2... [/code] Значит для каждого кадра нужна кнопка своя? Видимо я не правильно понял. Думал просто, что контроль за кадрами одного def'а. Завтра попробую.Сегодня, не дома.Спасибо. -------------------- |
|
|
|
07 Dec 2015, 16:18
(Сообщение отредактировал igrik - 07 Dec 2015, 16:32)
Сообщение
#334
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
Вот для одного дефа отображение различных кадров. До конца не разобрался что и как, но работает.
Код !!FU898112:P25; 25- кадр дефа !?FU898112; ; x1 - номер кадра дефа !!UN:C6918864/4/?y1; !!VRy1:+84; !!UN:Cy1/4/?y10; !!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3 Ey3/0/^YBackpack^; !!VRy4:Sv1; !!SN:E6288384/2/y10/512/4/y4/0; !!SN:E6288528/2/y10/y4/x1; !!UN:R3/-1; YBackpack взято из конфига кнопки Код Hero;[b]YBackpack[/b];UN44.def;425;430;0;0;Щёлкните здесь, чтобы посмотреть артефакты в рюкзаке героя.;Посмотреть рюкзак; Если ты знаешь ID кнопки, то можешь без этой лабуды указать ее ID вместо y4 и удалить !!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3 Ey3/0/^YBackpack^; !!VRy4:Sv1; upd: На сколько я понял, через данную функцию можно отображать не только дефы, но и текст и *.pcx -------------------- |
|
|
|
07 Dec 2015, 16:24
(Сообщение отредактировал Richter - 09 Dec 2015, 14:17)
Сообщение
#335
|
|
![]() collector of time Сообщений: 159 Спасибо сказали: 73 раза |
Igrik, можешь подсказать как найти координаты и размер ZGODBON.def. Декомпилят весь излазил уже?
-------------------- |
|
|
|
07 Dec 2015, 16:28
Сообщение
#336
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
сомневаюсь, что это есть в декомпелированой базе.
Вскрываешь деф и смотришь, что размер - 44х43 Координаты: если ты спрашиваешь как узнать, то делаешь скрин экрана героя и замеряешь. Если ты спрашиваешь как изменить эти координаты - то я не знаю как -------------------- |
|
|
|
07 Dec 2015, 16:32
(Сообщение отредактировал Richter - 07 Dec 2015, 16:35)
Сообщение
#337
|
|
![]() collector of time Сообщений: 159 Спасибо сказали: 73 раза |
Координаты нашел, 127х187 177х187. Только через арт мани терпения не хватает искать. Много значений.
-------------------- |
|
|
|
07 Dec 2015, 16:35
Сообщение
#338
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
Второй способ поиска, которым всегда пользуюсь сам, через !!CM:A?y1/?y2; !!IF:M^%Y1 %Y2^;
-------------------- |
|
|
|
08 Dec 2015, 17:43
Сообщение
#339
|
|
![]() collector of time Сообщений: 159 Спасибо сказали: 73 раза |
Попробовал всё работает. Правда не так немного.
Хотелось бы чтобы работало сразу после триггера !?FU77004;(вход а окно героя). Зашел в экран, а там уже нужный кадр стоит, как навыки героя. -------------------- |
|
|
|
08 Dec 2015, 21:35
(Сообщение отредактировал igrik - 08 Dec 2015, 21:50)
Сообщение
#340
|
|
![]() Immortal Сообщений: 589 Спасибо сказали: 891 раз |
feanor, а можно создать сразу несколько хуков в одну dll. А то их у меня уже собралось 6 штук. И 6 dll как то некамильфо...
Код #include #include #include "..\..\include\era.h" #include "..\..\include\patcher_x86_commented.hpp" Patcher * globalPatcher; PatcherInstance *patcher; int __stdcall hook_YAtrCast(LoHook* h, HookContext* c) { FireErmEvent(79001); return EXEC_DEFAULT; } int __stdcall hook_YAfterShoot(LoHook* h, HookContext* c) { FireErmEvent(79002); return EXEC_DEFAULT; } int __stdcall hook_YAfterStrike(LoHook* h, HookContext* c) { FireErmEvent(79003); return EXEC_DEFAULT; } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { if (ul_reason_for_call == DLL_PROCESS_ATTACH) { globalPatcher = GetPatcher(); patcher = globalPatcher->CreateInstance("igrik_dll"); ConnectEra(); patcher->WriteLoHook(0x464FBA, (void*)hook_YAtrCast); patcher->WriteLoHook(0x43FF7E, (void*)hook_YAfterShoot); patcher->WriteLoHook(0x441AF7, (void*)hook_YAfterStrike); } return TRUE; } upd: хук "hook_YAtrCast" (FireErmEvent(79001)) вызывается дважды, а другие на работают. Млин -------------------- |
|
|
|
![]() ![]() |
| Текстовая версия | Сейчас: 20 December 2025 - 20:56 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|