ZVSE
;Горыныч.
!#MA : A168/35 C168/6/17500 C168/0/24 D168/35 E168/60 F168/27145 H168/3 I168/30027 M168/50 P168/750 S168/10 V168/1;Устанавливаем характеристики горыныча.
;Горыныч колдует заклинание на всех вокруг.
!?BG0;При действии существа... !!VRv6001 : S0;Обнуляем контрольную переменную. !!BG : N?v6002;Находим номер стека, совершившего действие. !!BMv6002 : T?y-1;Находим, какое существо совершило действие. !!BG&y-1=168 : A?y-2;Если существо - горыныч, находим, какое действие он совершил. !!VRv6001&y-1=168/y-2=6 : S1;Если действие было ближним ударом и ударял горыныч, устанавливаем контрольную переменную в 1. !!VRv6003&v6001=1 : S6003;Устанавливаем управляющую переменную позиций целей.
!?MF1&v6001=1;При нанесении физического урона, если контрольная переменная равна 1... !!MF : E?y-1;Определяем, не был ли урон блокирован. !!FU&y-1=0 : E;Если урон был блокирован, завершаем функцию. !!VRv6003 : Sv6003+2;Устанавливаем управляющую переменную позиций целей на следующее значение. !!VRy-1 : Sv6003-1;Вычисляем вторую управляющую переменную позиций целей. !!MF : N?vy-1;Определяем номер стека, получающего урон. !!BMvy-1 : P?vv6003;Определяем позицию стека, получающего урон. !!FU9015 : Pv6003;Вызываем цикл наложения заклинаний.
!?BG1&v6001=1;После совершения действия, если контрольная переменная равна 1... !!BMv6002 : V41;Играем анимацию заражения. !!VRv6001 : S0;Устанавливаем контрольную переменную в 0. !!VRv6002 : S0;Сбрасываем переменную стека, совершившего действие. !!VRv6003 : S0;Сбрасываем управляющую переменную позиций целей.
;Функции наложения и продления заклинания.
!?FU9015;Функция подготовки к наложению заклинаний. !!VRx16 : Sx1; !!VRy1 : Sx16-1;Вычисляем адрес номера целевого стека. !!BMvy1 : N?y2;Считыываем количесто существ в целевом стеке. !!VRvy1&y2<1 : S0;Если в стеке меньше 1 существа, сбрасываем переменную номера целевого стека. !!VRvx16&y2<1 : S0;Если в стеке меньше 1 существа, сбрасываем переменную позиции целевого стека. !!FU&y2<1 : E;Если в стеке меньше 1 существа, завершаем функцию. !!VRy3 : S0;Устанавливаем переменную рандома в 0. !!VRy3 : R4;Добавляем к переменной рандома в случайное число от 0 до 4. !!FU9016&y3=0 : Pvy1/vx16/45;Если переменная рандома равна 0, вызываем функцию наложения и продления слабости. !!FU9016&y3=1 : Pvy1/vx16/54;Если переменная рандома равна 1, вызываем функцию наложения и продления медлительности. !!FU9016&y3=2 : Pvy1/vx16/73;Если переменная рандома равна 2, вызываем функцию наложения и продления болезни. !!FU9016&y3=3 : Pvy1/vx16/74;Если переменная рандома равна 3, вызываем функцию наложения и продления паралича. !!FU9016&y3=4 : Pvy1/vx16/75;Если переменная рандома равна 4, вызываем функцию наложения и продления старости. !!VRvy1 : S0;Сбрасываем переменную номера целевого стека. !!VRvx16 : S0;Сбрасываем переменную позиции целевого стека.
!?FU9016;;Функция наложения и продления заклинания. !!BMx1 : Gx3/?y1/d;Проверяем, не наложено ли заклинание на цель. !!BMx1&y1<1 : Mx3/3/2;Если заклинание не наложено, накладываем его. !!BMx1&y1>0 : Gx3/d3/d;Если заклинание наложено, увеличиваем его длительность на 3 раунда. !!VRz-1&x3=45 : S^WEAKNESS.WAV^;Если закл - слабость, выбираем соответствующий звук. !!VRz-1&x3=54 : S^MUCKMIRE.WAV^;Если закл - медлительность, выбираем соответствующий звук. !!VRz-1&x3=73 : S^DISEASE.WAV^;Если закл - болезнь, выбираем соответствующий звук. !!VRz-1&x3=74 : S^PARALYZE.WAV^;Если закл - паралич, выбираем соответствующий звук. !!VRz-1&x3=75 : S^AGE.WAV^;Если закл - старость, выбираем соответствующий звук. !!SN : Pz-1;Проигрываем звук закла.
ZVSE
;Горыныч.
!#MA : A168/35 C168/6/17500 C168/0/24 D168/35 E168/60 F168/27145 H168/3 I168/30027 M168/50 P168/750 S168/10 V168/1;Устанавливаем характеристики горыныча.
;Горыныч колдует заклинание на всех вокруг.
!?BG0;При действии существа... !!VRv6001 : S0;Обнуляем контрольную переменную. !!BG : N?v6002;Находим номер стека, совершившего действие. !!BMv6002 : T?y-1;Находим, какое существо совершило действие. !!BG&y-1=168 : A?y-2;Если существо - горыныч, находим, какое действие он совершил. !!VRv6001&y-1=168/y-2=6 : S1;Если действие было ближним ударом и ударял горыныч, устанавливаем контрольную переменную в 1. !!VRv6003&v6001=1 : S6003;Устанавливаем управляющую переменную позиций целей. !!VRv6020 : S0;
!?MF1&v6001=1;При нанесении физического урона, если контрольная переменная равна 1... !!MF : E?y-1;Определяем, не был ли урон блокирован. !!FU&y-1=0 : E;Если урон был блокирован, завершаем функцию. !!VRv6003 : Sv6003+2;Устанавливаем управляющую переменную позиций целей на следующее значение. !!VRy-1 : Sv6003-1;Вычисляем вторую управляющую переменную позиций целей. !!MF : N?vy-1;Определяем номер стека, получающего урон. !!BMvy-1 : P?vv6003;Определяем позицию стека, получающего урон. !!FU9015 : Pv6003;Вызываем цикл наложения заклинаний. !!BMv6002&v6020=0 : V41;Играем анимацию заражения. !!VRv6020 : S1;
!?BG1&v6001=1;После совершения действия, если контрольная переменная равна 1... !!VRv6001 : S0;Устанавливаем контрольную переменную в 0. !!VRv6002 : S0;Сбрасываем переменную стека, совершившего действие. !!VRv6003 : S0;Сбрасываем управляющую переменную позиций целей.
;Функции наложения и продления заклинания.
!?FU9015;Функция подготовки к наложению заклинаний. !!VRx16 : Sx1; !!VRy1 : Sx16-1;Вычисляем адрес номера целевого стека. !!BMvy1 : N?y2;Считыываем количесто существ в целевом стеке. !!VRvy1&y2<1 : S0;Если в стеке меньше 1 существа, сбрасываем переменную номера целевого стека. !!VRvx16&y2<1 : S0;Если в стеке меньше 1 существа, сбрасываем переменную позиции целевого стека. !!FU&y2<1 : E;Если в стеке меньше 1 существа, завершаем функцию. !!VRy3 : S0;Устанавливаем переменную рандома в 0. !!VRy3 : R4;Добавляем к переменной рандома в случайное число от 0 до 4. !!FU9016&y3=0 : Pvy1/vx16/45;Если переменная рандома равна 0, вызываем функцию наложения и продления слабости. !!FU9016&y3=1 : Pvy1/vx16/54;Если переменная рандома равна 1, вызываем функцию наложения и продления медлительности. !!FU9016&y3=2 : Pvy1/vx16/73;Если переменная рандома равна 2, вызываем функцию наложения и продления болезни. !!FU9016&y3=3 : Pvy1/vx16/74;Если переменная рандома равна 3, вызываем функцию наложения и продления паралича. !!FU9016&y3=4 : Pvy1/vx16/75;Если переменная рандома равна 4, вызываем функцию наложения и продления старости. !!VRvy1 : S0;Сбрасываем переменную номера целевого стека. !!VRvx16 : S0;Сбрасываем переменную позиции целевого стека.
!?FU9016;;Функция наложения и продления заклинания. !!BMx1 : Gx3/?y1/d;Проверяем, не наложено ли заклинание на цель. !!BMx1&y1<1 : Mx3/3/2;Если заклинание не наложено, накладываем его. !!BMx1&y1>0 : Gx3/d3/d;Если заклинание наложено, увеличиваем его длительность на 3 раунда. !!VRz-1&x3=45 : S^WEAKNESS.WAV^;Если закл - слабость, выбираем соответствующий звук. !!VRz-1&x3=54 : S^MUCKMIRE.WAV^;Если закл - медлительность, выбираем соответствующий звук. !!VRz-1&x3=73 : S^DISEASE.WAV^;Если закл - болезнь, выбираем соответствующий звук. !!VRz-1&x3=74 : S^PARALYZE.WAV^;Если закл - паралич, выбираем соответствующий звук. !!VRz-1&x3=75 : S^AGE.WAV^;Если закл - старость, выбираем соответствующий звук. !!SN : Pz-1;Проигрываем звук закла.
Если оба не нравятся - могу ещё попытаться что-нибудь сделать.
На действие заклов особо не смотрите - главое - анимация.
(This post was last modified: 09.08.2010 23:57 by Sav.)
|