problem with if/else

Mezion

New Member
Reaction score
0
sorry this is a repost but my old one was very messy.

So i got this problem, I'm doing a spell with a LOT of if/else

the problem is, after the 28th one, the spell bug in editor and is disabled. I get this message error: Expected a reserved type or handle type. What does this mean?

I tried to replace all it was doing with only if and else, but it's still bugging at 29 and more. Is there a max? if yes, I'm sad :p
 

Avaleirra

Is back. Probably.
Reaction score
128
Could you show us our trigger please? We can't help that much without it :p
 

Slapshot136

Divide et impera
Reaction score
471
would it be possible to replace the if/else with a loop/array or something similar?
 

Wratox1

Member
Reaction score
22
sorry this is a repost but my old one was very messy.

So i got this problem, I'm doing a spell with a LOT of if/else

the problem is, after the 28th one, the spell bug in editor and is disabled. I get this message error: Expected a reserved type or handle type. What does this mean?

I tried to replace all it was doing with only if and else, but it's still bugging at 29 and more. Is there a max? if yes, I'm sad :p

actually there is a max, when i was a really noob i made some crappy trigger that had like 30 if/else, and the editor complained about it, i copied the trigger as text and tried to post it here, but it was over 5k characters long.. about 5800 i think, dont know why blizzard made a max limit for that, and i fixed it with some loops(didnt even know what a loop was then:D), but the solution really depends on your trigger..
 

Mezion

New Member
Reaction score
0
the trigger looks like this (I wont but it all, it's like you said, really long and bugs at 29/30)

Trigger:
  • Metronome H
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Metronome (H)
    • Actions
      • Set intMana[0] = (Integer((Mana of (Triggering unit))))
      • Set RandomNumber[1] = (Random integer number between 1 and 30)
      • Unit - Create 1 HeroDummy for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
      • Hero - Set (Last created unit) Hero-level to (Hero level of (Triggering unit)), Hide level-up graphics
      • Hero - Modify Strength of (Last created unit): Set to (Strength of (Triggering unit) (Include bonuses))
      • Hero - Modify Intelligence of (Last created unit): Set to (Intelligence of (Triggering unit) (Include bonuses))
      • Hero - Modify Agility of (Last created unit): Set to (Agility of (Triggering unit) (Include bonuses))
      • Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RandomNumber[1] Equal to 1
        • Then - Actions
          • Unit - Add Hypnosis (M) to (Last created unit)
          • Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RandomNumber[1] Equal to 2
            • Then - Actions
              • Unit - Add Leer (M) to (Last created unit)
              • Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • RandomNumber[1] Equal to 3
                • Then - Actions
                  • Unit - Add Night Shade (M) to (Last created unit)
                  • Unit - Order (Last created unit) to Special Archimonde - Finger Of Death (Target unit of ability being cast)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • RandomNumber[1] Equal to 4
                    • Then - Actions
                      • Unit - Add Poison Sting (M) to (Last created unit)
                      • Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike (Target unit of ability being cast)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • RandomNumber[1] Equal to 5
                        • Then - Actions
                          • Unit - Add Psychock (M) to (Last created unit)
                          • Unit - Order (Last created unit) to Special Archimonde - Finger Of Death (Target unit of ability being cast)
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • RandomNumber[1] Equal to 6
                            • Then - Actions
                              • Unit - Add Shadow Ball (M) to (Last created unit)
                              • Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Target unit of ability being cast)
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • RandomNumber[1] Equal to 7
                                • Then - Actions
                                  • Unit - Add Spite (M) to (Last created unit)
                                  • Unit - Order (Last created unit) to Night Elf Demon Hunter - Mana Burn (Target unit of ability being cast)
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • RandomNumber[1] Equal to 8
                                    • Then - Actions
                                      • Unit - Add Teleport (M) to (Triggering unit)
                                      • Unit - Order (Triggering unit) to Night Elf Warden - Blink (Position of (Target unit of ability being cast))
                                      • Wait 1.50 seconds
                                      • Unit - Remove Teleport (M) from (Triggering unit)
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • RandomNumber[1] Equal to 9
                                        • Then - Actions
                                          • Unit - Set mana of (Triggering unit) to ((Real(intMana[0])) + 50.00)
                                          • Unit - Add Barrier (M) to (Triggering unit)
                                          • Unit - Order (Triggering unit) to Undead Lich - Frost Armor (Triggering unit)
                                          • Wait 1.50 seconds
                                          • Unit - Remove Barrier (M) from (Triggering unit)
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • RandomNumber[1] Equal to 10
                                            • Then - Actions
                                              • Unit - Add Acid (M) to (Last created unit)
                                              • Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Target unit of ability being cast)
                                            • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • RandomNumber[1] Equal to 11
                                                • Then - Actions
                                                  • Unit - Add Rock Throw (H) to (Last created unit)
                                                  • Unit - Set level of Rock Throw (H) for (Last created unit) to 5
                                                  • Unit - Order (Last created unit) to Neutral - Hurl Boulder (Target unit of ability being cast)
                                                • Else - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • RandomNumber[1] Equal to 12
                                                    • Then - Actions
                                                      • Unit - Set mana of (Triggering unit) to ((Real(intMana[0])) + 200.00)
                                                      • Unit - Add Ancient Power (M) to (Triggering unit)
                                                      • Unit - Order (Triggering unit) to Human Mountain King - Thunder Clap
                                                      • Wait 1.50 seconds
                                                      • Unit - Remove Ancient Power (M) from (Triggering unit)
                                                    • Else - Actions
                                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                        • If - Conditions
                                                          • RandomNumber[1] Equal to 13
                                                        • Then - Actions
                                                          • Unit - Set mana of (Triggering unit) to ((Real(intMana[0])) + 120.00)
                                                          • Unit - Add Blizzard (M) to (Triggering unit)
                                                          • Unit - Order (Triggering unit) to Human Archmage - Blizzard (Position of (Target unit of ability being cast))
                                                          • Wait 5.00 seconds
                                                          • Unit - Remove Blizzard (M) from (Triggering unit)
                                                        • Else - Actions
                                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                            • If - Conditions
                                                              • RandomNumber[1] Equal to 14
                                                            • Then - Actions
                                                              • Unit - Add Discharge (M) to (Last created unit)
                                                              • Unit - Order (Last created unit) to Neutral Naga Sea Witch - Forked Lightning (Target unit of ability being cast)
                                                            • Else - Actions
                                                              • (etc.)
 

Wratox1

Member
Reaction score
22
i almost know a solution but the problem is that you cant(atleast what i know of) order a unit to cast/move/attack/etc an variable, if you could then i have a solution for you..
maybe if you move all those if/else so they are on their own, and by that i mean dont put the next one in the else action dont know if this work, but i think i should
 

Mezion

New Member
Reaction score
0
the funny part it's that I just pasted half of it

and, I estimate the final number of if to something near 100 <_<
 

Shura

New Member
Reaction score
45
Couldn't you do something along the lines of setting an ability variable array to store all the abilities, and then doing it all in one action, using Integer A?
 

Mezion

New Member
Reaction score
0
Couldn't you do something along the lines of setting an ability variable array to store all the abilities, and then doing it all in one action, using Integer A?

could you explain to me how that array works :) ?
 

Mezion

New Member
Reaction score
0
Ty for the array link! I,ll do that when I,ll have some time ahead since it will be long to rethink the way to cast those spells (since previously, some were casted by the caster and changed his mana so that the spell would actually be cast and others were casted by a dummy, etc.

For now I tried to line all if one under an other, not in a big vertical line. I must say the spell is: okay, he can be cast and some effect will happen like planned BUT, all the if after the 28th one are not taken in concideration. They will never happen. \___\ So ty, I,ll try to give some feedback after those array things.
 

canons200

New Member
Reaction score
50
store your unit as variable for both casting ability unit and target unit of ability being cast, and then order the variable to perform action, it should be working.
 
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