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