IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Reply to this topicStart new topic
> Сотворите чудо!, плиз........
Гость_Berserker_*
сообщение 18 May 2007, 21:38
Сообщение #21







Значит так:

1) Вопрос: только для нейтралов или также в битвах с противником?
2) Под какой ехешник?

Это последнее, что спрашиваю. Потом будут ответы.
Go to the top of the pageAdd Nick
 
+Quote Post
Bes
сообщение 19 May 2007, 11:42
Сообщение #22

замолкаю.
Сообщений: 2 340
Спасибо сказали: 1010 раз




2 Lord Of Rage Ж)

1) нейтралов
2) ТЕ (он же Phoenix.exe)
Примечание: это только для героя №1 (Валеска); роль героя пусть будеть играть 1 Стрелок (№3), т.е. !!BA:M0/2/3/1; и добавлять именно в средний слот


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_Berserker_*
сообщение 19 May 2007, 20:59 (Сообщение отредактировал Berserker - 19 May 2007, 21:04)
Сообщение #23







Понял.

1) (из Феникс-Мода):

Код
!?BA0&1000;Standart Pre-Battle trigger
!!BA:O?v9707/?v9708 H0/?v9709 H1/?v9710;v9707,v9708 - owners
;v9709,v9710 - hero's numbers
!!OW:Iv9707/?v9705 Iv9708/?v9706;v9705,v9706 - state of players (AI or Human)
;v9711 - type of the battle=...
!!VRv9711&v9708=-1:S1;1 - HUMAN HERO vs NEUTRALS
!!VRv9711&v9710=-2/v9706=1:S2;2 - HUMAN HERO vs COMP CREATURES
!!VRv9711&v9710=-2/v9706=0/v9705=1:S3;3 - COMP HERO vs HUMAN CREATURES
!!VRv9711&v9708<>-1/v9710=-2/v9705=0/v9706=0:S4;4 - HUMAN HERO vs HUMAN CREATURES
!!VRv9711&v9710<>-2/v9706=1:S5;5 - HUMAN HERO vs COMP HERO
!!VRv9711&v9710<>-2/v9705=1:S6;6 - COMP HERO vs HUMAN HERO
!!VRv9711&v9710<>-2/v9705=v9706:S7;7 - HUMAN HERO vs HUMAN HERO
!!HEv9709&v9709<>-2:E?v9802;
!!HEv9710&v9710<>-2:E?v9803;
!!VRv9706&v9711=1:S1;


Что имеем? Это кусок загоните в самый верх скриптов, теперь вы можите в любых триггерах и условиях пользоваться следующими данными:

;v9705,v9706 - кто игроки? левый и правый. (0 - человек, 1 - ИИ)
причём если в Воге нейтралы определяются как человек, то тут как ИИ.

;v9707,v9708 - хозяины левого и правого героев. -1 если нет хозяина
;v9709,v9710 - номера героев (-2 если нет героя)
;v9711 - тип сражения:

1 - Герой-человек vs Нейтралы
2 - Герой-человек vs Существа Компа
3 - Герой-комп vs Человеческих существ
4 - Герой-человек vs Человеческих существ
5 - Герой-человек vs Герой-комп
6 - Герой-комп vs Герой-человек
7 - Герой-человек vs Герой-человек

Иногда этой инфы мало, тогда идёт следующий код:
(номер функции можно менять)

Код
!?FU22501;Battle Function
;*x1* - for whom: human(0) or AI(1)
;*x2* - what: side(0) owner(1) or hero_number(2)
;*x3* - index of v-var to store the result
!!VRy1:S9705+x1;
!!VRy2:S9707+x1;
!!VRy3:S9709+x1;y1,y2,y3 - indexes
!!VRvx3&x2=0:Svy1;
!!VRvx3&x2=1:Svy2;
!!VRvx3&x2=2:Svy3;


Возвращает некоторые боевые параметры.
Аргументы: (то, что передаём функции после P)
*x1* - для кого: (0 - человека/1 - компа)
*x2* - что хотим получить: 0 - сторону (0 -левая/1 - правая), 1 - хозяин, 2 - номер героя
*x3* - индекс v-переменной в которую будет закинут результат.

В принципе теперь любую битву можно корректно отследить и обработать для любого скрипта. Вернёмся к поставленой Вами задаче:

;flag100 - нам нужен флаг, который сообщит нам, что битву нужно переиграть

Код
!?BA1&1000/-100/v9711=1/v9707=1;
;Итак битва человека нужного героя с нейтралами (первая битва)
;Уже прошла. Кто же победил?


Можно проверить героя на хозяина, но я предпочитаю делать универсальные триггеры для всех случаев жизни. Потому после нашего предбитвенного кода ставьте следующее:

Код
!?BA1;Standart Post-battle trigger
!!HEv9709:O?y1;
!!VRv9804:S0;
!!VRv9804&y1=v9707:S1;


Теперь переменная v9804 всегда будет указывать проигравшую сторону. Следовательно, проверяем, проиграла ли левая сторона. А для пущей оптимизации кидаем это в условие триггера, так что исправляем верхний код на:

Код
!?BA1&1000/-100/v9711=1/v9707=1/v9804=0;
;Итак битва человека нужного героя с нейтралами (первая битва)
;Уже прошла. Проиграли мы :(


Теперь дело вторичное. Взять монстров используя !!BA:M и спровоцировать ещё одну битву с данным героем.

Код
;....продолжение
!!BA:M1/?v100/?v101 M1/?v102/?v103 M1/?v104?/v105 M1/?v106/?v107 M1/?v108/?v109 M1/?v110/?v111 M1/?v112/?v113;
!!HE1:Tv998/v999/v1000/0/1;

Итак мы сохранили армию нейтралов в v100-v113. Можно использовать другие переменные. А герою устраиваем сражение

Код
!?BA0&100;
;Другие проверки не нужны, наш флаг не врёт.
!!BA:M1/0/v100/v101 M1/0/v102/v103 M1/0/v104/v105 M1/0/v106/v107 M1/0/v108/v109 M1/0/v110/v111 M1/0/v112/v113;
!!BA:H0/1;
!!BA:M0/3/3/1;

Всё, нейтралов установили, героя тоже, лучника тоже. Осталось проследить, что произойдёт после.

Код
!?BA1&100/v9804=0;проиграл наш герой
!!OW:I-1/d/1;Смерть ему

Команда убивает текущего игрока.
Осталось лишь обработать действия при победе.

Код
!?BA1&100/v9804=1;
!!IF:V100/0;Обнуляем наш флаг до лучших времён
........

Теперь чуть сложнее, так как код надо проверять. Я не могу заранее предсказать реакцию ЕРМ. Можно попробовать удалить монстров, установить местоположение героя и установить ему хозяина.

Код
!!UN:Ov998/v999/v1000/1;
!!HE1:Pv998/v999/v1000/0;
!!HE1:O#;где # - это хозяин.


Вот и всё. В последнем отрывке поставьте цвет хозяина. Если красный, то 0.
Работу не обещаю, писал навскидку.
Go to the top of the pageAdd Nick
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 1 December 2025 - 20:10
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика