XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Приказ на каст магии
call IssueTargetOrderBJ( u, "rejuvination", GetTriggerUnit() )
Как можно узнать строку приказа для определённой абилки?
В данном случае у меня строка приказа "rejuvination", но она не подходит т.к. мне нужно создать дамми инита, дать ему абилку регена хп/маны которую можно сбить атакой (в абилке "омоложение" как у друида-медведя вроде бы нет такого параметра отвечающего за отмену восстановления если юнит был атакован)
Старый 23.02.2008, 15:19
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Как можно узнать строку приказа для определённой абилки?

Создай Триггер:

Юнит получил приказ:

Вывести на экран: GetIssuedOrderId()
И в этом случае пользуйся Id приказчиком IssueTargetOrderById()

Но если для тебя строковый приказчик удобнее IssueTargetOrderBJ()
То переводи Id в строку - OrderId2String

Jon добавил:
это универсальный способ.
Можно также вручную, создаеш на тригерах каст этого спела (если кастомного спела, то спела на основе которого сделан этот спел) и переводиш в текст
Старый 23.02.2008, 15:52
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Код:
function Trig_id2S_Actions takes nothing returns nothing
     local string str = OrderId2String( GetIssuedOrderId() )
     call DisplayTextToForce( GetPlayersAll(), str )
endfunction

//===========================================================================
function InitTrig_id2S takes nothing returns nothing
    set gg_trg_id2S = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_id2S, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
    call TriggerAddAction( gg_trg_id2S, function Trig_asfasdfasda_Actions )
endfunction


Вышло вот что, но тригер не хочет отлавливать приказы о касте спела.
Старый 23.02.2008, 16:05
J
expert
offline
Опыт: 48,447
Активность:
есть 3 вида способов каста - каст на цель, каст на точку, каст без цели, щас ты делаеш только каст на цель, потому тригер обрабатывает все приказы и касты на цель, а ты должнобыть юзаеш какойнибудь другой...
Код:
function Trig_id2S_Actions takes nothing returns nothing
     local string str = OrderId2String( GetIssuedOrderId() )
     call DisplayTextToForce( GetPlayersAll(), str )
endfunction

//===========================================================================
function InitTrig_id2S takes nothing returns nothing
    set gg_trg_id2S = CreateTrigger( )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_id2S, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
    call TriggerRegisterAnyUnitEventBJ(gg_trg_id2S, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_id2S, EVENT_PLAYER_UNIT_ISSUED_ORDER       )
    call TriggerAddAction( gg_trg_id2S, function Trig_id2S_Actions )
endfunction

Отредактировано Jon, 12.04.2008 в 22:10.
Старый 23.02.2008, 16:15
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Недавно делал для себя маленькую такую карту для отлова и проверки приказов. Может пригодится.
Прикрепленные файлы
Тип файла: w3x OrderCheck.w3x (12.7 Кбайт, 18 просмотров )
Старый 23.02.2008, 16:31
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
call IssueTargetOrderBJ( u, "rejuvination", GetTriggerUnit() ) вот что я использую в качестве приказа для дамми юнита, но так как приказ не верный ничего не происходит (спелл основан на способности "Лечебный элексир", а именно строку приказа для этого спелла мне и нужно узнать).
Код:
function Trig_id2S_Actions takes nothing returns nothing
     local string str = OrderId2String( GetIssuedOrderId() )
     call DisplayTextToForce( GetPlayersAll(), str )
endfunction

//===========================================================================
function InitTrig_id2S takes nothing returns nothing
    set gg_trg_id2S = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_id2S, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
    call TriggerRegisterAnyUnitEventBJ(gg_trg_id2S, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_id2S, EVENT_PLAYER_UNIT_ISSUED_ORDER       )
    call TriggerAddAction( gg_trg_id2S, function Trig_id2S_Actions )
endfunction

Даже в том случае когда кастую спелл вручную мой тригер его не отлавливает - горе...
Старый 23.02.2008, 16:35
J
expert
offline
Опыт: 48,447
Активность:
Alex27 возможно ты чтото левое зделал этому спелу в РО, например удалил "порядок строк"
Старый 23.02.2008, 16:41
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Цитата:
Сообщение от DFlyer
Недавно делал для себя маленькую такую карту для отлова и проверки приказов. Может пригодится.

Запустил карту - купил зелье восстановления маны - использовал и что я увидел....
А то, что приказ на использование зелья был обозначен как (null) т.е. выходит что приказы, которых нет в стандартном списке приказов на цель(таких как Unit - Issue order targeting a unit - Order Xunit to Human Priest - Heal Yunit), нельзя отловить.

Alex27 добавил:
Цитата:
Сообщение от Jon
Alex27 возможно ты чтото левое зделал этому спелу в РО, например удалил "порядок строк"

Дело в том, что у способности "Лечебный элексир" по умолчанию в порядке строк стоит значение "Нет" - может это играет свою роль?
Старый 23.02.2008, 16:50
J
expert
offline
Опыт: 48,447
Активность:
таким способом улавливается любой спел...
у тебя нестандартный спел? на основе какого ты его зделал?
Старый 23.02.2008, 16:50
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Да, спел нестандартный, как я и говорил сделан он на основе абилки для предмета "Лечебный элексир" - тот который у орды в "Лавке знахаря" продаётся (3 использования и можно сбить атакой)
Старый 23.02.2008, 16:56
Критик
Нету времени(
offline
Опыт: 3,375
Активность:
Извеняюсь что пишу не по теме! Но к названию оно подходит! Допустим я создал нестандартного героя там "Паладин 2"! И магия у него нестандартная там "Благодать2". Как мне через гуи приказать ему ее использовать допустим в кинематике!!!???
Старый 23.02.2008, 21:31
adic3x

offline
Опыт: 108,439
Активность:
Критик, точно так же как и обычную благодать
Старый 24.02.2008, 12:02
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 15:45.