IPB

Здравствуйте, гость ( Вход | Регистрация )

23 страниц V  « < 15 16 17 18 19 > »   
Reply to this topicStart new topic
> Обсуждение инженерного анализа
feanor
сообщение 19 Nov 2015, 23:10 (Сообщение отредактировал feanor - 19 Nov 2015, 23:15)
Сообщение #321

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Эм, что не билдится?
если чо, прост распакуй рыбу, ребилдни и попробуй скомпилить
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 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;
}


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 19 Nov 2015, 23:35
Сообщение #323

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Ошибки-то какие?
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 19 Nov 2015, 23:37 (Сообщение отредактировал igrik - 19 Nov 2015, 23:37)
Сообщение #324

Immortal
Сообщений: 589
Спасибо сказали: 891 раз






--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 19 Nov 2015, 23:43 (Сообщение отредактировал feanor - 19 Nov 2015, 23:44)
Сообщение #325

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Эм, а сама-то дллка создается?
И да, инклуд патчера куда подевался?

Цитата
А как распаковать рыбу?
Винраром, полагаю я.
Цитата
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 19 Nov 2015, 23:48
Сообщение #326

Immortal
Сообщений: 589
Спасибо сказали: 891 раз




На счет рыбы затупил))
Получилось!! Огромное спасибо!!!


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 19 Nov 2015, 23:54
Сообщение #327

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Цитата
Successful


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 21 Nov 2015, 09:45 (Сообщение отредактировал igrik - 21 Nov 2015, 10:05)
Сообщение #328

Immortal
Сообщений: 589
Спасибо сказали: 891 раз




Цитата(Algor @ 21 Nov 2015, 08:32) *
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 (монстр), то полет заклинания происходит от позиции данного стека. Походу через эту функцию запилили атаку Санта-гремлинов.


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Richter
сообщение 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 задействовать, но где его функция. Несмог найти. Есть у кого интерес?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 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 должно лежать название дефа кнопки которую нужно отобразить


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Richter
сообщение 07 Dec 2015, 14:40 (Сообщение отредактировал Richter - 07 Dec 2015, 14:54)
Сообщение #331

collector of time
Сообщений: 159
Спасибо сказали: 73 раза




Цитата(igrik @ 05 Dec 2015, 16:23) *
Код
!!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'ка на своих местах.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 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:;



--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Richter
сообщение 07 Dec 2015, 15:04 (Сообщение отредактировал Richter - 07 Dec 2015, 16:16)
Сообщение #333

collector of time
Сообщений: 159
Спасибо сказали: 73 раза




Цитата(igrik @ 07 Dec 2015, 16:50) *
в z477 - название кнопки, которую хочешь там видеть
Ey3/0/^название основной кнопки^ - оно не изменно, и должно быть прописано у тебя в button.btn.
А ты название новой впилил зачем то в "Ey3/0/^название основной кнопки^"

Например. Старая кнопка называется Butst1, а новая Butst2...
[/code]

Значит для каждого кадра нужна кнопка своя? Видимо я не правильно понял. Думал просто, что контроль за кадрами одного def'а.
Завтра попробую.Сегодня, не дома.Спасибо.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 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


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Richter
сообщение 07 Dec 2015, 16:24 (Сообщение отредактировал Richter - 09 Dec 2015, 14:17)
Сообщение #335

collector of time
Сообщений: 159
Спасибо сказали: 73 раза




Igrik, можешь подсказать как найти координаты и размер ZGODBON.def. Декомпилят весь излазил уже?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 07 Dec 2015, 16:28
Сообщение #336

Immortal
Сообщений: 589
Спасибо сказали: 891 раз




сомневаюсь, что это есть в декомпелированой базе.
Вскрываешь деф и смотришь, что размер - 44х43
Координаты: если ты спрашиваешь как узнать, то делаешь скрин экрана героя и замеряешь.
Если ты спрашиваешь как изменить эти координаты - то я не знаю как


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Richter
сообщение 07 Dec 2015, 16:32 (Сообщение отредактировал Richter - 07 Dec 2015, 16:35)
Сообщение #337

collector of time
Сообщений: 159
Спасибо сказали: 73 раза




Координаты нашел, 127х187 177х187. Только через арт мани терпения не хватает искать. Много значений.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 07 Dec 2015, 16:35
Сообщение #338

Immortal
Сообщений: 589
Спасибо сказали: 891 раз




Второй способ поиска, которым всегда пользуюсь сам, через !!CM:A?y1/?y2; !!IF:M^%Y1 %Y2^;


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Richter
сообщение 08 Dec 2015, 17:43
Сообщение #339

collector of time
Сообщений: 159
Спасибо сказали: 73 раза




Попробовал всё работает. Правда не так немного.
Хотелось бы чтобы работало сразу после триггера !?FU77004;(вход а окно героя). Зашел в экран, а там уже нужный кадр стоит, как навыки героя.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
igrik
сообщение 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)) вызывается дважды, а другие на работают. Млин


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post

23 страниц V  « < 15 16 17 18 19 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20 December 2025 - 20:56
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика