Цитата(Ньюб @ 25 Feb 2009, 18:27)
Здравствуйте уважаемые.
А не могли бы вы подсказать, как еаписать скрипт (конечно если это возможно) как бы наделить юнита новой спасобностью ну например при атаки этот юнит имеет шанс кастануть магию на того которого атакует ну например взрыв.
И если можно описать все шаги по подробнее.
Зарание благодарен.
Для начала нужно определить, что мы хотим от компа, чтобы он выполнил. Ведь ERM - это прежде всего язык программирования. Нужно мысленно написать программу для компьютера на естественном языке. Например, чтобы Дьявол при атаке "взрывал противника":
Код
Когда любой юнит атакует, то:
проверить, не относится ли юнит к нашему типу (то есть к Дьяволам)?
Если нет, то выход (это не наш юнит, далее продолжать выполнение бессмысленно)
узнать, кого атакует юнит
кастовать (колдовать) на него заклинание Взрыв.
Можно даже сделать так, чтобы магия кастовалась только с вероятностью 25% (например):
Код
...
сгенерировать случайное число от 0 до 3
проверить не равно ли число = 0? (мы сгенерировали число, которое может быть = 0, 1, 2 или 3; вероятность того, что это число = 0 как раз 25%)
если не равно - выход
...
Или сделать, чтобы вместе с заклинанием проигрывалась анимация и звук взрыва (обычно это не делается):
Код
...
кастовать на него заклинание "Взрыв"
проиграть звук взрыва
сыграть анимацию взрыва на нем
...
проигрывать звук нужно перед тем, как играть анимацию (потому что после команды проигрыша звука выполнение продолжается сразу после команды; команды проигрыша анимации же ждет, когда анимация закончится).
После того, как мы поняли, что хотим от компа, можно начинать делать скрипт. Для этого заменять команды, придуманные нами на команды ERM-скрипта. Вот что получается:
Код
!?BG0;
!!BG:A?y1; получить тип действия
!!FU&y1<>6:E; если это не атака (6) то выход
!!BG:N?y1 E?y2; получить номер юнита атакующего и юнита атакованного
!!BMy1:T?y1; получить тип атакующего юнита
!!FU&y1<>XX:E; если это не дьявол то выход; вместо ХХ поставить тип Дьявола - не помню щас
!!VRy1:S0 R3; сгенерировать случ число от 0 до 3
!!FU&y1<>0:E; если это не 0 - выход
!!BMy2:Cxx/0/0; кастовать на атакованного юнита заклинание Взрыв без эффекта знания Магии огня (0) и продолжительностью 0 раундов (нельзя на внезапные закл-я делать эффект продолжительности больше ноля, а на длительные закл-я делать продолжительность 0) ( 8( черт не помню! какой номер закл-я и анимации :banghead: не за своим компом :idontno: )
!!VRz-1:S^xxxx^; установить в переменную имя звокового файла взрыва (есть в игровых архивах) (и снова не помню :wacko: )
!!SN:Pz-1; и проиграть этот звук
!!BMy2:Vxx; проиграть на юните анимацию взрыва
Как-то так
Если что-то еще надо - подскажу