Добавлен
у нас есть несколько кастеров с заклинанием, к примеру - яд
яд вешается на одиночную цель, и дамажит
как в loop проверять юнитов по индексу, подскажите плз
у меня есть идея - выбирать всех юнитов в группе и дамажить поочередно в зависимости от индекса, а после - выкидывать из группы, но я не уверен что прав. пока не у компа с картой

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

есть событие - юнит получает урон. в нём отслеживается как жертва, так и наносящий урон. можно хоть через хэш, хоть через структуру Юнита записывать всё, что угодно. Кто от кого конкретно сколько получил урона, кто кому сколько нанёс, сколько провисел на ком-то бафф яда и т.п. (Сначала был loop, а теперь периодический триггер). Каждые N секунд, перебираешь всех юнитов в массиве или списке, и отслеживаешь всё, что надо.
Структура - Unit. У неё есть двойной список с юнитами и уроном от яда (полученным или нанесённым - зависит от того, у кого будет этот список - у жертв или у тех, кто наносит яд). Типа DoubleList. В DoubleList есть элементы DoubleElement. В каждом таком элементе записаны unit и real (урон от яда от этого юнита). При получении урона от яда перебирается список, если юнит уже есть, урон от него (или ему) прибавляется. Если нет, то создаётся новый элемент с новым юнитом.
Периодически у нужных юнитов эти списки перебираются. Всё.
0
24
9 лет назад
0
как в loop проверять юнитов по индексу,
какихюнитов и какого индекса? кастеров-жертв? индекс массива или юнита?
Сформулируй пояснее...
0
2
9 лет назад
0
не пытайся сломать людям мозг невнятными вопросами. либо тупо не поймут, либо пошлют. у юнитов есть UserData, есть PointValue. Есть ID. Какой индекс у юнита??
0
24
9 лет назад
Отредактирован Melissa
0
userdata mb
Этот комментарий удален
0
20
9 лет назад
Отредактирован ssbbssc
0
итак, есть скилл, который вешается на одну цель - яд. яд есть у нескольких юнитов. вопрос - как в периодическом триггере (каждые N сек) отследить нанесение урона конкретно каждым кастером каждой цели? при условии, что кастер и цель сохранены в переменную массив. надеюсь теперь понятнее
0
15
9 лет назад
Отредактирован EnergyFrost
0
понятнее
я думаю, тут немного вариантов:
  1. нужно либо вычислять разность хп. h2-h1= твой урон (но это если только никакие другие факторы, кроме твоего яда) на хп за N секунд не повлияют
  2. урон - const
  3. нужно менять событие на получение урона юнитом.
PS ну если я верно понял, то что ты написал
0
20
9 лет назад
Отредактирован ssbbssc
0
EnergyFrost:
не совсем. я урон триггерно наношу. дело в источнике урона, то есть если яд у нескольких юнитов, то каждый дамажит свою цель. и с отслеживанием цели у меня затуп
0
29
9 лет назад
0
ssbbssc,
хэш юзай
0
2
9 лет назад
Отредактирован modern19999
0
есть событие - юнит получает урон. в нём отслеживается как жертва, так и наносящий урон. можно хоть через хэш, хоть через структуру Юнита записывать всё, что угодно. Кто от кого конкретно сколько получил урона, кто кому сколько нанёс, сколько провисел на ком-то бафф яда и т.п. (Сначала был loop, а теперь периодический триггер). Каждые N секунд, перебираешь всех юнитов в массиве или списке, и отслеживаешь всё, что надо.
Структура - Unit. У неё есть двойной список с юнитами и уроном от яда (полученным или нанесённым - зависит от того, у кого будет этот список - у жертв или у тех, кто наносит яд). Типа DoubleList. В DoubleList есть элементы DoubleElement. В каждом таком элементе записаны unit и real (урон от яда от этого юнита). При получении урона от яда перебирается список, если юнит уже есть, урон от него (или ему) прибавляется. Если нет, то создаётся новый элемент с новым юнитом.
Периодически у нужных юнитов эти списки перебираются. Всё.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.