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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
9
Ну ты же сам описал принцип.
Событие - Юнит получает уровень
Условие - Юнит = нужный тебе юнит
Действие - Создать/заменить на выбранного
28
Создать/заменить на выбранного
Лучше руной с морфом.
5
noyl:
Ну ты же сам описал принцип.
Событие - Юнит получает уровень
Условие - Юнит = нужный тебе юнит
Действие - Создать/заменить на выбранного
Но он будет получать морф,при получении любого уровня,а мне нужно именно чтобы когда достигал определенного уровня он получал морф.(я привык к инглиш триггерам и поэтому можно пожалуйста желательно на английском триггеры)
30
Но он будет получать морф,при получении любого уровня,а мне нужно именно чтобы когда достигал определенного уровня он получал морф.
Так сложно дописать условие?
Действие:
если уровень = 3 морфим в это
если уровень = 5 морфим в то
если уровень = 7 морфим в сё
26
В данном случае юнит заменяется, то есть нужно по триггеру с уровнем для каждого типа юнитов:
С: Юнит Получает уровень
У: Unit-type равно НУЖНЫЙ_ЮНИТ
Integer comparsion Герой - Level of (Triggering unit) больше 9
Д: Заменить
30
то есть нужно по триггеру с уровнем для каждого типа юнитов
Можно не плодить триггеры и просто заполнить таблицу
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)
28
Да, массив + один триггер это всегда хорошая идея.
С: Инициализация
Д:
массив_рун[3] = равкод_руны_жаба
массив_рун[5] = равкод_руны_большаяжаба
массив_рун[7] = равкод_руны_огромнаяжаба

С: Юнит Получает уровень
У: Unit-type героя равно НУЖНЫЙ_ЮНИТ
Д:
Создать предмет массив_рун[уровень героя] в позиции героя
Если последний созданный предмет не null, то
    дать последний созданный предмет герою.  // герой = Leveling Hero
Принятый ответ
24
NazarPunk, хорошее решение, но мне что-то не нравится. Мозолит глаза запись по номеру уровня и почему-то хочется либо развернуть это в полноценную систему событий привязанных по уровню, только одно из которых морф, либо хранить уровень отдельно, а равкод отдельно.
22
а не проше ли
['Hpal|3|Hnew']
текуший и требуемый и какой замена юнита а через | разделим итог 3 значение
если про луа речь а 1.26 обычно все знают о чем!
30
хорошее решение, но мне что-то не нравится
Тогда можно использовать магию равкодов)
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)
24
NazarPunk, отличный костыль xD
Но суть не в том - предыдущий способ это был яркий пример овероптимизации а на событии происходящем достаточно редко, поэтому он вызывает у меня желание что-то в нем переделать.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.