Change Time of Day OrderID

Bogrim

y hello thar
Reaction score
154
I'm trying to make a dummy unit cast a unit ability based on the "Change Time Of Day" ability. As with most item abilities, there is no order string and giving the ability an order string still does not permit me to order a unit through triggers to use the ability.

I read that you can issue any order by its OrderID:
Trigger:
  • Custom Script: call IssueImmediateOrderById(my_unit, <number here>)

However, I don't know how to find out which OrderID the ability has. Some help please?
 

Narks

Vastly intelligent whale-like being from the stars
Reaction score
90
JASS:
scope LosingTheGame initializer Init

private function Action takes nothing returns nothing
    call BJDebugMsg("OrderID: " + I2S(GetIssuedOrderId))
endfunction

private function Init takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_UNIT_ISSUED_ORDER)
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_UNIT_ISSUED_POINT_ORDER)
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_UNIT_ISSUED_TARGET_ORDER)
    call TriggerAddAction(t, function Action)
endfunction

endscope


Use this to figure out the OrderID.
 

Narks

Vastly intelligent whale-like being from the stars
Reaction score
90
Oops, try this:

JASS:

scope LosingTheGame initializer Init

private function Action takes nothing returns nothing
    call BJDebugMsg("OrderID: " + I2S(GetIssuedOrderId()))
endfunction

private function Init takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER)
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
    call TriggerAddAction(t, function Action)
endfunction

endscope


Basically, it will just display on the screen the numerical orderID of any order you issue to units.
 

Bogrim

y hello thar
Reaction score
154
I still don't know how to import the trigger. Anything I try yields errors, even crashing the game.

imports.jpg


What do I need to make your trigger run?
 

Bogrim

y hello thar
Reaction score
154
That's the editor I'm using for the trigger, yes. The error I get is "The trigger '(Trigger Name)' must have an initialization function called InitTrig_(Trigger Name)'".

I've tried adding
JASS:
//===========================================================================
function InitTrig_Untitled_Trigger_001 takes nothing returns nothing
    set gg_trg_Untitled_Trigger_001 = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Untitled_Trigger_001, function Trig_Untitled_Trigger_001_Actions )
endfunction

To the bottom of the trigger and the editor would then permit me to enable the trigger, but the game still crashes whenever I try and run the map.

This is unknown territory for me, so I have no idea what I'm supposed to be doing to make this work.
 

roaaaarrrr

New Member
Reaction score
33
Well that shouldn't cause errors. It could give a warning when you click it, but you can run a trigger without that bottom part. What I usually use to check for order id's is this.

JASS:
scope Test initializer Init
private function Actions takes nothing returns nothing
    local string s = GetEventPlayerChatString()
    local string order = SubString(s,StringLength(GetEventPlayerChatStringMatched()),StringLength(s))
    
    call BJDebugMsg("\n########################\n#"+order+"'s orderid: "+I2S(OrderId(order)))
endfunction

private function Init takes nothing returns nothing
    local trigger trig = CreateTrigger()
    
    call TriggerRegisterPlayerChatEvent(trig,Player(0),"orderid ",false)
    call TriggerAddAction(trig,function Actions)
endfunction
endscope


Then when you type the order string, it will output the id.

However the issue is I cant find any order string for this either. It's not a default GUI order (that I can find), and I also tried using this trigger...

Trigger:
  • Untitled Trigger 003
    • Events
      • Unit - A unit Is issued an order with no target
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order targeting an object
    • Conditions
    • Actions
      • Game - Display to (All players) the text: (String((Issued order)))


I gave a moonstone to the unit and also made an ability to the unit that changed the time of day, but neither outputted any order string...

So without even knowing the order string, its gonna be tough to get the id.
 

jig7c

Stop reading me...-statement
Reaction score
123
you need to update your jasshelper files... its on hive workshop, it'll stop those errors from popping-up
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top