Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Тонкости ЕРМ, использование UN:C
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Страницы: 1, 2, 3, 4
hippocamus
Цитата(Master Of Puppets @ 17 Aug 2009, 09:29)
Какие дефы можно использовать?
Объектные и предпочтительно с той же конфигурацией, что и у города.

Так эта функция позволит менять внешний вид города в зависимости от отстроенности? Например: Сельская управа - Префектура - Муниципалитет- Капитолий; Форт - Цитадель - Замок?
Меняется навсегда или до следующей отстройки, как при разрушении городов?
MasterOfPuppets
Вид меняется, как при команде CA:I. Я просто подменяю деф на время этой процедуры. При заходе и выходе из города информация обновляется, поэтому нужно её восстанавливать в триггере и пост-триггере. Зато можно менять вид в зависимости от чего угодно.
При загрузке игры виды городов не обновляются, поэтому восстанавливать ничего не надо. А ещё - для заменяющих дефов не нужны файлы *msg и *msk.
При постройке в городе оборонительных зданий вид тоже меняется на соответствующий стандартный.
В идеале нужно просто расширить таблицу видов городов, и заморочки отпадут. Но указателя на неё я лично не нашёл.
Дьяк
Отрываю от сердца (шучу)

AVCtown0 db 'DATA_CASTLE/AVCtown0.str',0
BufAVCtown0 dd 4C9823h
AVCtowx0 db 'DATA_CASTLE/AVCtowx0.str',0
BufAVCtowx0 dd 4C9810h
AVCtowz0 db 'DATA_CASTLE/AVCtowz0.str',0
;BufAVCtowz0 dd 1 dup (4C97C4h,70AA21h)
BufAVCtowz0 dd 4C97C4h

это из моего исходника к городам новым. Адреса - это указатели на указатели на таблицу дефов замков в разных ситуациях (при разрушении, целых и т.п.) Тут по-моему только нет вида замка при неотстроенном форте, ну по аналогии, если захочешь - найдешь.
MasterOfPuppets
Спасибо большое! :-)

Ещё: при работе с !!DL (и не только), часто бывает нужно получить название портрета героя. Так как ни один из HE:L не работает с синтаксисом получения, то...

*x1 - номер героя
*x2 - номер z-переменной для записи названия малого портрета
*x3 - номер z-переменной для записи названия большого портрета
!?FU1;
!!VRx1:*92+8144112;
!!UN:Cx1/4/?y1;
!!VRx1:+4;
!!UN:Cx1/4/?y2;
!!VRx2:*512+9597416;
!!VRx3:*512+9597416;
!!DO2/1/512/1:Py1/x2 Py2/x3;

!?FU2;
!!UN:Cx1/1/?y1 Cx2/1/y1;
!!VRx16&y1=0:S600;
!!VRx1:+1;
!!VRx2:+1;
feanor
Работа с функциями WinAPI.
Скрипт по правому клику на панельке с игровой датой выводит реальное время и заряд батарейки.

Код
ZVSE
!?CM0;
!!CM:I?y1 F?y2;
!!if&y1=1008/y2=512:;
!!CM:R0;
!!VRz1:S^kernel32.dll^;
!!SN:Lz1/?y2;
!!VRz1:S^GetSystemPowerStatus^;
!!SN:Ay2/z1/?y3;
!!SN:Ey3/1/?y4;

сейчас в y4-y6 структура SystemPowerStatus.
http://msdn.microsoft.com/en-us/library/aa373232(VS.85).aspx

!!VRy10:Sy4;
!!VRy10::65536;

берем только заряд, остальные параметры в печку

!!VRz1:S^GetLocalTime^;
!!SN:Ay2/z1/?y3;
!!SN:Ey3/1/?y4;

y4-y7 - структура SystemTime
http://msdn.microsoft.com/en-us/library/ms724950(VS.85).aspx

!!VRy8:Sy6;
!!VRy9:Sy6;
!!VRy8::65536;
!!VRy9:%65536;

выдираем из нее время

!!IF:M0/4/^Time:%Y9:%Y8 Capacity:%Y10%%^;
!!en:;
SAG19330184
положительные у-переменные вроде не рекомендуется использовать в Эре/ТЕ?
Berserker
Отрицательные.
feanor
И еще раз о Граале. Точнее, о неуспешных попытках его выкопать.

Код
ZVSE
!#UN:C4255839/4/262170720;
!#UN:C4255843/4/817364992;
!#UN:C4255847/4/4278219982;
!#UN:C4255851/4/79987664;
!#UN:C4255855/4/2416896865;
!#UN:C4255859/4/90909090;
!#UN:C4255863/4/90909090;


вместо окна "Ничего нет. Куда подевалось?" вызывается функция #4000. (Номер можно переопределить в байтах 40F061-65)

Cуть в подмене участка кода с вызовом этого мессагбокса на код

CODE
CPU Disasm
Address Hex dump Command Comments
0040F05F 60 PUSHAD
0040F060 68 A00F0000 PUSH 0FA0
0040F065 B8 30CE7400 MOV EAX,Era_1_6.0074CE30 ; Entry point
0040F06A FFD0 CALL EAX
0040F06C 83C4 04 ADD ESP,4
0040F06F 61 POPAD
0040F070 EB 0E JMP SHORT 0040F080
0040F072 90 NOP
0040F073 90 NOP
0040F074 90 NOP
0040F075 90 NOP
0040F076 90 NOP
0040F077 90 NOP
0040F078 90 NOP
0040F079 90 NOP
0040F07A 90 NOP
, где 0074CE30 - адрес C_FUNC_ZVS_CALLFU.

Огромное спасибо Берсеркеру за сорцы Эры.

Добавлено ([mergetime]1266099741[/mergetime]):
Added: код неоптимален - можно убрать PUSHAD, POPAD и MOV EAX, 74CE30, CALL EAX заменить на CALL 74CE30.
Added again: код для Эры. Теоретически можно адаптировать для 3.58 - но есть ли в этом смысл?
tolich
@feanor: просто так ничего не делается. В машкоде для
Код
MOV EAX, 74CE30, CALL EAX

74СE30 - абсолютное значение, а в
Код
CALL 74CE30

представляется смещением относительно адреса следующей инструкции, то есть патчить исполнимый файл чуточку проблемнее.
feanor
Две функции для работы со спецкнопкой юнита (кнопка колдовства у Волшебных Драконов)



Код
!?FU3000; [x1 - hook func number]
[del checks]
!!UN:C6241623/4/2425393296;
!!UN:C6241627/2/37008;

!!UN:C6241637/4/2425393296;
!!UN:C6241641/2/37008;

[set hook]
!!UN:C5894083/1/104;
!!UN:C5894084/4/x1; [erm-func num]
!!UN:C5894088/4/1959669944;
!!UN:C5894092/4/2211512064;
!!UN:C5894096/4/2425357508;

!?FU3001;
[restore original code]
!!UN:C6241623/4/11896079;
!!UN:C6241627/2/0;

!!UN:C6241637/4/10980879;
!!UN:C6241641/2/0;

!!UN:C5894083/1/81;
!!UN:C5894084/4/3431369867;
!!UN:C5894088/4/1392509011;
!!UN:C5894092/4/4100136936;
!!UN:C5894096/4/138775039;



!!FU3000:P3002; - поставить всем юнитам эту кнопку, по нажатию на ней выполнять !?FU3002
!!FU3001:P; - вернуть оригинальный механизм действия.


Код
[button fix]
!#UN:C6241781/1/236;
!#UN:C6241786/1/74;

правка координат для более аккуратного отображения. (На скрине заметно, что кнопка чуть смещена вниз и вправо - этот код это фиксит.
кстати, о координатах и вообще внешнем виде этой кнопки.
За них отвечают:

за Box46x32.pcx (подложка под кнопку)
5F3D9F - y (4 байта)
5F3DA4 - х (1 байт)

за непосредственно кнопку:
5F3DE7 - указатель на имя дефа.
5F3DF5 - y (4 байта)
5F3DFA - x (1 байт)
5F3DE0 - байт, отвечающий за вид кнопки, выглядит она нажатой, или нет. 0 или 1.
MasterOfPuppets
Отключил по надобности Маскировку и повесил хук, передающий управление 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


В Ассемблере я пока ламер, так что не знаю, верно ли сделал хоть наполовину. Знаю только, что работает.
Berserker
"К концу года все программисты геройского сообщества выстроились в очередь за консультацией у нынешнего гуру Master Of Puppets..." Новости, 21 сентября, 2010г.

Молодец, на самом деле все новые события нужно собирать в одной теме, чтобы потом цивилизованно встроить.
MasterOfPuppets
Активация кнопки "Следующий герой", отключенной в ТЕ.

В виде скрипта:
!#UN:C4234473/4/1987433092 C4234477/1/139;

Для патчинга экзешника:
9CE9 84D275768B
MasterOfPuppets
Мы Сегодня С Баем... nunu.gif
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; //выполнить функцию
feanor
!!UN:C6916632/4/9; (698A18: 09)
включает указание координат в подсказке для почвы/объектов.
Etoprostoya
Кстати, там, наверное, ещё много всяких отключённых плюшек должно быть, кроме указания координат объектов?
feanor
Угу, вроде с десяток - но они как-то неочевидны.
MasterOfPuppets
!?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; //вход в Зал Совета

И всё в таком же духе...
feanor
!!UN:C6918840/4/?y1;
!!VRy1:+60;
!!UN:Cy1/1/1;

показ FPS вместо строки чата. Отключение, соответственно,
....
!!UN:Cy1/1/0;
MasterOfPuppets
Функция, выясняющая связь между Вратами Подземного Мира:

!?FU101;
!!UN:C6919480/4/?y1;
!!VRy1:+321440;
!!UN:Cy1/4/?y2;
!!VRx1:*4+y2;
!!UN:Cx1/4/?x2;

Вызов:
!!FU101:P#/?$;
Где x1 - контрольное число проверяемых Врат. В x2 возвратится контрольное число Врат, с которыми данные Врата связаны.
feanor
Переписал функцию смены координат здания в городе на 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;
feanor
Аналогично для настройки черных рынков:

!?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; - продаем катапульту в первом слоте первого рынка.
MasterOfPuppets
http://forum.df2.ru/index.php?showtopic=5418&st=2110
smile.gif
feanor
Тьфу. Ну ладно, пусть будет.
Etoprostoya
Зато новый велосипед более удобен и готов к использованию.
MasterOfPuppets
Цитата(sergroj @ 15 Nov 2008, 21:54) *
Соседи клетки

!?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.
MasterOfPuppets
Открытие диалога Командира
Код
!?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;

hippocamus
А героя в лодку посадить и вытащить сможешь?
MasterOfPuppets
Код
!?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; //обновить экран мира

Что-то типа этого. Не исключаю багов.
totkotoriy
Такой вот вопрос: можно ли корректно выполнить данную команду !!BM:G#/-90/d; (она скрывает маленькое оконце с числом существ в отряде на поле боя)?
Хочу такое сделать для командиров и возможно для оруженосцев, но при использовании этой команды появляются всяческие ошибки, всё таки что-то меняется в памяти некорректно.
Sav
Во-первых, это !!BM:G-90/$/d, а во-вторых, это поле показывает, передвигается ли сейчас стек и, если передвигается, не позволяет показывать количество существ (хотя оно и так не показывается при любой анимации, кроме стойки и кривляния). Использовать его будет некорректно, хотя, наверное, и возможно.
totkotoriy
Цитата(Sav @ 10 Jul 2012, 11:25) *
Во-первых, это !!BM:G-90/$/d, а во-вторых, это поле показывает, передвигается ли сейчас стек и, если передвигается, не позволяет показывать количество существ (хотя оно и так не показывается при любой анимации, кроме стойки и кривляния). Использовать его будет некорректно, хотя, наверное, и возможно.

Да, команду я тут написал не правильно... в справке написано так, но на самом деле оконце у меня исчезает насовсем, по крайней мере до ошибки smile.gif
Sav
Какие-то баги значит у тебя. Это поле в коде устанавливается в 1 перед ходьбой/полётом и в 0 после, и, вроде, никаких проблем вызывать не должно.
totkotoriy
Цитата(Sav @ 10 Jul 2012, 11:46) *
Какие-то баги значит у тебя. Это поле в коде устанавливается в 1 перед ходьбой/полётом и в 0 после, и, вроде, никаких проблем вызывать не должно.

В коде всмысле в коде героев когда игра работает?
Ну вощим всё понятно, что надо разбираться - что-то не так там делается раз ошибки лезут.
А было бы красиво если бы командиры и оруженосцы без цифр этих были, это бы их сразу выделяло
hippocamus
Флаг машины им поставить надо. Тогда, правда, их необязательно будет убивать для достижения победы. И опыт враг за них не получит...
Sav
Цитата(hippocamus)
В коде всмысле в коде героев когда игра работает?
Ну вощим всё понятно, что надо разбираться - что-то не так там делается раз ошибки лезут.
А было бы красиво если бы командиры и оруженосцы без цифр этих были, это бы их сразу выделяло

Да, в коде. Если хочешь, могу дать адрес, где проверяется, нужно ли рисовать прямоугольник.
totkotoriy
Цитата(Sav @ 10 Jul 2012, 19:58) *
Да, в коде. Если хочешь, могу дать адрес, где проверяется, нужно ли рисовать прямоугольник.

Давай, но если только расскажешь как его использовать, а то я не разберусь сам smile.gif
Этот адрес для определенного стека на поле боя или как?
А ты сам проверял у тебя работает?
Sav
0x43E28E - адрес, где начинаются проверки. Туда можно поставить хук и, если рисовать не нужно, выходить на адрес 0x43E4B5. В ebx находится ссылка на текущий отрисовывающийся стек, откуда можно получить информацию по нему (см. тему "Инженерный анализ"). В ecx находится адрес менеджера битвы. Это всё в функции отрисовки стека, она, естественно, одна для всех стеков.
На работоспособность я ничего не проверял, но эти функции у меня хорошо исследованы, с высокой вероятностью то, что я говорю - истина. smile.gif
feanor
Цитата(totkotoriy @ 10 Jul 2012, 11:03) *
Такой вот вопрос: можно ли корректно выполнить данную команду !!BM:G#/-90/d; (она скрывает маленькое оконце с числом существ в отряде на поле боя)?
Хочу такое сделать для командиров и возможно для оруженосцев, но при использовании этой команды появляются всяческие ошибки, всё таки что-то меняется в памяти некорректно.


-19 можно юзать, вынеся этот прямоугольник куда-нить на xfffffff

И да, можно обсуждать в другом месте?
feanor
Передать ход следующему игроку

!!UN:C6919480/4/?y1;
!!SN:E5008544/2/y1;
feanor
наложить Visions
Код
!!UN:C6919480/4/?y10;
!!VRy11:S<hero_id> *1170 +297 +136736 +y10;
!!UN:Cy11/4/2; ..0,1,2 - visions level
feanor
!!UN:C6202647/4/13; управлять ценами на черных рынках (1..13). 5 - стандарт, 13 - номинал.
!!UN:C5392593/1/13; - для AI
Valery
!!UN:C4692953/1/$;
$ (0-75)

increase the speed of EA:B generating clones. Default value is 75.

Credits: Sav
feanor
Применение анимации к нескольким стекам

Код
**первый параметр - combatmanager
!!UN:C6919200/4/?y10;
**второй параметр - указатель на массив из сорока байт: по одному на отряд. За массив возьмем y20-y28.
!!VRy20:S1 +256*1; --первые два отряда у себя
!!VRy25:S1; --первый отряд у противника
**третий параметр - номер анимации (5 - анимация)
**четвертый параметр - нужно ли анимировать урон (0 - не надо, 1 - надо)
!!SN:E5925584/2/y10/?y20/5/1;


Algor
Цитата(feanor @ 28 Jul 2013, 15:13) *
За массив возьмем y20-y28.

y20-y29?
feanor
Да.


Атаковать стеком.

Код
!!UN:C6919200/4/?y10;

!!VRy11:S0 *1352 +21708 +y10; **0, к примеру, атакующий стек
!!VRy21:S21 *1352 +21708 +y10; **21, к примеру, атакуемый стек. Отдаленный стек можно, союзника можно, врага можно, несуществующий стек можно, себя можно - но не до смерти.

!!SN:E4461360/2/y11/y21/2; 4 - взаимная ориентация стеков. На поворот не влияет, увы.


..и задать при этом свою анимацию для атаки
Код
!!UN:C6919200/4/?y10;

!!VRy11:S0 *1352 +21708 +y10; **0 - первый стек
!!VRy21:S21 *1352 +21708 +y10; **21 - второй стек

!!UN:C4462581/1/3;**3 - номер анимации
!!UN:C4462626/1/3;**3 - номер анимации
!!SN:E4461360/2/y11/y21/2;
!!UN:C4462626/1/13;
!!UN:C4462581/1/19;
feanor
Цитата
Вопрос: как лишить его хода?


Если нужен свой ход вместо обычного, то !?BG0 - !!BG:A12
Вот скрипт: титаны атакуют, не приближаясь.

Код
!?BG0;
!!BG:A?y6 N?y10 E?y20;
!!BMy10:T?y11;

!!if&y20<>-1/y11=40/y6=6:;

!!UN:C6919200/4/?y9;

!!VRy11:Sy10 *1352 +21708 +y9; **первый стек
!!VRy21:Sy20 *1352 +21708 +y9; **второй стек

**SN:E4809664/2/y9/37/y21/250/1;

!!BMy20:V37;
!!SN:E4461360/2/y11/y21/2;
!!BMy20:V38;

!!BG:A12;
!!el:;
!!en:;


Цитата
2. Что означают номера анимаций? Где можно глянуть их? Что за 13/19 анимации после "атаки"?
Номера группы кадров в дефе. В дефвьюере. Восстановление оригинальных номеров: для одноклеточной и двуклеточной атак соответственно.

Цитата
Оба стека анимируют "получение повреждений", а когда ставлю
Понятия не имею, правки должны применяться только к атакующему стеку.
Algor
Блин, случайно задавил свое сообщение.
Все, разобрался, спасибо.
Algor
feanor'у посвящается.

Наконец-то теперь можно сделать полноценное существо-кастера и не только!
feanor
Проиграть анимацию на определенном гексе:


!!UN:C6919200/4/?y9;
!!SN:E4810128/2/y9/<номер анимации>/<номер гекса>/<задержка>/0;

Ну вот, можно делать удары молний, вулканические бомбы и прочие странные вещи.

Алсо.

!!UN:C8088808/4/1; - исправление анимации 72 (DeathCloud) для ERM. Теперь при вызове её с помощью BM:V она появляется на стеке, а не где-то cнизу поля.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.