• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

IssueTargetOrderByID

Status
Not open for further replies.
Level 4
Joined
Feb 2, 2023
Messages
28
Hello, trying to create an ability that allows buffs casted on spirit linked units to duplicate the spell for other linked units, i know the following isn't perfect, i still have assign custom values to track which are linked and a couple other things, I just never use IssueTargetOrderByID and was testing the concept. I digress, everything seems to be working, the units and spells are all saved I believe the issue lies in the Jass order. Any insight is appreciated.
Also a method of tracking which units are linked with each cast other then custom unit values would be neat, as it will interfere with other spells in the campaign.
  • Spirit Link
    • Events
      • Unit - A unit owned by Player 1 (Red) Starts the effect of an ability
    • Conditions
      • ((Target unit of ability being cast) belongs to an enemy of Player 1 (Red).) Equal to False
    • Actions
      • Set VariableSet Ability = (Ability being cast)
      • Game - Display to (All players) the text: (Tooltip of Ability for level 1)
      • Set VariableSet SpellLevel[71] = (Level of Ability for (Casting unit))
      • Game - Display to (All players) the text: (String(SpellLevel[71]))
      • Set VariableSet SpellPoint[71] = (Position of (Target unit of ability being cast))
      • Unit - Create 1 Dummy Caster for Player 1 (Red) at SpellPoint[71] facing Default building facing degrees
      • Set VariableSet SpellDummy[71] = (Last created unit)
      • Unit - Add Ability to (Last created unit)
      • Set VariableSet SpellCastTrack[71] = (Mana cost of Ability, Level 1.)
      • Set VariableSet SpellReal[71] = (Ability: (Unit: (Last created unit)'s Ability with Ability Code: Ability)'s Real Level Field Cooldown ('acdn'), of Level: 1)
      • Unit - Set level of Ability for (Last created unit) to SpellLevel[71]
      • Unit - For Unit SpellDummy[71], Set mana cost of ability Ability, Level: 1 to 0
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Ability)'s Real Level Field: Cooldown ('acdn') of Level: 1 to 0.00
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 1000.00 of SpellPoint[71].) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Spirit Link) Equal to True
            • Then - Actions
              • Game - Display to (All players) the text: duplicating
              • Set VariableSet SpellTarget[71] = (Picked unit)
              • Game - Display to (All players) the text: (Parse ((String((Unit-type of SpellDummy[71]))) + ((Tooltip of Ability for level 1) + (String((Unit-type of SpellTarget[71]))))))
              • Custom script: call IssueTargetOrderById(udg_SpellDummy[71], udg_Ability, udg_SpellTarget[71])
            • Else - Actions
      • Game - Display to (All players) the text: after units
      • Unit - For Unit SpellDummy[71], Set mana cost of ability Ability, Level: 1 to SpellCastTrack[71]
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Ability)'s Real Level Field: Cooldown ('acdn') of Level: 1 to SpellReal[71]
      • Unit - Add a 0.50 second Generic expiration timer to SpellDummy[71]
      • Custom script: call RemoveLocation(udg_SpellPoint[71])
 
Level 24
Joined
Jun 26, 2020
Messages
1,928
Because you are using the ability id and not the order id, the ability id is the id of the ability-type that is created in the object editor, the order you can find it in the object editor:
attachment.php

if you wanna just use the name then use the same function without ById:
  • Custom script: call IssueTargetOrder(udg_SpellDummy[71], "order", udg_SpellTarget[71])
If you wanna use the order id, you should know what it is: JASS/script.j at master · nestharus/JASS
 
Level 4
Joined
Feb 2, 2023
Messages
28
So I changed to ID, using the following trigger, but the AbilityID resets on either the destroygroup or pick every unit... prior to that I can parse the integer and it returns the correct code, but after those commands the ability ID is set to 0. Can you shed some insight on this?

  • Spirit Link
    • Events
      • Unit - A unit owned by Player 1 (Red) Starts the effect of an ability
    • Conditions
      • ((Target unit of ability being cast) belongs to an enemy of Player 1 (Red).) Equal to False
      • SpellDoOnce[71] Equal to 0
    • Actions
      • Custom script: local integer udg_AbilityID = GetSpellAbilityId()
      • Set VariableSet SpellDoOnce[71] = 1
      • Set VariableSet Ability = (Ability being cast)
      • Unit - Create 1 Dummy Caster for Player 2 (Blue) at SpellPoint[71] facing Default building facing degrees
      • Set VariableSet SpellDummy[71] = (Last created unit)
      • Custom script: call UnitAddAbility(udg_SpellDummy[71] ,udg_AbilityID)
      • Set VariableSet SpellCastTrack[71] = (Mana cost of Ability, Level 1.)
      • Set VariableSet SpellReal[71] = (Ability: (Unit: (Last created unit)'s Ability with Ability Code: Ability)'s Real Level Field Cooldown ('acdn'), of Level: 1)
      • Unit - Set level of Ability for (Last created unit) to SpellLevel[71]
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Ability)'s Integer Level Field: Mana Cost ('amcs') of Level: SpellLevel[71] to 0
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Ability)'s Real Level Field: Cooldown ('acdn') of Level: 0 to 0.00
  • ------------- Parsing AbilityID here returns the correct integer-----------------
    • Custom script: set bj_wantDestroyGroup = true
    • Unit Group - Pick every unit in (Units within 1000.00 of SpellPoint[71].) and do (Actions)
      • Loop - Actions
  • ------------- Parsing AbilityID here returns 0-----------------
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • ((Picked unit) has buff Spirit Link) Equal to True
      • Then - Actions
        • Set VariableSet SpellTarget[71] = (Picked unit)
        • Custom script: call IssueTargetOrderById(udg_SpellDummy[71], udg_AbilityID, udg_SpellTarget[71])
      • Else - Actions
    • Unit - Add a 0.50 second Generic expiration timer to SpellDummy[71]
    • Set VariableSet SpellDoOnce[71] = 0
    • Custom script: call RemoveLocation(udg_SpellPoint[71])
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
AbilityID doesn't need to be a local variable nor should you be setting it twice. Just set it once before you loop over the Unit Group and reference it like you're doing in your IssueTargetOrderById() function.

This line makes no sense to me:
  • Custom script: local integer udg_AbilityID = GetSpellAbilityId(udg_ability())
Also, these are using Level 1 which is actually Level 2, perhaps you meant 0?
  • Set VariableSet SpellCastTrack[71] = (Mana cost of Ability, Level 1.)
  • Set VariableSet SpellReal[71] = (Ability: (Unit: (Last created unit)'s Ability with Ability Code: Ability)'s Real Level Field Cooldown ('acdn'), of Level: 1)
You could also switch (Last created unit) to SpellDummy[71].
 
Last edited:
Level 4
Joined
Feb 2, 2023
Messages
28
oops that was not supposed to be there, the editor wont even compile that line, i was trying to see if i could get the id after those commands since it being reset to 1, and the other variables are insignificant and don't really have anything to do with my issue, the lines are disabled in the editor atm anyways. edited the trigger to ease your eyes tho.
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
oops that was not supposed to be there, i was trying to see if i could get the id after those commands since it being reset to 1, and the other variables are insignificant and don't really have anything to do with my issue, the lines are disabled in the editor atm anyways. edited the trigger to ease your eyes tho.
Try this:
  • Spirit Link
    • Events
      • Unit - A unit owned by Player 1 (Red) Starts the effect of an ability
    • Conditions
      • ((Target unit of ability being cast) belongs to an enemy of Player 1 (Red).) Equal to False
      • SpellDoOnce[71] Equal to 0
    • Actions
      • Set VariableSet SpellDoOnce[71] = 1
      • Custom script: set udg_AbilityID = GetSpellAbilityId()
      • Set VariableSet Spell = (Ability being cast)
      • Set VariableSet SpellLevel = (Level of Spell - 1)
      • Set VariableSet SpellPoint[71] = (Position of (Target unit of ability being cast))
      • Unit - Create 1 Dummy Caster for Player 1 (Red) at SpellPoint[71] facing Default building facing degrees
      • Set VariableSet SpellDummy[71] = (Last created unit)
      • Unit - Add a 0.50 second Generic expiration timer to SpellDummy[71]
      • Custom script: call UnitAddAbility(udg_SpellDummy[71], udg_AbilityID)
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Spell)'s Integer Level Field: Mana Cost ('amcs') of Level: SpellLevel to 0
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Spell)'s Real Level Field: Cooldown ('acdn') of Level: SpellLevel to 0.00
      • Unit - Set level of Spell for SpellDummy[71] to (SpellLevel + 1)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 1000.00 of SpellPoint[71].) and do (Actions)
        • Loop - Actions
          • Set VariableSet SpellTarget[71] = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (SpellTarget[71] has buff Spirit Link) Equal to True
            • Then - Actions
              • Custom script: call IssueTargetOrderById(udg_SpellDummy[71], udg_AbilityID, udg_SpellTarget[71])
            • Else - Actions
      • Custom script: call RemoveLocation(udg_SpellPoint[71])
      • Set VariableSet SpellDoOnce[71] = 0
Your Dummy unit should be based on the Locust with the following necessary changes:
Movement Type = None, Speed Base = 0, Attacks Enabled = None.
 
Last edited:
Level 4
Joined
Feb 2, 2023
Messages
28
Im at work rn so will test that later, I'm pretty sure that
  • Custom script: set udg_AbilityID = GetSpellAbilityId()
being on any line other then the first returns a compile error, could be I was using it wrong tho.


edit: tested your trigger and has the same issue as mine, the value of abilityid changes to 0 for no reason, at the same spot.

  • Spirit Link
    • Events
      • Unit - A unit owned by Player 1 (Red) Starts the effect of an ability
    • Conditions
      • ((Target unit of ability being cast) belongs to an enemy of Player 1 (Red).) Equal to False
      • SpellDoOnce[71] Equal to 0
    • Actions
      • Custom script: local integer udg_AbilityID = GetSpellAbilityId()
      • Set VariableSet SpellDoOnce[71] = 1
      • Set VariableSet Ability = (Ability being cast)
      • Set VariableSet SpellLevel[71] = ((Level of Ability for (Casting unit)) - 1)
      • Set VariableSet SpellPoint[71] = (Position of (Target unit of ability being cast))
      • Unit - Create 1 Dummy Caster for Player 1 (Red) at SpellPoint[71] facing Default building facing degrees
      • Set VariableSet SpellDummy[71] = (Last created unit)
      • Unit - Add a 0.50 second Generic expiration timer to SpellDummy[71]
      • Custom script: call UnitAddAbility(udg_SpellDummy[71] , udg_AbilityID)
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Ability)'s Integer Level Field: Mana Cost ('amcs') of Level: SpellLevel[71] to 0
      • Ability - Set Ability: (Unit: SpellDummy[71]'s Ability with Ability Code: Ability)'s Real Level Field: Cooldown ('acdn') of Level: SpellLevel[71] to 0.00
      • Unit - Set level of Ability for SpellDummy[71] to SpellLevel[71]
      • Game - Display to (All players) the text: (Parse (String(AbilityID)))<--------returns integer of ability
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 1000.00 of SpellPoint[71].) and do (Actions)
        • Loop - Actions
          • Set VariableSet SpellTarget[71] = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Spirit Link) Equal to True
            • Then - Actions
              • Game - Display to (All players) the text: (Parse (String(AbilityID)))<--------returns integer of 0
              • Custom script: call IssueTargetOrderById(udg_SpellDummy[71], udg_AbilityID, udg_SpellTarget[71])
            • Else - Actions
      • Custom script: call RemoveLocation(udg_SpellPoint[71])
      • Set VariableSet SpellDoOnce[71] = 0
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
Again, you're making udg_AbilityID a local variable.

The issue is that a local variable will not be accessible from a new function, which is what we're starting here:
  • Unit Group - Pick every unit in (Units within 1000.00 of SpellPoint[71].) and do (Actions)
^ AbilityID does not exist here.

The solution is to stop using a local variable for AbilityID.
  • Custom script: set udg_AbilityID = GetSpellAbilityId()
Here we are setting the global variable (udg = user declared global) called AbilityID to be equal to the ability id associated with the ability we just cast.

We are not declaring a new local variable or doing anything local variable related, so you don't need to worry about the first line stuff or any issues about data getting lost. Just make sure you have an Integer variable called AbilityID or it won't work.
 
Last edited:
Level 4
Joined
Feb 2, 2023
Messages
28
Again, you're making udg_AbilityID a local variable.

The issue is that a local variable will not be accessible from a new function, which is what we're starting here:
  • Unit Group - Pick every unit in (Units within 1000.00 of SpellPoint[71].) and do (Actions)
^ AbilityID does not exist here.

The solution is to stop using a local variable for AbilityID.
  • Custom script: set udg_AbilityID = GetSpellAbilityId()
Here we are setting the global variable (udg = user declared global) called AbilityID to be equal to the ability id associated with the ability we just cast.

We are not declaring a new local variable or doing anything local variable related, so you don't need to worry about the first line stuff or any issues about data getting lost. Just make sure you have an Integer variable called AbilityID or it won't work.
Awesome, it's parsing now, still not actually casting the ability, but I can play around with it now. Thank you :D

Did someone read my reply where I pointed that he is using the ability id as order? here:
  • Custom script: call IssueTargetOrderById(udg_SpellDummy[71], udg_AbilityID, udg_SpellTarget[71])
I'm by no means an expert, but it seems like IssueTargetOrderByID would accept the ID, as it only accepts integers, and IssueTargetOrder would take an order string? Again, I'm not an expert so I appreciate my mistakes being pointed out.
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
Did someone read my reply where I pointed that he is using the ability id as order? here:
  • Custom script: call IssueTargetOrderById(udg_SpellDummy[71], udg_AbilityID, udg_SpellTarget[71])
Right, forgot about this.

So he needs something like a Hashtable that takes the Rawcode (GetSpellAbilityId) and returns the order String associated with it. I imagine someone has made this before on Hive, let me look for it.

Edit: Surprisingly can't find anything like this... Is there an easier way I'm forgetting?
 
Last edited:
Level 24
Joined
Jun 26, 2020
Messages
1,928
Awesome, it's parsing now, still not actually casting the ability, but I can play around with it now. Thank you :D


I'm by no means an expert, but it seems like IssueTargetOrderByID would accept the ID, as it only accepts integers, and IssueTargetOrder would take an order string? Again, I'm not an expert so I appreciate my mistakes being pointed out.
I explained it in my first post: IssueTargetOrderByID
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
Awesome, it's parsing now, still not actually casting the ability, but I can play around with it now. Thank you :D


I'm by no means an expert, but it seems like IssueTargetOrderByID would accept the ID, as it only accepts integers, and IssueTargetOrder would take an order string? Again, I'm not an expert so I appreciate my mistakes being pointed out.
Unfortunately, you're dealing with two different IDs (ability id and order id) and the IssueTargetOrderById() function is expecting an Order Id.
(old devs were sort of sloppy on this matter).

But I came up with a little system that should make this process a bit easier for you. I attached the map below.

It contains a Hashtable that is setup to pair each Ability Id to it's respective Order Id.

It also provides a function that you can easily call in your triggers to get the Order Id from the given Ability Id, like so:
  • Custom script: set udg_AbilityID = GetSpellAbilityId()
  • Custom script: call IssueTargetOrderById(udg_Caster, ATO_GetOrder(udg_AbilityID), udg_Target)
I only added Bloodlust as an example, so you'll need to add the rest of the desired abilities to the code yourself. Just follow my example:
vJASS:
    private function ATO_Init takes nothing returns nothing

        // I've added Bloodlust as an example:

        call ATO_Add('Ablo', 852101)

    endfunction
So you'll copy and paste the call ATO_Add('Ablo', 852101) line and then type in the Rawcode of the ability you want to add followed by it's Order Id.
Repeat this process until you've added all of the abilities that you wish to use.

Here's the full code in case you can't open the map:
vJASS:
library AbilityIdToOrderId initializer ATO_Init

    globals
        hashtable ATO_Hash = InitHashtable()
    endglobals

    function ATO_GetOrder takes integer abilityId returns integer
        return LoadInteger(ATO_Hash, abilityId, -1)
    endfunction

    private function ATO_Add takes integer abilityId, integer orderId returns nothing
        call SaveInteger(ATO_Hash, abilityId, -1, orderId)
    endfunction


    // Here's where you need to map all of the ability id's to their order id's.
    // You can find the ability id's in the object editor (press Control + D to view them).
    // You can find the order id's in the list down below.

    private function ATO_Init takes nothing returns nothing

        // I've added Bloodlust as an example:

        call ATO_Add('Ablo', 852101)

    endfunction

endlibrary

/*
globals
    //strange ones at bottom
    constant integer ORDER_OFFSET = 851970
 
    constant integer ORDER_wandillusion = 852274

    constant integer ORDER_absorb = 852529
    constant integer ORDER_acidbomb = 852662
    constant integer ORDER_acolyteharvest = 852185
    constant integer ORDER_AImove = 851988
    constant integer ORDER_ambush = 852131
    constant integer ORDER_ancestralspirit = 852490
    constant integer ORDER_ancestralspirittarget = 852491
    constant integer ORDER_animatedead = 852217
    constant integer ORDER_antimagicshell = 852186
    constant integer ORDER_attack = 851983
    constant integer ORDER_attackground = 851984
    constant integer ORDER_attackonce = 851985
    constant integer ORDER_attributemodskill = 852576
    constant integer ORDER_auraunholy = 852215
    constant integer ORDER_auravampiric = 852216
    constant integer ORDER_autodispel = 852132
    constant integer ORDER_autodispeloff = 852134
    constant integer ORDER_autodispelon = 852133
    constant integer ORDER_autoentangle = 852505
    constant integer ORDER_autoentangleinstant = 852506
    constant integer ORDER_autoharvestgold = 852021
    constant integer ORDER_autoharvestlumber = 852022
    constant integer ORDER_avatar = 852086
    constant integer ORDER_avengerform = 852531
    constant integer ORDER_awaken = 852466
    constant integer ORDER_banish = 852486
    constant integer ORDER_barkskin = 852135
    constant integer ORDER_barkskinoff = 852137
    constant integer ORDER_barkskinon = 852136
    constant integer ORDER_battleroar = 852099
    constant integer ORDER_battlestations = 852099
    constant integer ORDER_bearform = 852138
    constant integer ORDER_berserk = 852100
    constant integer ORDER_blackarrow = 852577
    constant integer ORDER_blackarrowoff = 852579
    constant integer ORDER_blackarrowon = 852578
    constant integer ORDER_blight = 852187
    constant integer ORDER_blink = 852525
    constant integer ORDER_blizzard = 852089
    constant integer ORDER_bloodlust = 852101
    constant integer ORDER_bloodlustoff = 852103
    constant integer ORDER_bloodluston = 852102
    constant integer ORDER_board = 852043
    constant integer ORDER_breathoffire = 852580
    constant integer ORDER_breathoffrost = 852560
    constant integer ORDER_build = 851994
    constant integer ORDER_burrow = 852533
    constant integer ORDER_cannibalize = 852188
    constant integer ORDER_carrionscarabs = 852551
    constant integer ORDER_carrionscarabsinstant = 852554
    constant integer ORDER_carrionscarabsoff = 852553
    constant integer ORDER_carrionscarabson = 852552
    constant integer ORDER_carrionswarm = 852218
    constant integer ORDER_chainlightning = 852119
    constant integer ORDER_channel = 852600
    constant integer ORDER_charm = 852581
    constant integer ORDER_chemicalrage = 852663
    constant integer ORDER_cloudoffog = 852473
    constant integer ORDER_clusterrockets = 852652
    constant integer ORDER_coldarrows = 852244
    constant integer ORDER_coldarrowstarg = 852243
    constant integer ORDER_controlmagic = 852474
    constant integer ORDER_corporealform = 852493
    constant integer ORDER_corrosivebreath = 852140
    constant integer ORDER_coupleinstant = 852508
    constant integer ORDER_coupletarget = 852507
    constant integer ORDER_creepanimatedead = 852246
    constant integer ORDER_creepdevour = 852247
    constant integer ORDER_creepheal = 852248
    constant integer ORDER_creephealoff = 852250
    constant integer ORDER_creephealon = 852249
    constant integer ORDER_creepthunderbolt = 852252
    constant integer ORDER_creepthunderclap = 852253
    constant integer ORDER_cripple = 852189
    constant integer ORDER_curse = 852190
    constant integer ORDER_curseoff = 852192
    constant integer ORDER_curseon = 852191
    constant integer ORDER_cyclone = 852144
    constant integer ORDER_darkconversion = 852228
    constant integer ORDER_darkportal = 852229
    constant integer ORDER_darkritual = 852219
    constant integer ORDER_darksummoning = 852220
    constant integer ORDER_deathanddecay = 852221
    constant integer ORDER_deathcoil = 852222
    constant integer ORDER_deathpact = 852223
    constant integer ORDER_decouple = 852509
    constant integer ORDER_defend = 852055
    constant integer ORDER_detectaoe = 852015
    constant integer ORDER_detonate = 852145
    constant integer ORDER_devour = 852104
    constant integer ORDER_devourmagic = 852536
    constant integer ORDER_disassociate = 852240
    constant integer ORDER_disenchant = 852495
    constant integer ORDER_dismount = 852470
    constant integer ORDER_dispel = 852057
    constant integer ORDER_divineshield = 852090
    constant integer ORDER_doom = 852583
    constant integer ORDER_drain = 852487
    constant integer ORDER_dreadlordinferno = 852224
    constant integer ORDER_dropitem = 852001
    constant integer ORDER_drunkenhaze = 852585
    constant integer ORDER_earthquake = 852121
    constant integer ORDER_eattree = 852146
    constant integer ORDER_elementalfury = 852586
    constant integer ORDER_ensnare = 852106
    constant integer ORDER_ensnareoff = 852108
    constant integer ORDER_ensnareon = 852107
    constant integer ORDER_entangle = 852147
    constant integer ORDER_entangleinstant = 852148
    constant integer ORDER_entanglingroots = 852171
    constant integer ORDER_etherealform = 852496
    constant integer ORDER_evileye = 852105
    constant integer ORDER_faeriefire = 852149
    constant integer ORDER_faeriefireoff = 852151
    constant integer ORDER_faeriefireon = 852150
    constant integer ORDER_fanofknives = 852526
    constant integer ORDER_farsight = 852122
    constant integer ORDER_fingerofdeath = 852230
    constant integer ORDER_firebolt = 852231
    constant integer ORDER_flamestrike = 852488
    constant integer ORDER_flamingarrows = 852174
    constant integer ORDER_flamingarrowstarg = 852173
    constant integer ORDER_flamingattack = 852540
    constant integer ORDER_flamingattacktarg = 852539
    constant integer ORDER_flare = 852060
    constant integer ORDER_forceboard = 852044
    constant integer ORDER_forceofnature = 852176
    constant integer ORDER_forkedlightning = 852586
    constant integer ORDER_freezingbreath = 852195
    constant integer ORDER_frenzy = 852561
    constant integer ORDER_frenzyoff = 852563
    constant integer ORDER_frenzyon = 852562
    constant integer ORDER_frostarmor = 852225
    constant integer ORDER_frostarmoroff = 852459
    constant integer ORDER_frostarmoron = 852458
    constant integer ORDER_frostnova = 852226
    constant integer ORDER_getitem = 851981
    constant integer ORDER_gold2lumber = 852233
    constant integer ORDER_grabtree = 852511
    constant integer ORDER_harvest = 852018
    constant integer ORDER_heal = 852063
    constant integer ORDER_healingspray = 852664
    constant integer ORDER_healingward = 852109
    constant integer ORDER_healingwave = 852501
    constant integer ORDER_healoff = 852065
    constant integer ORDER_healon = 852064
    constant integer ORDER_hex = 852502
    constant integer ORDER_holdposition = 851993
    constant integer ORDER_holybolt = 852092
    constant integer ORDER_howlofterror = 852588
    constant integer ORDER_humanbuild = 851995
    constant integer ORDER_immolation = 852177
    constant integer ORDER_impale = 852555
    constant integer ORDER_incineratearrow = 852670
    constant integer ORDER_incineratearrowoff = 852672
    constant integer ORDER_incineratearrowon = 852671
    constant integer ORDER_inferno = 852232
    constant integer ORDER_innerfire = 852066
    constant integer ORDER_innerfireoff = 852068
    constant integer ORDER_innerfireon = 852067
    constant integer ORDER_instant = 852200
    constant integer ORDER_invisibility = 852069
    constant integer ORDER_lavamonster = 852667
    constant integer ORDER_lightningshield = 852110
    constant integer ORDER_load = 852046
    constant integer ORDER_loadarcher  =  852142
    constant integer ORDER_loadcorpse = 852050
    constant integer ORDER_loadcorpseinstant = 852053
    constant integer ORDER_locustswarm = 852556
    constant integer ORDER_lumber2gold = 852234
    constant integer ORDER_magicdefense = 852478
    constant integer ORDER_magicleash = 852480
    constant integer ORDER_magicundefense = 852479
    constant integer ORDER_manaburn = 852179
    constant integer ORDER_manaflareoff = 852513
    constant integer ORDER_manaflareon = 852512
    constant integer ORDER_manashieldoff = 852590
    constant integer ORDER_manashieldon = 852589
    constant integer ORDER_massteleport = 852093
    constant integer ORDER_mechanicalcritter = 852564
    constant integer ORDER_metamorphosis = 852180
    constant integer ORDER_militia = 852072
    constant integer ORDER_militiaconvert = 852071
    constant integer ORDER_militiaoff = 852073
    constant integer ORDER_militiaunconvert = 852651
    constant integer ORDER_mindrot = 852565
    constant integer ORDER_mirrorimage = 852123
    constant integer ORDER_monsoon = 852591
    constant integer ORDER_mount = 852469
    constant integer ORDER_mounthippogryph = 852143
    constant integer ORDER_move = 851986
    constant integer ORDER_nagabuild = 852467
    constant integer ORDER_neutraldetectaoe = 852023
    constant integer ORDER_neutralinteract = 852566
    constant integer ORDER_neutralspell = 852630
    constant integer ORDER_nightelfbuild = 851997
    constant integer ORDER_orcbuild = 851996
    constant integer ORDER_parasite = 852601
    constant integer ORDER_parasiteoff = 852603
    constant integer ORDER_parasiteon = 852602
    constant integer ORDER_patrol = 851990
    constant integer ORDER_phaseshift = 852514
    constant integer ORDER_phaseshiftinstant = 852517
    constant integer ORDER_phaseshiftoff = 852516
    constant integer ORDER_phaseshifton = 852515
    constant integer ORDER_phoenixfire = 852481
    constant integer ORDER_phoenixmorph = 852482
    constant integer ORDER_poisonarrows = 852255
    constant integer ORDER_poisonarrowstarg = 852254
    constant integer ORDER_polymorph = 852074
    constant integer ORDER_possession = 852196
    constant integer ORDER_preservation = 852568
    constant integer ORDER_purge = 852111
    constant integer ORDER_rainofchaos = 852237
    constant integer ORDER_rainoffire = 852238
    constant integer ORDER_raisedead = 852197
    constant integer ORDER_raisedeadoff = 852199
    constant integer ORDER_raisedeadon = 852198
    constant integer ORDER_ravenform = 852155
    constant integer ORDER_recharge = 852157
    constant integer ORDER_rechargeoff = 852159
    constant integer ORDER_rechargeon = 852158
    constant integer ORDER_rejuvination = 852160
    constant integer ORDER_renew = 852161
    constant integer ORDER_renewoff = 852163
    constant integer ORDER_renewon = 852162
    constant integer ORDER_repair = 852024
    constant integer ORDER_repairoff = 852026
    constant integer ORDER_repairon = 852025
    constant integer ORDER_replenish = 852542
    constant integer ORDER_replenishlife = 852545
    constant integer ORDER_replenishlifeoff = 852547
    constant integer ORDER_replenishlifeon = 852546
    constant integer ORDER_replenishmana = 852548
    constant integer ORDER_replenishmanaoff = 852550
    constant integer ORDER_replenishmanaon = 852549
    constant integer ORDER_replenishoff = 852544
    constant integer ORDER_replenishon = 852543
    constant integer ORDER_request_hero = 852239
    constant integer ORDER_requestsacrifice = 852201
    constant integer ORDER_restoration = 852202
    constant integer ORDER_restorationoff = 852204
    constant integer ORDER_restorationon = 852203
    constant integer ORDER_resumebuild = 851999
    constant integer ORDER_resumeharvesting = 852017
    constant integer ORDER_resurrection = 852094
    constant integer ORDER_returnresources = 852020
    constant integer ORDER_revenge = 852241
    constant integer ORDER_revive = 852039
    constant integer ORDER_roar = 852164
    constant integer ORDER_robogoblin = 852656
    constant integer ORDER_root = 852165
    constant integer ORDER_sacrifice = 852205
    constant integer ORDER_sanctuary = 852569
    constant integer ORDER_scout = 852181
    constant integer ORDER_selfdestruct = 852040
    constant integer ORDER_selfdestructoff = 852042
    constant integer ORDER_selfdestructon = 852041
    constant integer ORDER_sentinel = 852182
    constant integer ORDER_setrally = 851980
    constant integer ORDER_shadowsight = 852570
    constant integer ORDER_shadowstrike = 852527
    constant integer ORDER_shockwave = 852125
    constant integer ORDER_silence = 852592
    constant integer ORDER_sleep = 852227
    constant integer ORDER_slow = 852075
    constant integer ORDER_slowoff = 852077
    constant integer ORDER_slowon = 852076
    constant integer ORDER_smart = 851971
    constant integer ORDER_soulburn = 852668
    constant integer ORDER_soulpreservation = 852242
    constant integer ORDER_spellshield = 852571
    constant integer ORDER_spellshieldaoe = 852572
    constant integer ORDER_spellsteal = 852483
    constant integer ORDER_spellstealoff = 852485
    constant integer ORDER_spellstealon = 852484
    constant integer ORDER_spies = 852235
    constant integer ORDER_spiritlink = 852499
    constant integer ORDER_spiritofvengeance = 852528
    constant integer ORDER_spirittroll = 852573
    constant integer ORDER_spiritwolf = 852126
    constant integer ORDER_stampede = 852593
    constant integer ORDER_standdown = 852113
    constant integer ORDER_starfall = 852183
    constant integer ORDER_stasistrap = 852114
    constant integer ORDER_steal = 852574
    constant integer ORDER_stomp = 852127
    constant integer ORDER_stoneform = 852206
    constant integer ORDER_stop = 851972
    constant integer ORDER_submerge = 852604
    constant integer ORDER_summonfactory = 852658
    constant integer ORDER_summongrizzly = 852594
    constant integer ORDER_summonphoenix = 852489
    constant integer ORDER_summonquillbeast = 852595
    constant integer ORDER_summonwareagle = 852596
    constant integer ORDER_tankdroppilot = 852079
    constant integer ORDER_tankloadpilot = 852080
    constant integer ORDER_tankpilot = 852081
    constant integer ORDER_taunt = 852520
    constant integer ORDER_thunderbolt = 852095
    constant integer ORDER_thunderclap = 852096
    constant integer ORDER_tornado = 852597
    constant integer ORDER_townbelloff = 852083
    constant integer ORDER_townbellon = 852082
    constant integer ORDER_tranquility = 852184
    constant integer ORDER_transmute = 852665
    constant integer ORDER_unavatar = 852087
    constant integer ORDER_unavengerform = 852532
    constant integer ORDER_unbearform = 852139
    constant integer ORDER_unburrow = 852534
    constant integer ORDER_uncoldarrows = 852245
    constant integer ORDER_uncorporealform = 852494
    constant integer ORDER_undeadbuild = 851998
    constant integer ORDER_undefend = 852056
    constant integer ORDER_undivineshield = 852091
    constant integer ORDER_unetherealform = 852497
    constant integer ORDER_unflamingarrows = 852175
    constant integer ORDER_unflamingattack = 852541
    constant integer ORDER_unholyfrenzy = 852209
    constant integer ORDER_unimmolation = 852178
    constant integer ORDER_unload = 852047
    constant integer ORDER_unloadall = 852048
    constant integer ORDER_unloadallcorpses = 852054
    constant integer ORDER_unloadallinstant = 852049
    constant integer ORDER_unpoisonarrows = 852256
    constant integer ORDER_unravenform = 852156
    constant integer ORDER_unrobogoblin = 852657
    constant integer ORDER_unroot = 852166
    constant integer ORDER_unstableconcoction = 852500
    constant integer ORDER_unstoneform = 852207
    constant integer ORDER_unsubmerge = 852605
    constant integer ORDER_unsummon = 852210
    constant integer ORDER_unwindwalk = 852130
    constant integer ORDER_vengeance = 852521
    constant integer ORDER_vengeanceinstant = 852524
    constant integer ORDER_vengeanceoff = 852523
    constant integer ORDER_vengeanceon = 852522
    constant integer ORDER_volcano = 852669
    constant integer ORDER_voodoo = 852503
    constant integer ORDER_ward = 852504
    constant integer ORDER_waterelemental = 852097
    constant integer ORDER_wateryminion = 852598
    constant integer ORDER_web = 852211
    constant integer ORDER_weboff = 852213
    constant integer ORDER_webon = 852212
    constant integer ORDER_whirlwind = 852128
    constant integer ORDER_windwalk = 852129
    constant integer ORDER_wispharvest = 852214
 
    constant integer ORDER_scrollofspeed = 852285
    constant integer ORDER_cancel = 851976
    constant integer ORDER_moveslot1 = 852002
    constant integer ORDER_moveslot2 = 852003
    constant integer ORDER_moveslot3 = 852004
    constant integer ORDER_moveslot4 = 852005
    constant integer ORDER_moveslot5 = 852006
    constant integer ORDER_moveslot6 = 852007
    constant integer ORDER_useslot1 = 852008
    constant integer ORDER_useslot2 = 852009
    constant integer ORDER_useslot3 = 852010
    constant integer ORDER_useslot4 = 852011
    constant integer ORDER_useslot5 = 852012
    constant integer ORDER_useslot6 = 852013
    constant integer ORDER_skillmenu = 852000
    constant integer ORDER_stunned = 851973

    constant integer ORDER_instant1 = 851991      //?
    constant integer ORDER_instant2 = 851987      //?
    constant integer ORDER_instant3 = 851975      //?
    constant integer ORDER_instant4 = 852019      //?
endglobals
*/
 

Attachments

  • AbilityIdToOrderId.w3m
    21.3 KB · Views: 6
Last edited:
Level 4
Joined
Feb 2, 2023
Messages
28
Awesome sauce, I got it working now, thanks so much, I wish I had realized how few targeted buffs orcs had, only 2 I believe, 4 with my added abilities, I may make a new unit just to add some more, but thanks so much, greatly appreciated :D
 
Status
Not open for further replies.
Top