Мне нужно получить значение поля 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, и как, работает?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
BlzGetAbilityStringLevelField
Но ведь поле приказа не является полем уровня.
Тебе нужна эта функция.
native BlzGetAbilityStringField takes ability whichAbility, abilitystringfield whichField returns string
Ну и вызывать так.
local string order = BlzGetAbilityStringField(abil, ConvertAbilityStringField('aord'))
24
  1. BlzGetAbilityStringLevelField сейчас с 1 или с 0 нумерацию ведет?
  2. Field вместо LevelField и конверт соответствующий
  3. С большой вероятностью можно идти спать.

PT153, и как, работает?
Принятый ответ
28
prog, а я не проверял, но Bergi_Bear использовал неверную функцию, потому и не работает. А тут есть шанс.
BlzGetAbilityStringLevelField сейчас с 1 или с 0 нумерацию ведет?
Вроде с 1.
33
нумерации все с нуля выставил радиус действия способности через
BlzSetAbilityRealLevelField(BlzGetUnitAbility(ud, id), ABILITY_RLF_AREA_OF_EFFECT, 0, 500)
или хотите сказать что set с 0 а Get с 1 ?
PT153, проверил вообще на неё поток обрывается если так написать =( и у простого филда не уровневого всего 5 полей
написал так
Print(BlzGetAbilityStringField(BlzGetUnitAbility(ud, id), ConvertAbilityStringField(FourCC('aord'))).." Что у нас тут?")
Загруженные файлы
28
или хотите сказать что set с 0 а Get с 1 ?
А чёрт там пойми.
Bergi_Bear:
проверил вообще на неё поток обрывается если так написать
У меня не обрывается, но всё равно ничего не работает.
Загруженные файлы
21
Если нужно именно узнать ордер, то создаёте триггер на отлов приказов (UNIT_ISSUED_ORDER, ISSUED_POINT_ORDER, ISSUED_TARGET_ORDER), а в действии триггера добавляем вывод на экран print( GetIssuedOrderId( ) ). B в игре кастуем эту способность.
26
Ему нужно получить приказ способности, не кастуя её, насколько понял.
33
8gabriel8, верно, у меня есть равкод способности и я хочу даммику отдать приказ на каст способности но не вручную прописывать OrderID, а вытащить его из самой способности
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.