юнит берсерк (500 хп), когда покупаешь улучшение у него становится так , что когда его хп подает ниже 50, ему дается реген и атакспид (две абилки с предметов), когда выше 150 ,убираются эти 2 абилки, как триггерно сделать чтоб выбирало конкретный тип юнита и проверяло его хп, как добавить скилы и убрать я знаю, не понимаю как составить событие и условие, в переменных не понимаю, может можно без них?

nero666, вот тебе пример-наработка. Посмотри и разберись. В целом схема та-же, но есть изменение, что событие не "Юнит атакован", а "Здоровье юнита доходит до уровня меньше равно 50", которое мы добавляем для каждого нового юнита в триггер.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
26
Я бы на твоем месте всех берсерков добавлял бы в группу БЕРСЕРКИ при их создании (попадании на карту). Потом при событии Юнит атакован и условии Юнит находится в группе БЕРСЕРКИ и ХП меньше 50, то в действиях добавлял бы юнит триггера в новую группу РЕГЕНБЕРСЕРКИ и удалить из группы БЕРСЕРКИ, и добавил 2 абилки юниту.
Далее второй триггер каждые 1 сек будет проверять группу РЕГЕНБЕРСЕРКИ, если хп у юнита больше 150, то удалить из группы РЕГЕНБЕРСЕРКИ, удалить способки и добавить юнита в БЕРСЕРКИ.
Так-же триггер событие Юнит умирает, условие юнит есть в группе БЕРСЕРКИ или юнит есть в группе РЕГЕНБЕСЕРКИ то в действиях удалить юнита из групп.

По поводу групп юнитов - да, это переменные надо создать, показать пример?

А и да, еще надо добавить во 2 триггер проверку, что у владельца триггерного юнита исследовано исследование твое.
Ответы (6)
2
konvan5, как добавить берсерки в группу берсерки, что за группы)))) я идею понимаю, но реализацию ...
26
nero666, ну сейчас набросаю тебе пример... Еще такой момент, у тебя изначально берсерки, или сначала охотники за головами, которые могут прокачаться в берсерков?
То есть у охотников такой реген может быть?
26
nero666, вот тебе пример-наработка. Посмотри и разберись. В целом схема та-же, но есть изменение, что событие не "Юнит атакован", а "Здоровье юнита доходит до уровня меньше равно 50", которое мы добавляем для каждого нового юнита в триггер.
Загруженные файлы
Принятый ответ
2
konvan5, все, стой, я сделал, как ты сказал, получилось)
Спасибо огромное)
2
konvan5, жду тебя на следующем вопросе про кражу голды)
23
Можно ещё такой вариант:
Юнит атакован
Если ид юнита берсерк и у владельца юнита завершено исследование
__Если у него нет абилки реген
_____Если его здоровье меньше 50
________то дать юниту абилки реген и атакспид
__иначе (есть абилка реген)
_____Если его здоровье больше 150
________то убрать у юнита абилки
1 триггер. Как то так примерно )
Правда, его нужно делать с локальными переменными.
С глобальными это полный вынос мозга будет) даже думать об этом не хочу )
Ответы (6)
26
EugeAl, у тебя реген будет отключен только при атаке юнита а не когда хп дойдет до 150.
26
EugeAl, и кстати, юнит атакован - не равно получение урона... то есть еще не будет хп ниже 50... Если говорить про стандартный варик 1.26а. Вот в расширенных вариках как от анрайза, там такие событие наверняка есть.
26
EugeAl, я думаю что можно решить эту проблему тем способом, что изменить событие "юнит атакован" на "здоровье юнита доходит до равно или меньше 50". И так событие для каждого юнита добавлять в триггер.
23
konvan5, а, точно, забыл про это. Тогда этот скрипт нужно и на таймер повесить, и через группу перебирать всех берсерков... пикать в группу, делать цикл по юнитам, а потом очищать группу.
Ну или делать твой вариант)
С триггерами на каждого юнита будет куча утечек типа event, а event нельзя удалить, к сожалению, при том что event это handle (
26
EugeAl, это да, событие не удалить... Если юнитов немного за игру копится, то на такую утечку можно и забить. Ну а с таймером усложнять тяжело, не оптимизированно :D
Даже просто перебирать каждые 0.5 сек... но так можно да спокойно.
23
konvan5, не совсем таймер, второй триггер с событием timer event, а на нем висит перебор группы )
22
Предупреждение автору публикации

1 пункт: 10.4 Создание ресурса, название которого не отражает суть вопроса.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.