нашёл на сайте отлов приказа, однако карту пересохранить не получается
scope Order
globals
private constant string Sep = " "
endglobals
function Trig_Order_Actions takes nothing returns nothing
local string s = GetUnitName(GetTriggerUnit()) + Sep
local string order = OrderId2String(GetIssuedOrderId())
local string target = ""
if order != null and order != "" then
set s = s + order + " -- " + I2S(GetIssuedOrderId())
else
set s = s + I2S(GetIssuedOrderId())
endif
if GetTriggerEventId() == EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER then
if GetOrderTargetDestructable() != null then
set target = "target destructable -- " + GetDestructableName(GetOrderTargetDestructable())
elseif GetOrderTargetItem() != null then
set target = "target item -- " + GetItemName(GetOrderTargetItem())
else
set target = "target unit -- " + GetUnitName(GetOrderTargetUnit())
endif
elseif GetTriggerEventId() == EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER then
set target = "target point -- (" + R2SX(GetOrderPointX()) + ", " + R2SX(GetOrderPointY()) + ")"
endif
if target != "" then
set s = s + Sep + target
endif
call Message(10., s)
endfunction
//===========================================================================
function InitTrig_Order takes nothing returns nothing
set gg_trg_Order = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_ORDER )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
call TriggerAddAction( gg_trg_Order, function Trig_Order_Actions )
endfunction
endscope
что хочу узнать - есть ли способ по id приказа добавить способность другому юниту и отдать приказ на применение?
если кто сможет сделать карту пример, на обычный редактор 26а, буду очень признателен
если кто сможет сделать карту пример, на обычный редактор 26а, буду очень признателен
Принятый ответ
function Trig_Order_Actions takes nothing returns nothing
local string s = GetUnitName(GetTriggerUnit()) + udg_Sep
local string order = OrderId2String(GetIssuedOrderId())
local string target = ""
if order != null and order != "" then
set s = s + order + " -- " + I2S(GetIssuedOrderId())
else
set s = s + I2S(GetIssuedOrderId())
endif
if GetTriggerEventId() == EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER then
if GetOrderTargetDestructable() != null then
set target = "target destructable -- " + GetDestructableName(GetOrderTargetDestructable())
elseif GetOrderTargetItem() != null then
set target = "target item -- " + GetItemName(GetOrderTargetItem())
else
set target = "target unit -- " + GetUnitName(GetOrderTargetUnit())
endif
elseif GetTriggerEventId() == EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER then
//set target = "target point -- (" + R2SX(GetOrderPointX()) + ", " + R2SX(GetOrderPointY()) + ")"
endif
if target != "" then
set s = s + udg_Sep + target
endif
//call Message(10., s)
endfunction
//===========================================================================
function InitTrig_Order takes nothing returns nothing
set gg_trg_Order = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_ORDER )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
call TriggerAddAction( gg_trg_Order, function Trig_Order_Actions )
endfunction
теперь будет сохраняться
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован ssbbssc
Ну и чтобы мне с синтаксисом custom script подсказали, правильно ли я пишу
отлов типа абилки не важен - я просто буду спамить всеми видами каста поочередно (то есть на юнита, на область и без цели) - нужный сработает, другие нет
насчёт сути бд делай, абилок и их приказов
бд можно сделать, но если есть возможность выдавать и кастовать по OrderId - зачем городить лишнее?
очень злит, что функции ById тупо отказываются работать
есть вариант использовать нативку через кастом скрипт? native OrderId2String takes integer orderId returns string
чтобы перегнать Integer ID в order string