hippocamus
04 Jan 2010, 15:16
Цитата(Master Of Puppets @ 17 Aug 2009, 09:29)
Какие дефы можно использовать?
Объектные и предпочтительно с той же конфигурацией, что и у города.
Так эта функция позволит менять внешний вид города в зависимости от отстроенности? Например: Сельская управа - Префектура - Муниципалитет- Капитолий; Форт - Цитадель - Замок?
Меняется навсегда или до следующей отстройки, как при разрушении городов?
MasterOfPuppets
05 Jan 2010, 10:13
Вид меняется, как при команде 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
06 Jan 2010, 06:30
Спасибо большое! :-)
Ещё: при работе с !!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
11 Jan 2010, 22:01
Работа с функциями 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
20 Jan 2010, 14:19
положительные у-переменные вроде не рекомендуется использовать в Эре/ТЕ?
Berserker
20 Jan 2010, 18:02
Отрицательные.
feanor
14 Feb 2010, 01:22
И еще раз о Граале. Точнее, о неуспешных попытках его выкопать.
Код
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
14 Feb 2010, 08:41
@feanor: просто так ничего не делается. В машкоде для
Код
MOV EAX, 74CE30, CALL EAX
74СE30 - абсолютное значение, а в
Код
CALL 74CE30
представляется смещением относительно адреса следующей инструкции, то есть патчить исполнимый файл чуточку проблемнее.
feanor
18 Feb 2010, 21:42
Две функции для работы со спецкнопкой юнита (кнопка колдовства у Волшебных Драконов)

Код
!?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
22 Feb 2010, 15:31
Отключил по надобности Маскировку и повесил хук, передающий управление 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
22 Feb 2010, 15:39
"К концу года все программисты геройского сообщества выстроились в очередь за консультацией у нынешнего гуру Master Of Puppets..." Новости, 21 сентября, 2010г.
Молодец, на самом деле все новые события нужно собирать в одной теме, чтобы потом цивилизованно встроить.
MasterOfPuppets
23 Feb 2010, 10:51
Активация кнопки "Следующий герой", отключенной в ТЕ.
В виде скрипта:
!#UN:C4234473/4/1987433092 C4234477/1/139;
Для патчинга экзешника:
9CE9 84D275768B
MasterOfPuppets
03 Jun 2010, 03:26
Мы Сегодня С Баем...
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
13 Aug 2010, 09:55
!!UN:C6916632/4/9; (698A18: 09)
включает указание координат в подсказке для почвы/объектов.
Etoprostoya
13 Aug 2010, 10:00
Кстати, там, наверное, ещё много всяких отключённых плюшек должно быть, кроме указания координат объектов?
feanor
13 Aug 2010, 10:03
Угу, вроде с десяток - но они как-то неочевидны.
MasterOfPuppets
16 Aug 2010, 12:53
!?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
26 Aug 2010, 18:29
!!UN:C6918840/4/?y1;
!!VRy1:+60;
!!UN:Cy1/1/1;
показ FPS вместо строки чата. Отключение, соответственно,
....
!!UN:Cy1/1/0;
MasterOfPuppets
27 Aug 2010, 02:54
Функция, выясняющая связь между Вратами Подземного Мира:
!?FU101;
!!UN:C6919480/4/?y1;
!!VRy1:+321440;
!!UN:Cy1/4/?y2;
!!VRx1:*4+y2;
!!UN:Cx1/4/?x2;
Вызов:
!!FU101:P#/?$;
Где x1 - контрольное число проверяемых Врат. В x2 возвратится контрольное число Врат, с которыми данные Врата связаны.
feanor
27 Aug 2010, 10:44
Переписал функцию смены координат здания в городе на 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
29 Aug 2010, 17:35
Аналогично для настройки черных рынков:
!?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
29 Aug 2010, 17:37
feanor
29 Aug 2010, 17:41
Тьфу. Ну ладно, пусть будет.
Etoprostoya
29 Aug 2010, 18:36
Зато новый велосипед более удобен и готов к использованию.
MasterOfPuppets
25 Dec 2010, 18:38
Цитата(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
23 May 2011, 14:15
Открытие диалога КомандираКод
!?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
23 May 2011, 22:58
А героя в лодку посадить и вытащить сможешь?
MasterOfPuppets
31 May 2011, 18:15
Код
!?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
10 Jul 2012, 10:03
Такой вот вопрос: можно ли корректно выполнить данную команду !!BM:G#/-90/d; (она скрывает маленькое оконце с числом существ в отряде на поле боя)?
Хочу такое сделать для командиров и возможно для оруженосцев, но при использовании этой команды появляются всяческие ошибки, всё таки что-то меняется в памяти некорректно.
Во-первых, это !!BM:G-90/$/d, а во-вторых, это поле показывает, передвигается ли сейчас стек и, если передвигается, не позволяет показывать количество существ (хотя оно и так не показывается при любой анимации, кроме стойки и кривляния). Использовать его будет некорректно, хотя, наверное, и возможно.
totkotoriy
10 Jul 2012, 10:31
Цитата(Sav @ 10 Jul 2012, 11:25)

Во-первых, это !!BM:G-90/$/d, а во-вторых, это поле показывает, передвигается ли сейчас стек и, если передвигается, не позволяет показывать количество существ (хотя оно и так не показывается при любой анимации, кроме стойки и кривляния). Использовать его будет некорректно, хотя, наверное, и возможно.
Да, команду я тут написал не правильно... в справке написано так, но на самом деле оконце у меня исчезает насовсем, по крайней мере до ошибки
Какие-то баги значит у тебя. Это поле в коде устанавливается в 1 перед ходьбой/полётом и в 0 после, и, вроде, никаких проблем вызывать не должно.
totkotoriy
10 Jul 2012, 19:54
Цитата(Sav @ 10 Jul 2012, 11:46)

Какие-то баги значит у тебя. Это поле в коде устанавливается в 1 перед ходьбой/полётом и в 0 после, и, вроде, никаких проблем вызывать не должно.
В коде всмысле в коде героев когда игра работает?
Ну вощим всё понятно, что надо разбираться - что-то не так там делается раз ошибки лезут.
А было бы красиво если бы командиры и оруженосцы без цифр этих были, это бы их сразу выделяло
hippocamus
10 Jul 2012, 19:57
Флаг машины им поставить надо. Тогда, правда, их необязательно будет убивать для достижения победы. И опыт враг за них не получит...
Цитата(hippocamus)
В коде всмысле в коде героев когда игра работает?
Ну вощим всё понятно, что надо разбираться - что-то не так там делается раз ошибки лезут.
А было бы красиво если бы командиры и оруженосцы без цифр этих были, это бы их сразу выделяло
Да, в коде. Если хочешь, могу дать адрес, где проверяется, нужно ли рисовать прямоугольник.
totkotoriy
10 Jul 2012, 22:09
Цитата(Sav @ 10 Jul 2012, 19:58)

Да, в коде. Если хочешь, могу дать адрес, где проверяется, нужно ли рисовать прямоугольник.
Давай, но если только расскажешь как его использовать, а то я не разберусь сам

Этот адрес для определенного стека на поле боя или как?
А ты сам проверял у тебя работает?
0x43E28E - адрес, где начинаются проверки. Туда можно поставить хук и, если рисовать не нужно, выходить на адрес 0x43E4B5. В ebx находится ссылка на текущий отрисовывающийся стек, откуда можно получить информацию по нему (см. тему "Инженерный анализ"). В ecx находится адрес менеджера битвы. Это всё в функции отрисовки стека, она, естественно, одна для всех стеков.
На работоспособность я ничего не проверял, но эти функции у меня хорошо исследованы, с высокой вероятностью то, что я говорю - истина.
feanor
11 Jul 2012, 13:02
Цитата(totkotoriy @ 10 Jul 2012, 11:03)

Такой вот вопрос: можно ли корректно выполнить данную команду !!BM:G#/-90/d; (она скрывает маленькое оконце с числом существ в отряде на поле боя)?
Хочу такое сделать для командиров и возможно для оруженосцев, но при использовании этой команды появляются всяческие ошибки, всё таки что-то меняется в памяти некорректно.
-19 можно юзать, вынеся этот прямоугольник куда-нить на xfffffff
И да, можно обсуждать в другом месте?
feanor
11 Jan 2013, 00:14
Передать ход следующему игроку
!!UN:C6919480/4/?y1;
!!SN:E5008544/2/y1;
feanor
06 Apr 2013, 17:54
наложить Visions
Код
!!UN:C6919480/4/?y10;
!!VRy11:S<hero_id> *1170 +297 +136736 +y10;
!!UN:Cy11/4/2; ..0,1,2 - visions level
feanor
06 Apr 2013, 18:45
!!UN:C6202647/4/13; управлять ценами на черных рынках (1..13). 5 - стандарт, 13 - номинал.
!!UN:C5392593/1/13; - для AI
Valery
07 May 2013, 21:33
!!UN:C4692953/1/$;
$ (0-75)
increase the speed of EA:B generating clones. Default value is 75.
Credits: Sav
feanor
28 Jul 2013, 14:13
Применение анимации к нескольким стекам
Код
**первый параметр - combatmanager
!!UN:C6919200/4/?y10;
**второй параметр - указатель на массив из сорока байт: по одному на отряд. За массив возьмем y20-y28.
!!VRy20:S1 +256*1; --первые два отряда у себя
!!VRy25:S1; --первый отряд у противника
**третий параметр - номер анимации (5 - анимация)
**четвертый параметр - нужно ли анимировать урон (0 - не надо, 1 - надо)
!!SN:E5925584/2/y10/?y20/5/1;
Цитата(feanor @ 28 Jul 2013, 15:13)

За массив возьмем y20-y28.
y20-y2
9?
feanor
28 Jul 2013, 20:30
Да.
Атаковать стеком.
Код
!!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
29 Jul 2013, 16:57
Цитата
Вопрос: как лишить его хода?
Если нужен свой ход вместо обычного, то !?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 анимации после "атаки"?
Номера группы кадров в дефе. В дефвьюере. Восстановление оригинальных номеров: для одноклеточной и двуклеточной атак соответственно.
Цитата
Оба стека анимируют "получение повреждений", а когда ставлю
Понятия не имею, правки должны применяться только к атакующему стеку.
Блин, случайно задавил свое сообщение.
Все, разобрался, спасибо.
feanor'у посвящается.Наконец-то теперь можно сделать полноценное существо-кастера и не только!
feanor
15 Aug 2013, 23:09
Проиграть анимацию на определенном гексе:
!!UN:C6919200/4/?y9;
!!SN:E4810128/2/y9/<номер анимации>/<номер гекса>/<задержка>/0;
Ну вот, можно делать удары молний, вулканические бомбы и прочие странные вещи.
Алсо.
!!UN:C8088808/4/1; - исправление анимации 72 (DeathCloud) для ERM. Теперь при вызове её с помощью BM:V она появляется на стеке, а не где-то cнизу поля.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.