Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3913
Старый 27.06.2024, 20:45
  #3913
^
green belly
 
Аватар для green belly
📖
Регистрация: 14.06.2024
Сообщения: 21
Регистрация: 14.06.2024
Сообщения: 21
По умолчанию
Re: Скрипты

Снова я с вопросами((
Читаю инфу в инете и все равно не могу понять как правильно написать.
Вводные данные:
1) на карте 8 игроков - каждый сам за себя - все разные расы - у каждого своя "зона прокачки"

2) у каждого стоит своя постройка со скриптовым именем - предположим zdanie1 у первого игрока - zdanie2 у второго и так до 8 игрока.

Что нужно накодить:
1) случайный герой игрока 1 касается своей постройки zdanie1 и идет проверка наличия скилла, если скилл имеется, то дается боевой бонус на битву случайным ГЕРОЯМ ПРОТИВНИКА игроков 2-8.

Это ключевой момент всего скрипта, именно герою ПРОТИВНИКА.

Аналогично с другими игроками и их зданиями.
Случайный герой игрока 2 касается своего здания zdanie2 и идет проверка наличия скилла, если имеется, то выдается боевой бонус на битву всем героям противников, то бишь героям игроков 1,3-8.
И так по всем игрокам прописать.
2) Понимаю что примерно такого вида должен быть код (код будет ниже в пункте 3), но до конца не осилю его.

Стоит отдельно отметить, что я научился выдавать скиллы-заклинания-артефакты-боевые бонусы через тригер касания, но только тому кто касается здания (на моей карте это равняется дать плюшку СВОЕМУ герою ведь у каждого свое здание) за что большая благодарность АЗГАЛОРУ

3) Мой тестовый код который НЕ работает, но пытается, итак герой касается и погнали:

function zdanie1F ()
hero1 = GetPlayerHeroes(PLAYER_1);
hero2 = GetPlayerHeroes(PLAYER_2);
hero3 = GetPlayerHeroes(PLAYER_3);
hero4 = GetPlayerHeroes(PLAYER_4);
hero5 = GetPlayerHeroes(PLAYER_5);
hero6 = GetPlayerHeroes(PLAYER_6);
hero7 = GetPlayerHeroes(PLAYER_7);
hero8 = GetPlayerHeroes(PLAYER_8);
geroi1 = hero1
geroi2 = hero2
geroi3 = hero3
geroi4 = hero4
geroi5 = hero5
geroi6 = hero6
geroi7 = hero7
geroi8 = hero8
if HasHeroSkill (geroi1, условно скилл навигация)
then
GiveHeroBattleBonus (geroi2, бонус морали, -3);
GiveHeroBattleBonus (geroi3, бонус морали, -3);
GiveHeroBattleBonus (geroi4, бонус морали, -3);
GiveHeroBattleBonus (geroi5, бонус морали, -3);
GiveHeroBattleBonus (geroi6, бонус морали, -3);
GiveHeroBattleBonus (geroi7, бонус морали, -3);
GiveHeroBattleBonus (geroi8, бонус морали, -3);
Trigger (OBJECT_TOUCH_TRIGGER, "zdanie1", nil);
end;
end;
Trigger (OBJECT_TOUCH_TRIGGER, "zdanie1", "zdanie1F");

P.S. Копался в карте X-РТА - там есть подобный скрипт, только там реализован он без тригера и с помощью знаков -- которые подтягивают ранее прописанные значения типа --герой1 = херо1, ну а там уже кодеры серьезные.

green belly вне форума
Ответить с цитированием