Добрый день. Такой вопрос - есть юнит, обладающий определенной способностью с определенным уровнем. Затем этом юнит (например ратуша) улучшается (до крепости), и эту способность теряет. Как можно сделать, чтобы он её не терял. Еще фишка в том, что способность не его родная, а получается определенным триггером. Есть варианты?

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

native UnitMakeAbilityPermanent takes unit whichUnit, boolean permanent, integer abilityId returns boolean
Либо если у вас UMSWE 5.0, гуишная функция Боевая единица - Make Ability Permanent
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
2 года назад
0
Похожие вопросы:

ответ
Да чего вы чушь на уши льете человеку. Ты должен дать юниту способность-пустышку, допустим - веерный бросок, но все параметры, типо урона и радиуса действия сотри, напиши описание. Маны способность не будет стоить, но в описании ты укажешь, сколько золота стоит улучшение. Итак, структура триггера на словах.
  1. Событие:
-Юнит приводит способность в действие
  1. Условие:
-Тип юнита: пехотинец (поищи, найдешь).
  1. Действия:
Если применяющая способность равна Бандит, то
-Боевая единица: удалить применяющий юнит
-Боевая единица: создать бандита (позиция применяющий юнит, владелец применяющий юнит, и т.п.)
-Игрок: вычесть столько то золота
Иначе ничего не делать
Если применяющая способность равна Рыцарь, то
Делать тоже самое, только создай рыцаря, вычитай другое кол-во золота.
Иначе ничего не делать
P.S: можно использовать переменную типа юнит, однако желательно локальную, если ты знаешь, что это. Хотя я не могу быть уверен, что переменная как-то сильно поможет, можно обойтись и без нее.
Кстати, увидел, что человек выше написал функцию заменить юнита на другого, не помню ее, но может она и есть, тогда вместо удаления и добавления нового юнита лучше воспользоваться заменой.
ответ
у меня не улучшение как таковое а "Улучшается ДО" , никогда с этими улучшениями дела не имел, а как у других? Продавать юнита и при продаже подменять, чтобы проапгрейдить, мне кажется эта вещь должна нормально работать в варе же, неужели все тдшки и всякие петры на другой системе сделаны?
По своей проблеме разобрался, в РО карта путей стоял пункт "Нет" у башни 1, именно это и вызывало фатал при отмене улучшения
ответ
ну дай фриз юниту просто
но это не только убор скорости, это убор вообще всего, это по сути превращение в овоща со слюнями изо рта до момента, пока ты не заанпауишь юнита

если не покатит, то устраивай клоунаду
ройся в стандартных абилках
можешь вот как с яйцом предложили, можешь безэффектный баш швырять в лицо ублюдку (хотя это тоже фриз будет тащемта), можешь спавнить даммика с пасосом (одержимость баньши) и заставлять кастовать его 999 секунд и прогонять даммика, когда тебе нужно, можешь руты кипера бросать: тоже безэффектные + без дамага
включай фантазию

хочется чтобы эта замена происходила не моментально, а через какое то время (на подобии обучения в зданиях),
Юзай однократный таймер (или же если таких юнитов будет очень много, то загони весь этот скот в группу отдельную и сделай пустышную абилку родную им с 10 ЛВЛами и, условно, каждую минуту каждому юниту из группы этой снижай лвл на 1 этой абилки-пустышки периодиком, а когда будет = 1, то морфи в нужного юнита), вейты - зло. Но минус в том, что если это мелкая темка, то на неё целый лишний триггер будет.
ответ
Ладно, раз менее костыльного решения проблемы нет, сделал дополнительное исследование (скрытое), которое триггерно изучается при изучении 3-го левела оригинального улучшения.

2
1
2 года назад
Отредактирован Anonim2843
2
native UnitMakeAbilityPermanent takes unit whichUnit, boolean permanent, integer abilityId returns boolean
Либо если у вас UMSWE 5.0, гуишная функция Боевая единица - Make Ability Permanent
Принятый ответ
0
14
2 года назад
0
Спасибо, сработало!
Чтобы оставить комментарий, пожалуйста, войдите на сайт.