Условие - герой имеет не изученную способность X

Для более наглядного и ясного сути вопроса, буду ссылаться на способность из Dota (Dota2) что бы те кто в курсе быстрее понял вопрос.
Способность героя Pudge - Flesh heap которая звучит так :
"Увеличивает сопротивление магии, а также даёт дополнительную силу за каждого убитого или погибшего поблизости вражеского героя. Заряды накапливаются с начала игры, но герой получит силу только после изучения способности"
Что мне важно это конкретно : "Заряды накапливаются с начала игры, но герой получит силу только после изучения способности"
Всё в целом ясно понятно, можно ставить в условии тип героя (юнита) который имеет эту способность для изучения изначально, но что если эта способность появится у любого unit-type? Как мне прогонять loop по группе юнитов (которые типо будут иметь в будущем эту способность для изучения , что бы она для них накапливалась?) Единственное что приходит на ум это условие типа ГЕРОЙ ИМЕЕТ СПОСОБНОСТЬ ДЛЯ ИЗУЧЕНИЯ В СПИСКЕ СВОИХ СПОСОБНОСТЕЙ, но насколько я знаю такого условия нет. Ваши варианты ? Надеюсь максимально понятно пояснил. Заранее спасибо. Возможно тут всё проще и я затупил.

Ответ

Кстати а вдруг у игрока их может быть несколько таких юнитов)
Учим хэштаблицу либо структуры либо целое число юнита. Сохраняем целое в юнита после того как он убивает крипчика, когда юнит получает абилку достаешь это значение и меняешь характеристики. При последующих убийствах как хочешь, можешь сохранять значение например для отображения стаков, а можешь без сохранения увеличивать показатели


Views: 131

» Лучшие комментарии


Roy Mustang #1 - 2 months ago (изм. ) 1
Голосов: +2 / -1
Даем герою - способность пустышку и проверяем есть ли у героя данная способность при убийстве крипа.
При изучении нужной тебе способности выдаем бонус.
(зачем тебе loop - просто используй переменную и засчитывай ее под номер игрока которому принадлежит герой)
Триггер 1
Засчитываем бонус
Event
Unit Dies
Condition
Level of Dummy Ability for Killing Unit > 0
Action
Set Bonus[Player Number (Owner of Killing Unit)] = Bonus[Player Number (Owner of Killing Unit) ] + 1.
Выдаем бонус если у героя изучена реальная способность
If
Level of Real Ability for Killing Unit > 0
then
Выдаем твой бонус
else
EviLInside #2 - 2 months ago (изм. ) -1
Голосов: +0 / -1
(зачем тебе loop - просто используй переменную и засчитывай ее под номер игрока которому принадлежит герой)
Без этого ни как )) в vJass без прогонки ты никак не сделаешь MUI спеллы легко, там придётся добавлять array и индексы ( если не сможешь к таймеру привзяать) ,как говорят чуваки из LUA там ты забудешь о MUI , я не близок к программированию , но суть понимаю что мне сложновато это дерьмо делать.

Кстати а вдруг у игрока их может быть несколько таких юнитов)
Roy Mustang #3 - 2 months ago (изм. ) 2
Голосов: +2 / -0
EviLInside:
Кстати а вдруг у игрока их может быть несколько таких юнитов)
Повысить уровень дамми абилки для нужного тебе юнита и выдавать бонус равный ее уровню.
quq_CCCP #4 - 2 months ago (изм. ) 4
Голосов: +4 / -0
Все просто, при вручении или изучении способности вручается бонусы, число убийств ведётся со старта игры, у всех потенциальных владельцев абилки.
rsfghd #6 - 2 months ago (изм. ) 5
Голосов: +5 / -0

Кстати а вдруг у игрока их может быть несколько таких юнитов)
Учим хэштаблицу либо структуры либо целое число юнита. Сохраняем целое в юнита после того как он убивает крипчика, когда юнит получает абилку достаешь это значение и меняешь характеристики. При последующих убийствах как хочешь, можешь сохранять значение например для отображения стаков, а можешь без сохранения увеличивать показатели
Стас Орлов #8 - 1 month ago 0
Голосов: +0 / -0
Можно взять группу и добавлять в неё юнитов, ты же сам решаешь у кого будет способность, потом прокручиваешь всю группу и записываешь на каждого юнита нужное число