GetIssuedOrderId
- comment
Returns the numeric order ID constant of the currently issued unit order.
- note
See:
OrderId,OrderId2String,GetOrderedUnit,GetOrderPointX,GetOrderTargetUnit.- note
See the list of all known order IDs https://www.hiveworkshop.com/threads/list-of-order-ids.350361/.
- note
Example (Lua):
The code below creates a unit and registers all issued order events for debugging.
function printOrderInfo() local orderId = GetIssuedOrderId() local unit = GetTriggerUnit() local unitName = GetUnitName(unit) assert(GetOrderedUnit() == GetTriggerUnit(), "GetOrderedUnit() expected to equal GetTriggerUnit()") print(string.format("-> For: \x25s, Order: \x25d, oName:\x25s, owned by: \x25s", unitName, orderId, OrderId2String(orderId), GetPlayerName(GetOwningPlayer(unit)))) end function printIssuedOrder() print("Next is an Issued Order:") printOrderInfo() end function printIssuedTargetOrder() local widget = GetOrderTarget() local destr = GetOrderTargetDestructable() local item = GetOrderTargetItem() local unit = GetOrderTargetUnit() local targetIsText = "-> Target is a '" if widget then targetIsText = targetIsText .. "widget," end if destr then targetIsText = targetIsText .. "destructable=" .. GetDestructableName(destr) end if item then targetIsText = targetIsText .. "item=" .. GetItemName(item) end if unit then targetIsText = targetIsText .. "unit=" .. GetUnitName(unit) end targetIsText = targetIsText .."'" if unit then targetIsText = targetIsText .." owned by: ".. GetPlayerName(GetOwningPlayer(unit)) end print("Next is an Issued Target Order:") printOrderInfo() print(targetIsText) end function printIssuedPointOrder() local loc = GetOrderPointLoc() local x,y,z = GetLocationX(loc),GetLocationY(loc),GetLocationZ(loc) -- GetOrderPointX(),GetOrderPointY() is identical to location... -- if you only wanted (x,y) print(string.format("Next is an Issued Point Order at: \x25.1f \x25.1f \x25.1f", x,y,z)) printOrderInfo() end -- Note: in Lua root you cannot create units before the game starts (Map Initialization). -- You may use a timer to delay. footman = CreateUnit(Player(0), FourCC("hfoo"), -30, 0, 90) peasant = CreateUnit(Player(0), FourCC("hpea"), 30, 0, 90) item = CreateItem(FourCC("war2"), 64, 128) destructable = CreateDestructable(FourCC("LTbr"), 96, 0, 180, 1, 0) whichIssuedOrderTrig = CreateTrigger() whichIssuedTargetOrderTrig = CreateTrigger() whichIssuedPointOrderTrig = CreateTrigger() -- Only register one unit for order events: --[==[ -- disabled via multiline comment whichOrderTrigEvent = TriggerRegisterUnitEvent(whichIssuedOrderTrig, footman, EVENT_UNIT_ISSUED_ORDER) whichIssuedTargetOrderTrigEvent = TriggerRegisterUnitEvent(whichIssuedTargetOrderTrig, footman, EVENT_UNIT_ISSUED_TARGET_ORDER) whichIssuedPointOrderTrigEvent = TriggerRegisterUnitEvent(whichIssuedPointOrderTrig, footman, EVENT_UNIT_ISSUED_POINT_ORDER) ]==] -- Register as many players for order events as you want whichOrderTrigEvents = {} whichIssuedTargetOrderTrigEvents = {} whichIssuedPointOrderTrigEvents = {} for _, playerPair in ipairs({ {0, "red"}, {1, "blue"}, {3, "purple"} }) do local id, colorName = table.unpack(playerPair) local orderEv = TriggerRegisterPlayerUnitEvent(whichIssuedOrderTrig, Player(id), EVENT_PLAYER_UNIT_ISSUED_ORDER, nil) local targetOrderEv = TriggerRegisterPlayerUnitEvent(whichIssuedTargetOrderTrig, Player(id), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, nil) local pointOrderEv = TriggerRegisterPlayerUnitEvent(whichIssuedPointOrderTrig, Player(id), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, nil) table.insert(whichOrderTrigEvents, {id, colorName, orderEv}) table.insert(whichIssuedTargetOrderTrigEvents, {id, colorName, targetOrderEv}) table.insert(whichIssuedPointOrderTrigEvents, {id, colorName, pointOrderEv}) end whichIssuedOrderTrigAct = TriggerAddAction(whichIssuedOrderTrig, printIssuedOrder) whichIssuedTargetOrderTrigAct = TriggerAddAction(whichIssuedTargetOrderTrig, printIssuedTargetOrder) whichIssuedPointOrderTrigAct = TriggerAddAction(whichIssuedPointOrderTrig, printIssuedPointOrder)- event
EVENT_PLAYER_UNIT_ISSUED_ORDER- event
EVENT_PLAYER_UNIT_ISSUED_UNIT_ORDER- event
EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER- event
EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER- event
EVENT_UNIT_ISSUED_ORDER- event
EVENT_UNIT_ISSUED_POINT_ORDER- event
EVENT_UNIT_ISSUED_TARGET_ORDER- patch
1.00
- Source
- common.j (suggest an edit or discuss on Github)
- return type
integer- Source code
constant native GetIssuedOrderId takes nothing returns integer