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

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

Смени типа движения возможна только через морф в другую боевую единицу через руну (на любом патче)
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
24
4 года назад
0
Как вариант - не только дать превращение, но и применить его, чтобы произошел морф, а не только баг открывающий возможность визуально менять высоту. У этого способа, естественно, есть проблемы и ограничения, как и у любых других морфов.
0
1
4 года назад
0
prog:
Как вариант - не только дать превращение, но и применить его, чтобы произошел морф, а не только баг открывающий возможность визуально менять высоту. У этого способа, естественно, есть проблемы и ограничения, как и у любых других морфов.
Вот типа этого? Я не вижу функции - применить способность, только что данную юниту
Загруженные файлы
0
5
4 года назад
0
на рефорджете можно менять тип юнита чеоез BlzSetUnitIntegerField и никакие ущербные морфы ворона больше не нужны
1
32
4 года назад
1
Pashka5, функция есть а не работает. Проверял на 132.6*...
Тип движения меняется, и дебаг пишет что он изменён, а по факту - н и ч е г о
0
5
4 года назад
Отредактирован Pashka5
0
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 так как там надо циферку ставить...
0
32
4 года назад
0
гет филд работает да, но юнит не начинает летать или ходить по воде
2
32
4 года назад
2
У меня в профиле специально этот код висит
			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 будет возвращать, что юнит летающий
0
32
4 года назад
0
Работало на мемхаке, при том только если делать из изначально летающего другие типы, после смерти тип сбрасывался в исходный. А так делайте морфы и не парьтесь.
0
5
4 года назад
0
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 и делаешь наземным...Не знаю ни чего у меня все работает на ура!
0
32
4 года назад
0
quq_CCCP, на мемхаке когда я такое просил, Лич сказал, что не нашёл ещё адресов.~Pashka5, доверяй но проверяй, вечером проверю, ты в принципе убедителен, может я и правда где-то провтыкал
0
8
4 года назад
Отредактирован Castiel
0
прилагаю карту, сам уже давно так делаю, действенный способ и пример скил прыжок и удар....Не вижу смысла делать пеших летающими, заюзал флай и опустил....
Загруженные файлы
0
32
4 года назад
0
Castiel, это другой, триггерная смена типа движения позволит остаться на дефолт поиске пути
0
32
4 года назад
0
Bergi_Bear, в том мемхаке что выкладывал Unryze, это было.
2
32
4 года назад
Отредактирован Берги
2
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, а этот тип движения игнорирует пафинг и включает кастомный путь, я строку закомментил, работоспособность кода не поменялась, ибо строка НЕ работает и НИЧЕГО не даёт в принципе. Мне жаль, а я уже было обрадовался что филды починили.. ну когда же их сделают
миф развеян или хз как ещё проверить =(
Загруженные файлы
0
24
4 года назад
0
Bergi_Bear, это все-же имеет ценность в том виде как его юзает Castiel - ради того чтобы, например, можно было сделать проверку на то что юнит сейчас в полете, не используя дополнительных флагов. Но, конечно, по настоящему летающим это юнита не делает, но он вроде и не претендовал, в отличии от Pashka5. Если, конечно, это не одно и то же лицо.
0
28
4 года назад
0
Надо сделать пачку тестов, чтобы их запускать после каждого патча и смотреть, что сломали, а что починили.
0
32
3 года назад
0
Смени типа движения возможна только через морф в другую боевую единицу через руну (на любом патче)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.