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.)
 
			 
		 |