Мне нужно получить значение поля Order определённой способности
В русской версии оно называется Текст -порядок строк: включен
Если всё ещё не понятно, то для примера это:
creepthunderbolt у броска камня
devineshield у божественного щита
Так вот, я это поле пробовал получить функцией BlzGetAbilityStringLevelField
BlzGetAbilityStringLevelField(BlzGetUnitAbility(u, FourCC('A001')), ABILITY_SLF_BASE_ORDER_ID_NCL6,0)
Из всего списка ABILITY_SLF_ только 3 поля самые похожие:
  • ABILITY_SLF_BASE_ORDER_ID_NCL6
  • ABILITY_SLF_BASE_ORDER_ID_SPB5
  • ABILITY_SLF_BASE_ORDER_ID_ANS5
Но все они обильно молчат в тряпочку, но я же вижу что во всех полях Order хранится в поле aord
Я пробую через конверт, хотя понимаю что это сразу пропал но всё же
BlzGetAbilityStringLevelField(BlzGetUnitAbility(u, FourCC('A001')), ConvertAbilityStringLevelField(FourCC('aord')),0)
И соответственно там пусто, но вспоминаем, приказ же это число как никак, верно же?
Но к сожалению там тоже всё пусто и я понимаю что это провал, и что же получается? что функции GetField так же не работают
и можно просто идти пить чай и не париться, или же я что-то не так сделал?

  1. BlzGetAbilityStringLevelField сейчас с 1 или с 0 нумерацию ведет?
  2. Field вместо LevelField и конверт соответствующий
  3. С большой вероятностью можно идти спать.

PT153, и как, работает?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
Если нужно именно узнать ордер, то создаёте триггер на отлов приказов (UNIT_ISSUED_ORDER, ISSUED_POINT_ORDER, ISSUED_TARGET_ORDER), а в действии триггера добавляем вывод на экран print( GetIssuedOrderId( ) ). B в игре кастуем эту способность.
26
Ему нужно получить приказ способности, не кастуя её, насколько понял.
33
8gabriel8, верно, у меня есть равкод способности и я хочу даммику отдать приказ на каст способности но не вручную прописывать OrderID, а вытащить его из самой способности
32
Та информация насколько помню лишь для галочки и ненадежна, ибо хранится в тхт файлах, а не слк (после оптимизации), следовательно там может удалить её оптимизатор либо автор карты может написать свой ид приказа в это поле, оно ни на что не влияет., в отличии от полей эффектов его низя порочитать или изменить во время игры. На мемхаке был код который искал базу от абилки после смотреть её основу и выводил приказ, если таковой есть.
Хз зачем это нужно, кроме дебагов.
33
Хз зачем это нужно, кроме дебагов.
А как ты делаешь сейчас даммиксаст? вручную вызываешь IssueImmediateOrder(u,"stomp") или цифровой код вместо "stomp", а я хочу просто передавать равкод абилки в функцию без приказа, и игра сама поймёт что ей выполнить, но ладно, будем по старинке, это не сильно меня парит, просто хотелось новый функционал опробовать, эх...
prog:
С большой вероятностью можно идти спать.
а вот и верный ответ =)
24
Даммикаст я всегда делал через базу - хранил тем или иным способом в коде соответствие айдишника способности и приказа. В луа с этим еще проще.
33
prog, ну не хочется базу создавать, когда "вроде бы" можно всё автоматизировать, но не судьба
24
Bergi_Bear, я планирую когда-нибудь запилить тулзу которая будет автоматически генерировать базу на основе данных. Я такую уже делал, но она была кривая и работала на базе JNGP, новая будет встраиваться во внешний сборщик карты и ориентирована на получение данных недоступных новым нативкам.
33
хммм, но каким образом ты собираешься вытягивать недоступные данные?
24
Bergi_Bear, так же как уже делал - при сборке карты парсятся файлы с данными и инжектятся в код. Ну и добавить то что я поленился делать в прошлый раз - база данных со стандартными значениями полей.
32
Bergi_Bear, ну пиши приказ в какой нить тип эффекта, который нигде у тебя не юзается и проверяй на него, там должно все работать.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.