собсно вопрос: каким способом можно реализовать такую систему - допустим на юнита использовано заклинание "невидимость", ему при этом дается способность "змеиная ловкость". нужно чтобы через 30 секунд "змеиная ловкость" удалилась из способностей данного юнита (грубо говоря нужно чтобы способность давалась юниту на время,а по истечении опр времени удалялась, при этом на карте у каждого игрока может быть по несколько таких юнитов, короч МУИ). сам пробовал через пики группы юнитов, но очень загружает игру, через массивы таймеров не допер как сделать, если кто знает подскажите как либо покажите на примере, буду благодарен :)
Вопрос остается открытым, ведь если бафф будет сдиспелен способность остается... хотел подредактировать вариант триггера Dragonear(см. картинку xgm.guru/files/100/146859/primer.jpg ) но не знаю нужной функции в джассе :)

Принятый ответ

Я бы на вашем месте использовал "Custom Script", то есть вставил локальные переменные на языке jass. Вышло бы приблизительно так:
Вот рабочий триггер. Никаких глобальных переменных. Работает со множествами игроков и юнитов. Не тормозит карту.
В условиях: (Ability being cast) равно "Здесь поставь способность которая применяется на юнита"
Описываю действия:
  1. Создаем локальную переменную юнита
  2. Даем юниту на которого применяется способность "Невидимость", способность "Змеиная ловкость"
  3. В локальную переменную юнита вписываем юнита на которого применена способность
  4. Ждем тридцать секунд, то есть столько времени, сколько у юнита будет доп. способность "Змеиная ловкость"
  5. По истечении времени забираем у юнита доп. способность "Змеиная ловкость"
В пятой строке 'AEev' - это код способности "Змеиная ловкость"
Если что-то не понятно - обращайся.
Напоминаю - триггер полностью играбельный!
К комментарию добавляю карту с рабочим триггером:
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
23
9 лет назад
Отредактирован Obelick
1
Создаешь 2 переменных: таймер(массив) и целочисленную(NUM, будем ее так называть)
При каждом касте невидимости делаешь NUM +1 и запускаешь таймер(NUM)
А, я не так тебя понял)
Вот короче, долго объяснять.
Загруженные файлы
2
11
9 лет назад
Отредактирован Dragonear
2
Я бы на вашем месте использовал "Custom Script", то есть вставил локальные переменные на языке jass. Вышло бы приблизительно так:
Вот рабочий триггер. Никаких глобальных переменных. Работает со множествами игроков и юнитов. Не тормозит карту.
В условиях: (Ability being cast) равно "Здесь поставь способность которая применяется на юнита"
Описываю действия:
  1. Создаем локальную переменную юнита
  2. Даем юниту на которого применяется способность "Невидимость", способность "Змеиная ловкость"
  3. В локальную переменную юнита вписываем юнита на которого применена способность
  4. Ждем тридцать секунд, то есть столько времени, сколько у юнита будет доп. способность "Змеиная ловкость"
  5. По истечении времени забираем у юнита доп. способность "Змеиная ловкость"
В пятой строке 'AEev' - это код способности "Змеиная ловкость"
Если что-то не понятно - обращайся.
Напоминаю - триггер полностью играбельный!
К комментарию добавляю карту с рабочим триггером:
Загруженные файлы
Принятый ответ
0
5
9 лет назад
0
хм, спасибо ребят,буду дома обязательно все проверю
0
11
9 лет назад
0
Не за что)
2
5
9 лет назад
2
спасибо все триггеры рабочие, но у Dragonear реально проще и лучше ) Спасибо
5
24
9 лет назад
Отредактирован prog
5
Castwork, проще то проще, но есть проблема... Нет сброса таймера - если на юнита два раза подряд скастовать способность, дающую дополнительную способность, то дополнительная способность пропадет после истечения первого таймера, а не второго.
Dragonear, да хоть до смерти заминусуйся, а описанная проблема сама никуда не денется.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.