var navTitle = 'Navigation';
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: iSacreD  
Форум » World Editor » Триггеры, GUI и Jass » Возрождение монстров как в доте
Возрождение монстров как в доте
Оффлайн
Среда, 23.10.2013, 22:00 | Сообщение # 1
Сообщений:
45
Награды+
10
Приветствую, читатель!
Эта статья из рубрики "Как в Доте" расскажет о правильном (корректном) респауне нейтралов.


ПОДГОТОВКА



Для начала определитесь, какие мобы вам нужны и сколько их спаунов необходимо. Далее создайте (или откройте нужную) карту, расставьте парочку спаунов, как в доте (лес, возвыщения бла бла бла). В каждый из таких спаунов поместите по две области (одна меньше (для самого спауна), вторая - побольше (область для проверки, есть ли там юниты и можно ли создавать спаун), чтобы было как в доте). У меня получилось так:



Называйте области правильно, чтобы не запутаться. Например: области для 1 спауна назовите "Spawn 1 1" и "Spawn 1 2".
Так можно понять, какие где области и не запутываться.
Идем дальше.


ТРИГГЕРЫ



Как же спаунятся нейтралы? В доте они появляются каждые 60 сек, а также в первые 30 секунд игры. Я взял для примера каждые 30 секунд. Скрин, потом объяснение.



Из примера видно, что каждые 30 секунд идет сравнение, находятся ли в области Spawn 1 2 юниты, и если нет, то создать некоторую группу юнитов. Группа создается так:
1. Присвоение некоторой переменной (в моем случае SpawnRandom) случайное значение в промежутках от 1 до количества групп нейтралов, которые вы придумали (в моем случае - 3 группы).
2. Сравнение, если SpawnRandom=1, значит нужно создавать группу 1; иначе - если SpawnRandom=2, то, соответственно нужно создавать группу 2. Иначе же просто создать третью группу, ибо вариантов значений SpawnRandom больше нету (если значение между 1 и 3, а мы рассмотрели 1 и 2, то последний возможный вариант только 3).

Все хорошо, думаете вы, не правда ли? Увы, но у такой системы есть проблема.
Спаун не сработает, если в области будут мертвые юниты. По смыслу, крипов мы уже убили, значит можно создавать новый спаун. Но триггеру все равно, мертвый юнит, или нет, ведь юнит в области, значит условие не выполнено. Изменяем наш триггер:



Мы выбираем каждого юнита в нужной области, и сравниваем, мертвый он или нет. Если да, то увеличиваем некоторую переменную (в моем случае - Spawn_Die_Units) на 1. В конце концов, наша переменная Spawn_Die_Units будет равна кол-ву мертвецов в области. Далее сравниваем кол-во юнитов в области. Условие таково: Если кол-во юнитов в области меньше или равно Spawn_Die_Units, то делаем все те же действия, что и в предыдущем триггере (1 скрин), только все эти действия должны быть после сравнения Spawn_Die_Units, и в операторе If/Then/Else с условием описанным выше.

В триггере мы имеем 2 if/then/else, которые и дают нам корректный спаун.
Так повторяйте со всеми нейтральными спаунами.
Good luck, have fun!

Статья для сайта warcraft3editor.ru, копирайт без указания автора (iSacreD) и без ссылки на сайт ЗАПРЕЩЕН ! !
Оффлайн
Суббота, 27.12.2014, 07:53 | Сообщение # 2
Сообщений:
1
Награды+
0
Admin, сылка не рабочая попробуй перезалить пожалуйста.
Форум » World Editor » Триггеры, GUI и Jass » Возрождение монстров как в доте
  • Страница 1 из 1
  • 1
Поиск: