Примечание. Я знаю о добавлении способности превращение в ворона, но оно лишь визуально дает такое представление, там уже можно менять высоту, но такой юнит не сможет перелететь море а будет топтаться у берега. Можно ли полностью изменить его тип триггерно?

Смени типа движения возможна только через морф в другую боевую единицу через руну (на любом патче)
`
ОЖИДАНИЕ РЕКЛАМЫ...
24
Как вариант - не только дать превращение, но и применить его, чтобы произошел морф, а не только баг открывающий возможность визуально менять высоту. У этого способа, естественно, есть проблемы и ограничения, как и у любых других морфов.
1
prog:
Как вариант - не только дать превращение, но и применить его, чтобы произошел морф, а не только баг открывающий возможность визуально менять высоту. У этого способа, естественно, есть проблемы и ограничения, как и у любых других морфов.
Вот типа этого? Я не вижу функции - применить способность, только что данную юниту
Загруженные файлы
5
на рефорджете можно менять тип юнита чеоез BlzSetUnitIntegerField и никакие ущербные морфы ворона больше не нужны
33
Pashka5, функция есть а не работает. Проверял на 132.6*...
Тип движения меняется, и дебаг пишет что он изменён, а по факту - н и ч е г о
5
Bergi_Bear:
Pashka5, функция есть а не работает. Проверял на 132.6*...
Тип движения меняется, и дебаг пишет что он изменён, а по факту - н и ч е г о
все прекрасно работает...я сам так делаю...BlzSetUnitIntegerField(unit,UNIT_IF_MOVE_TYPE,?) ...если у вас не работает значит не так делали...минусуйте-минусуйте самый действенный способ
constant movetype MOVE_TYPE_UNKNOWN = ConvertMoveType(0)
constant movetype MOVE_TYPE_FOOT = ConvertMoveType(1)
constant movetype MOVE_TYPE_FLY = ConvertMoveType(2)
constant movetype MOVE_TYPE_HORSE = ConvertMoveType(4)
constant movetype MOVE_TYPE_HOVER = ConvertMoveType(8)
constant movetype MOVE_TYPE_FLOAT = ConvertMoveType(16)
constant movetype MOVE_TYPE_AMPHIBIOUS = ConvertMoveType(32)
constant movetype MOVE_TYPE_UNBUILDABLE = ConvertMoveType(64)
лучше самому прверить через getfield так как там надо циферку ставить...
33
гет филд работает да, но юнит не начинает летать или ходить по воде
33
У меня в профиле специально этот код висит
			if UnitAddAbility(hero,FourCC('Ait9')) then print("testIsStart") end
			local thisAbi= BlzGetUnitAbility(hero,FourCC('Ait9'))
			local before=BlzGetAbilityIntegerLevelField(thisAbi,ABILITY_ILF_ATTACK_BONUS,0)
			print("before="..before)
			BlzSetAbilityIntegerLevelField(thisAbi,ABILITY_ILF_ATTACK_BONUS,0,100)
			local after=BlzGetAbilityIntegerLevelField(thisAbi,ABILITY_ILF_ATTACK_BONUS,0)
			print("after="..after)
я просто чекаю каждый патч это
на коде выше мы меняем бонусный урон из предмета, но ни-че-го. Pashka5, Покажи видео, гифкой, картой, где после применения
BlzSetUnitIntegerField(unit,UNIT_IF_MOVE_TYPE,MOVE_TYPE_FLY)
у тебя полетит наземный юнит... он не полетит, но GetField будет возвращать, что юнит летающий
32
Работало на мемхаке, при том только если делать из изначально летающего другие типы, после смерти тип сбрасывался в исходный. А так делайте морфы и не парьтесь.
5
Bergi_Bear:
У меня в профиле специально этот код висит
			if UnitAddAbility(hero,FourCC('Ait9')) then print("testIsStart") end
			local thisAbi= BlzGetUnitAbility(hero,FourCC('Ait9'))
			local before=BlzGetAbilityIntegerLevelField(thisAbi,ABILITY_ILF_ATTACK_BONUS,0)
			print("before="..before)
			BlzSetAbilityIntegerLevelField(thisAbi,ABILITY_ILF_ATTACK_BONUS,0,100)
			local after=BlzGetAbilityIntegerLevelField(thisAbi,ABILITY_ILF_ATTACK_BONUS,0)
			print("after="..after)
я просто чекаю каждый патч это
на коде выше мы меняем бонусный урон из предмета, но ни-че-го. Pashka5, Покажи видео, гифкой, картой, где после применения
BlzSetUnitIntegerField(unit,UNIT_IF_MOVE_TYPE,MOVE_TYPE_FLY)
у тебя полетит наземный юнит... он не полетит, но GetField будет возвращать, что юнит летающий
но почему у меня летает ? ставлю 1 для наземного он превращается в летающего и можно делать манипуляции с высотой, ставишь обратно потом по нужде высоту 0 и делаешь наземным...Не знаю ни чего у меня все работает на ура!
33
quq_CCCP, на мемхаке когда я такое просил, Лич сказал, что не нашёл ещё адресов.~Pashka5, доверяй но проверяй, вечером проверю, ты в принципе убедителен, может я и правда где-то провтыкал
8
прилагаю карту, сам уже давно так делаю, действенный способ и пример скил прыжок и удар....Не вижу смысла делать пеших летающими, заюзал флай и опустил....
Загруженные файлы
33
Castiel, это другой, триггерная смена типа движения позволит остаться на дефолт поиске пути
33
quq_CCCP, спасибо, хорошо, что нашли адреса
Pashka5, НЕ работает, проверил
BlzSetUnitIntegerField(hero,UNIT_IF_MOVE_TYPE,2) -- 0 1 2 3 4 5 6 7, я всё перебрал
print(" смена типа движения ")
дебаг сообщение есть, всё норм, но юнит не летает и н и ч е г о, не происходит увы

Castiel, вижу у тебя в карте тот же самый код, но не могу запустить карту
и не могу продолжить и у тебя стоит melee latest patch

в 132.8 чтоли сделано?

В 132.8 ещё хуже, так же не запустить, в какой версии это ребята? мб какие то 131?

Castiel, аха
строчку
BlzSetUnitIntegerField(HERO1,UNIT_IF_MOVE_TYPE,2)
в своём коде можешь вообще удалить, потому что ты двигаешь юнита через SetUnitXY, а этот тип движения игнорирует пафинг и включает кастомный путь, я строку закомментил, работоспособность кода не поменялась, ибо строка НЕ работает и НИЧЕГО не даёт в принципе. Мне жаль, а я уже было обрадовался что филды починили.. ну когда же их сделают
миф развеян или хз как ещё проверить =(
Загруженные файлы
24
Bergi_Bear, это все-же имеет ценность в том виде как его юзает Castiel - ради того чтобы, например, можно было сделать проверку на то что юнит сейчас в полете, не используя дополнительных флагов. Но, конечно, по настоящему летающим это юнита не делает, но он вроде и не претендовал, в отличии от Pashka5. Если, конечно, это не одно и то же лицо.
28
Надо сделать пачку тестов, чтобы их запускать после каждого патча и смотреть, что сломали, а что починили.
33
Смени типа движения возможна только через морф в другую боевую единицу через руну (на любом патче)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.