09.08.2010, 23:21
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
09.08.2010, 23:28
Первый вариант: (Click to View)
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;Проигрываем звук закла.
;Горыныч.
!#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;Проигрываем звук закла.
Второй вариант: (Click to View)
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;Проигрываем звук закла.
;Горыныч.
!#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;Проигрываем звук закла.
На действие заклов особо не смотрите - главое - анимация.
09.08.2010, 23:41
Во 2 варианте анимация играется только 1 раз - исправлено.
09.08.2010, 23:51
Первый вариант работает отлично, второй только проигрывает звуки и колдует.
ИМХО, надо выбрать какой-то один звук. А то он одновременно всё проигрывает. Пусть лучше будет звук не так, что сработало заклинание, а так, что сработала способность.
ИМХО, надо выбрать какой-то один звук. А то он одновременно всё проигрывает. Пусть лучше будет звук не так, что сработало заклинание, а так, что сработала способность.
09.08.2010, 23:56
Мне кажется нормальным, что все звуки одновременно. Но можно и 1 какой-нибудь сделать. Какой?
Сейчас делаю ещё 1 вариант, самый сложный, но, наверное, самый лучший.
Сейчас делаю ещё 1 вариант, самый сложный, но, наверное, самый лучший.
09.08.2010, 23:56
Второй вариант всё равно какой-то лаговатый.
09.08.2010, 23:56
Quote:Во 2 варианте анимация играется только 1 раз - исправлено.Имел ввиду - у себя исправил.
Добавлено:
Всё, и в посте исправил.
10.08.2010, 00:00
Я бы бешенство взял. Кстати, Sav, где ты нарыл названия звуков? В справке от Драко вроде нет всяких "Викнесс" и прочая.
Добавлено:
Или для крутизны можно звук, как при нападении на банк существ.
Добавлено:
Или для крутизны можно звук, как при нападении на банк существ.

10.08.2010, 00:05
Я открыл Heroes3.snd, в англ. справке посмотрел англ. названия заклов и нашёл звуки с соответствующими именами. Не совпало имя только у замедления, чтобы найти его звук, я добрую половину всех тамошних звуков прослушал.
10.08.2010, 00:08
Тончайшие намеки для Драко обновить справку. 
Sav, а ты как думаешь, какой звук лучше играть? Ты же там кучу всего прослушал. 

10.08.2010, 00:40
мб слабость?
10.08.2010, 00:53
Слабость уже у дракономух есть.
10.08.2010, 00:54
10.08.2010, 00:55
Логика повсюду.
Я имел в виду, что хорошо бы что-то уникальное. Но мне, по большому счёту, всё равно.

10.08.2010, 01:00
чтобы было уникальное - нужно добавлять свое.
а разлетающиеся лучи + слабость = самое то. намекает на ослабление существ вокруг.
а разлетающиеся лучи + слабость = самое то. намекает на ослабление существ вокруг.