Хочу сделать эволюцию юнита,тоесть например есть лягушка,а у неё 2 лвл
И нужно сделать так,чтобы когда она получала 2 уровень,она превращалась в другого более сильного юнита (ну к примеру какую-нибудь большую жабу)
Как это сделать?
Что нужно для этого триггера

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

Да, массив + один триггер это всегда хорошая идея.
С: Инициализация
Д:
массив_рун[3] = равкод_руны_жаба
массив_рун[5] = равкод_руны_большаяжаба
массив_рун[7] = равкод_руны_огромнаяжаба

С: Юнит Получает уровень
У: Unit-type героя равно НУЖНЫЙ_ЮНИТ
Д:
Создать предмет массив_рун[уровень героя] в позиции героя
Если последний созданный предмет не null, то
    дать последний созданный предмет герою.  // герой = Leveling Hero
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
4
5
5 лет назад
Отредактирован Wadimiru
4
Это конечно понятно,но это идея.Но все же необходимость уровня нужна,тоесть даже если через способность то требование уровня обязательно должно быть
Ну и в чем проблема? При касте навыка проверяй уровень кастера. Можно еще выдавать абилку эволюции на нужном уровне, чтобы наверняка.
А еще - учимся пользоваться поиском. Вопрос морфа юнита поднимался столько раз, что там на любой вкус есть решения.
0
10
5 лет назад
0
Ну ты же сам описал принцип.
Событие - Юнит получает уровень
Условие - Юнит = нужный тебе юнит
Действие - Создать/заменить на выбранного
1
28
5 лет назад
1
Создать/заменить на выбранного
Лучше руной с морфом.
0
5
5 лет назад
0
noyl:
Ну ты же сам описал принцип.
Событие - Юнит получает уровень
Условие - Юнит = нужный тебе юнит
Действие - Создать/заменить на выбранного
Но он будет получать морф,при получении любого уровня,а мне нужно именно чтобы когда достигал определенного уровня он получал морф.(я привык к инглиш триггерам и поэтому можно пожалуйста желательно на английском триггеры)
0
29
5 лет назад
0
Но он будет получать морф,при получении любого уровня,а мне нужно именно чтобы когда достигал определенного уровня он получал морф.
Так сложно дописать условие?
Действие:
если уровень = 3 морфим в это
если уровень = 5 морфим в то
если уровень = 7 морфим в сё
0
26
5 лет назад
0
В данном случае юнит заменяется, то есть нужно по триггеру с уровнем для каждого типа юнитов:
С: Юнит Получает уровень
У: Unit-type равно НУЖНЫЙ_ЮНИТ
Integer comparsion Герой - Level of (Triggering unit) больше 9
Д: Заменить
2
29
5 лет назад
2
то есть нужно по триггеру с уровнем для каждого типа юнитов
Можно не плодить триггеры и просто заполнить таблицу
MORPH                 = {}
MORPH[FourCC('Her0')] = { [3] = FourCC('Her1') }
MORPH[FourCC('Her1')] = { [5] = FourCC('Her2') }
MORPH[FourCC('Her3')] = { [7] = FourCC('Her4') }

TriggerAddAction(levelTrigger, function()
	local hero    = GetTriggerUnit()
	local newHero = MORPH[GetUnitTypeId(hero)][GetUnitLevel(hero)]
	if newHero ~= nil then
		MorphUnitTo(hero, newHero)
	end
end)
2
28
5 лет назад
Отредактирован PT153
2
Да, массив + один триггер это всегда хорошая идея.
С: Инициализация
Д:
массив_рун[3] = равкод_руны_жаба
массив_рун[5] = равкод_руны_большаяжаба
массив_рун[7] = равкод_руны_огромнаяжаба

С: Юнит Получает уровень
У: Unit-type героя равно НУЖНЫЙ_ЮНИТ
Д:
Создать предмет массив_рун[уровень героя] в позиции героя
Если последний созданный предмет не null, то
    дать последний созданный предмет герою.  // герой = Leveling Hero
Принятый ответ
0
24
5 лет назад
0
NazarPunk, хорошее решение, но мне что-то не нравится. Мозолит глаза запись по номеру уровня и почему-то хочется либо развернуть это в полноценную систему событий привязанных по уровню, только одно из которых морф, либо хранить уровень отдельно, а равкод отдельно.
0
23
5 лет назад
0
а не проше ли
['Hpal|3|Hnew']
текуший и требуемый и какой замена юнита а через | разделим итог 3 значение
если про луа речь а 1.26 обычно все знают о чем!
2
29
5 лет назад
Отредактирован nazarpunk
2
хорошее решение, но мне что-то не нравится
Тогда можно использовать магию равкодов)
TriggerAddAction(levelTrigger, function()
	local hero    = GetTriggerUnit()
	local newHero = GetUnitTypeId(hero) + GetUnitLevel(hero)
	local temp    = CreateUnit(newHero, Player(PLAYER_NEUTRAL_PASSIVE), 0, 0, 0);
	if temp ~= nil then
		RemoveUnit(temp)
		MorphUnitTo(hero, newHero)
	end
end)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.