Всем привет, глуповатый вопрос, но я не нашел ответа. Как сделать ограничение на призываемого юнита (элементаль, зверушки у рексара и тд.)? Ограничение подготовки не помогает(
P:S Я сделал время призыва 0, поэтому юниты вечные и для этого как раз и нужно ограничение

Короче, если у тебя всего один такой герой на карте, то вот простой способ реализовать эту систему (даже на все уровни способности с разными уровнями юнитов).
Вот прикрепил карту, если интересно самому потестить и посмотреть.

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

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

Если хочешь, чтобы 3-тий просто не призывался, удали убийство юнита в проверке и замени на:
Если юнитов в группе Юниты больше 1 то:
убить юнит триггера
иначе:
добавить юнит триггера в группу юниты
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Этот комментарий удален
25
Я не понял про какое ограничение идет речь.
Ограничение в длительности жизни юнита? Ограничение в кол-ве призываемых юнитов 1 героем, типа призвал 1, потом еще раз и первый удалился?
Если 1 вариант, чем тебе основа способки призыва элементаля воды не подходит?
Если 2 вариант, чем тебе основа способки призыва медведя Рексаром не подходит?
Ответы (8)
28
konvan5, мне моя жизнь не подходит, как её ограничить?
Если тебе нужно ограничение призываемых юнитов для каждого игрока, то вроде как есть событие, что юнит призывает юнита. Если такого нет, то выдай им абилку пустышку и при входе на карту проверяй наличие, чтобы квалифицировать как призванного. При появлении такого юнита инкрементируешь массивную целочисленную переменную игрока под соответствующим индексом . При касте абилки проверяешь эту переменную, если она больше нужного тебе количества, то отменяешь каст призыва, опционально выводишь текст с ограничением. При смерти такого юнита - декрементируешь переменную игрока
Upd если количество различных призывов нужно ограничить для конкретного юнита, а не самого игрока, то в целое число юнита сохраняй значение, которое послужит индексом для массива, поскольку тебе нужно хранить в каждом призванном юните его владельца, либо пользуйся хэштаблицей и кастомскриптом
1
konvan5,
я имел в виду ограничение кол-ва конкретного вызываемого юнита (мол его вызвать можно только 2 раза)
1
rsfghd, Событие юнит призывает юнита имеется, как в таком случае дальше дейстовать?
25
Boba, то есть призвал 1 раз, появился юнит, призвал второй раз, появился второй юнит, теперь у тебя 2 юнита, и все, дальше способка удаляется? Или при призыве 3-тьего юнита должен удалиться первый?
25
Boba, как ты видишь свое ограничение, как пользователь должен его видеть и понимать? Детальнее описывай.
1
konvan5,
Призвал 1 раз, призвал 2 раз, призвал 3 раз - ничего не происходит (так как подразумеваемый лимит в 2 юнита), но первые два юнита живут +со способностью ниче не происходит она остается. Если убили кого-то из тех двух убили или сразу обоих, то цикл начинается заново: призвал 1 раз... и т.д
Сами же юниты у меня без таймера. Это так и должно быть (я поставил время жизни на 0, следовательно таймер спал и они стали вечными).
Простите ребят, что не указал всё так подробно, прост вы подкинули такие варианты о которых я даже и не догадывался.
25
Boba, а эта способка только у одного героя на карте есть или может быть у нескольких? Ну явно придется триггерить.
25
Boba, и если есть 2 юнита, а мы призываем 3-тьего, и он не призывается, а ману получается мы потратили просто так, так? Или не даем применить способку пока 2 прошлых живы? А если мы вызввали юнитов 1 уровня, потом качнули способку, и пытаемся вызвать юнита 2 уровня, получается не вызовем ибо прошлые 2 юнита 1 уровня еще живы, и если игроку надо вызвать нового юнита, ему надо самолично убить двух юнитов 1 уровня?
Этот комментарий удален
28
Событие юнит призывает юнита имеется, как в таком случае дальше дейстовать?
Ответь на вопросы от konvan5 и подскажу, поскольку способом ограничения уйма - по игроку, по юниту, общее, по таймеру, и т.д. и т.п.
Ответы (5)
23
P:S Я сделал время призыва 0, поэтому юниты вечные и для этого как раз и нужно ограничение
Ему нужно ограничение по времени, время жизни чтоб было
25
EugeAl, мы не должны угадывать, но я сомневаюсь в вашей теории, коллега :D
Ждем, пока автор нормальным человеческим языком объяснит, а не 3 куска паззла даст из 10 и бери и угадывай, какая картинка нужна :D
23
konvan5, Если он имел в виду другое - это его проблемы, пусть нормально вопрос пишет )
А так, исходя из интерпретации, ему надо время жизни, на том думаю можно и остановиться )
28
konvan5, Если он имел в виду другое - это его проблемы, пусть нормально вопрос пишет )
А так, исходя из интерпретации, ему надо время жизни, на том думаю можно и остановиться )
P:S Я сделал время призыва 0, поэтому юниты вечные и для этого как раз и нужно ограничение
25
Короче, если у тебя всего один такой герой на карте, то вот простой способ реализовать эту систему (даже на все уровни способности с разными уровнями юнитов).
Вот прикрепил карту, если интересно самому потестить и посмотреть.

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

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

Если хочешь, чтобы 3-тий просто не призывался, удали убийство юнита в проверке и замени на:
Если юнитов в группе Юниты больше 1 то:
убить юнит триггера
иначе:
добавить юнит триггера в группу юниты
Загруженные файлы
Принятый ответ
Ответы (3)
28
При призыве нового юнита, если есть 2 старых, один из них умрет. Это будет выгоднее в любых ситуациях, ибо новый призванный полностью здоров и может быть на уровень выше чем любой старый.
За исключением ситуаций с проверкой самого израненного призванного юнита и его уровня, тогда будет ещё выгоднее
1
konvan5, Легенда! Очень благодарен за то, что ты провозился со мной и помог
P:S в след разы вопросы буду формулировать четчё.
25
rsfghd, если искать выгоду, это верно. Или самого первого вызванного, что тоже логично было бы чисто механически (у меня рандом).
Чтобы оставить комментарий, пожалуйста, войдите на сайт.