![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#61
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
Отключил по надобности Маскировку и повесил хук, передающий управление ERM-функции.
Код *Set hook to case 4 of switch 0041C663 !#UN:C4310919/1/104 C4310920/4/@ERM func num@; push @ERM func num@ !#UN:C4310924/1/184 C4310925/4/7654960; mov eax, 0074CE30 !#UN:C4310929/2/53503; call eax !#UN:C4310931/1/131 C4310932/2/1220; add esp,4 !#UN:C4310934/2/23275; jmp short 0041C7F2 В Ассемблере я пока ламер, так что не знаю, верно ли сделал хоть наполовину. Знаю только, что работает. -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#62
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
"К концу года все программисты геройского сообщества выстроились в очередь за консультацией у нынешнего гуру Master Of Puppets..." Новости, 21 сентября, 2010г.
Молодец, на самом деле все новые события нужно собирать в одной теме, чтобы потом цивилизованно встроить. -------------------- |
|
|
![]()
Сообщение
#63
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
Активация кнопки "Следующий герой", отключенной в ТЕ.
В виде скрипта: !#UN:C4234473/4/1987433092 C4234477/1/139; Для патчинга экзешника: 9CE9 84D275768B -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#64
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
Мы Сегодня С Баем...
![]() ZVSE ; ОТКРЫТИЕ ОКНА СЛОТОВОГО СУЩЕСТВА & ВСТРЕЧА ГЕРОЕВ ЧЕРЕЗ ERM С ПОМОЩЬЮ ЭРЫ ; by Master Of Puppets !?FU@Открытие окна слотового существа@; ; конвертирование - thiscall ; x1: 0 - герой, 1 - город, 2 - гарнизон, 3 - шахта ; x2 - номер объекта: HE:N, CA:U, OB:C ; x3 - номер слота ; x4 - наличие кнопки "Уволить": 1 - да, 0 - нет ; x5 - закрыть диалог при отпускании мыши: 1 - да, 0 - нет !!UN:C6933756/4/?y5; //получить адрес структуры текущего игрока !!OW:C?y2; //получить цвет текущего игрока !!VRy1:Sy2*360; //360 байт на структуру игрока !!VRy5:-y1; //вычитаем и перемещаемся в начало структур !!UN:C6919480/4/?y10; !!if&x1=0; //ГЕРОЙ !!HE-1&x2=-1:N?x2; //если герой указан как -1, получить его номер !!VRy1:Sx2*1170+y5+3041; //1170 байт на структуру героя !!VRy3:Sx3*4+y1; //смещение до нужного слота !!UN:Cy3/4/<0; //проверить, есть ли в этом слоте существо !!FU&1:E; //выход, если существа нет *тип = -1* !!VRy3:Sy1-145; !!SN:E5007632/2/y10/y1/x3/y3/0/119/20/x4/x5; //выполнить внутреннюю игровую функцию !!en; !!if&x1=1; //ГОРОД !!VRy1:Sy5+2884; //найти указатель на структуру городов !!UN:Cy1/4/?y2; //получить адрес структуры !!VRy1:Sx2*360+y2+224; //360 байт на структуру города !!VRy3:Sx3*4+y1; //смещение до нужного слота !!UN:Cy3/4/<0; //проверить, есть ли в этом слоте существо !!FU&1:E; //выход, если существа нет *тип = -1* !!VRy3:Sy1-224; !!SN:E5007632/2/y10/y1/x3/0/y3/119/20/x4/x5; //выполнить внутреннюю игровую функцию !!en; !!if&x1>1; //ГАРНИЗОН & ШАХТА !!UN:C6919480/4/?y2; !!VRy2&x1=2:+320428; //смещение для гарнизонов !!VRy2&x1=3:+320396; //для шахт !!UN:Cy2/4/?y1; //найти адрес начала таблицы объектов !!VRy1:+4; //существа в слотах начинаются через 4 байта !!VRy4:Sx2*64+y1; //64 байта на объект !!VRy3:Sx3*4+y4; //смещение до нужного слота !!UN:Cy3/4/>-1; //проверить, есть ли в этом слоте существо !!SN&1:E5007632/2/y10/y4/x3/0/0/119/20/x4/x5; //если есть - выполнить внутреннюю игровую функцию !!en; !?FU@Встреча героев@; ; конвертирование - thiscall !!UN:C6933756/4/?y5; //получить адрес структуры текущего игрока !!OW:C?y2; //получить цвет текущего игрока !!VRy1:Sy2*360; //360 байт на структуру игрока !!VRy5:-y1; //вычитаем и перемещаемся в начало структур !!VRy6:Sx1*1170+2896+y5; //для первого героя нужен адрес его структуры !!UN:C4199692/4/x2 C6918840/4/?y7; //для второго героя - просто его номер, записанный к какой угодно адрес. !!SN:E4858992/2/y7/y6/4199692/0/1; //выполнить функцию -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#65
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20603 раза ![]() |
!!UN:C6916632/4/9; (698A18: 09)
включает указание координат в подсказке для почвы/объектов. |
|
|
![]()
Сообщение
#66
|
|
![]() Etoslozhnostatus Сообщений: 8 623 Спасибо сказали: 16066 раз ![]() |
Кстати, там, наверное, ещё много всяких отключённых плюшек должно быть, кроме указания координат объектов?
-------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]()
Сообщение
#67
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20603 раза ![]() |
Угу, вроде с десяток - но они как-то неочевидны.
|
|
|
![]()
Сообщение
#68
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
!?CM1; //тест: любой клик в любом городе
!!CA-1:H1/<0; //есть ли герой-гость? !!FU&1:E; //выход, если нет !!UN:C6919500/4/?y1; //указатель на TownManager !!SN:E6129792/2/y1; //открыть Врата Замка !?CM1; //тест: любой клик в любом городе !!UN:C6919500/4/?y1; //указатель на TownManager !!SN:E6106032/2/y1; //вход в Зал Совета И всё в таком же духе... -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#69
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20603 раза ![]() |
!!UN:C6918840/4/?y1;
!!VRy1:+60; !!UN:Cy1/1/1; показ FPS вместо строки чата. Отключение, соответственно, .... !!UN:Cy1/1/0; |
|
|
![]()
Сообщение
#70
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
Функция, выясняющая связь между Вратами Подземного Мира:
!?FU101; !!UN:C6919480/4/?y1; !!VRy1:+321440; !!UN:Cy1/4/?y2; !!VRx1:*4+y2; !!UN:Cx1/4/?x2; Вызов: !!FU101:P#/?$; Где x1 - контрольное число проверяемых Врат. В x2 возвратится контрольное число Врат, с которыми данные Врата связаны. -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#71
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20603 раза ![]() |
Переписал функцию смены координат здания в городе на ERM:
Код !!VRy1:S0; //city (e.g. Castle)
!!VRy2:S5; //building ID (e.g Tavern) !!VRy6:S2; //frames num in new def !!VRy3:S250; //new x !!VRy4:S200; //new y !!VRy5:Sy1 *44 +y2 *6 +6859276; !!UN:Cy5/2/y6; !!VRy5:+2; !!UN:Cy5/2/y3; !!VRy5:+2; !!UN:Cy5/2/y4; |
|
|
![]()
Сообщение
#72
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20603 раза ![]() |
Аналогично для настройки черных рынков:
!?FU9000; !!UN:C6919480/4/?y1; !!VRy1:+128644; !!UN:Cy1/4/?y2; !!VRy3:Sx1 *7 + x2 *4 + y2; !!UN:Cy3/4/x3; x1 - номер рынка(0..31) x2 - номер слота (0..6) x3 - номер артефакта !!FU9000:P0/0/3; - продаем катапульту в первом слоте первого рынка. |
|
|
![]()
Сообщение
#73
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
-------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#74
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20603 раза ![]() |
Тьфу. Ну ладно, пусть будет.
|
|
|
![]()
Сообщение
#75
|
|
![]() Etoslozhnostatus Сообщений: 8 623 Спасибо сказали: 16066 раз ![]() |
Зато новый велосипед более удобен и готов к использованию.
-------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]()
Сообщение
#76
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
Соседи клетки !?FU#:Pv1/v2/?v3; - возвращает одну из 6 соседних клеток v1 - номер клетки на поле боя v2 - индекс соседа (0..5) (порядок - по часовой стрелке, начиная с клетки справа-сверху) v3 - возвращает номер соседней клетки (-1 если того соседа нет или он вне поля боя, например, клетка 0, клетка 16, ...) Код !?FU#; !!UN:C6919200/4/?y1; [y1 = combatManager] !!VRx1:*12 +y1 +78952 + x2; !!UN:Cx1/1/?x3; Вернее: !?FU#; !!UN:C6919200/4/?y1; [y1 = combatManager] !!VRx2:*2; !!VRx1:*12+y1+78952+x2; !!UN:Cx1/2/?x3; Позиция на поле боя – это word. -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#77
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
Открытие диалога Командира
Код !?FU@FunctionNumber@; ; x1: номер героя ; x2: 0 - обычный диалог, 1 - повышение уровня [обманка] ; x3: 0 - есть кнопка OK, 1 - нет ; x4: result [0 - командир оставлен, -1 - командир уволен] !!VRy1:Sv1; !!VRx1:*296+42344640; !!SN:E7775342/2/x1/x2/x3/0; !!SN:E7812840/1/42337496; !!VRx4:Sv1; !!VRv1:Sy1; -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#78
|
|
![]() допустим, мяў Сообщений: 24 113 Спасибо сказали: 13422 раза ![]() |
А героя в лодку посадить и вытащить сможешь?
-------------------- Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская) |
|
|
![]()
Сообщение
#79
|
|
![]() Анти-Всë Сообщений: 2 989 Спасибо сказали: 2377 раз ![]() |
Код !?FU@FunctionNumber@; ; x1: 0 - посадить Гиппокамуса в лодку, другое значение - вытолкнуть его из лодки ; x2 - номер Гиппокамуса [см. паспортные данные] ; x3-x5 - координаты клетки, где стоит лодка [должна существовать хоть одна лодка на карте]. Для высадки координаты не требуются и герой появляется там же, где стояла лодка. !!UN:C6918840/4/?y2; //получить адрес AdvManager !!SN:E7411341/1/x2; //получить адрес структуры героя !!VRy3:Sv1; !!if&x1=0; !!HEx2:Px3/x4/x5; //переместить героя в лодку, ибо когда он будет посажен, переместить его не выйдет ; Коммент: можно в любую точку, просто будет использована одна из существующих лодок, в которую и превратится герой !!VRx5:*4; //умножить уровень на 4 !!UN:C10784129/1/0 C10784128/1/x3 C10784130/1/x4 C10784131/1/x5; //записать все данные побайтно в адрес y1 !!SN:E7410371/1/y1; //получить адрес структуры клетки !!SN:E4852864/2/y2/y3/v1; //посадить героя в лодку [MP обнулятся] !!el; !!SN:E4842208/2/y2/y3/1; !!en; !!UN:R1; //обновить экран мира Что-то типа этого. Не исключаю багов. -------------------- Circle of destruction, hammer comes crushing
Powerhouse of energy Whipping up a fury, dominating flurry We create the battery |
|
|
![]()
Сообщение
#80
|
|
![]() No more lies... Сообщений: 497 Спасибо сказали: 816 раз ![]() |
Такой вот вопрос: можно ли корректно выполнить данную команду !!BM:G#/-90/d; (она скрывает маленькое оконце с числом существ в отряде на поле боя)?
Хочу такое сделать для командиров и возможно для оруженосцев, но при использовании этой команды появляются всяческие ошибки, всё таки что-то меняется в памяти некорректно. -------------------- Пишу мало, но редко...
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 22 October 2025 - 01:50 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|