Why does my loop die on me?

Bogrim

y hello thar
Reaction score
154
This isn't the first time I've encountered this problem. I use game text messages to track how far the loop goes. In this game, the loop seems to stop at random times which ruins the spell itself.
Trigger:
  • Ability Earthquake begin
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Earthquake ()
    • Actions
      • Custom script: local location l = GetSpellTargetLoc()
      • Custom script: local unit u = GetSpellAbilityUnit()
      • Custom script: set udg_temp_location[0] = l
      • Environment - Create a 22.00 second Normal ripple deformation at temp_location[0] with starting radius 300.00, ending radius 300.00, and depth 40.00, using 1.00 second ripples spaced 150.00 apart
      • Game - Display to (All players) the text: trigger
      • For each (Integer A) from 1 to 20, do (Actions)
        • Loop - Actions
          • Wait 1.00 seconds
          • Custom script: set udg_temp_location[0] = l
          • Custom script: set udg_temp_unit = u
          • Set temp_group = (Units within 300.00 of temp_location[0] matching ((((Matching unit) belongs to an enemy of (Owner of temp_unit)) Equal to True) and (((Matching unit) is alive) Equal to True)))
          • Game - Display to (All players) the text: ((String((Integer A))) + loop)
          • Unit Group - Pick every unit in temp_group and do (Actions)
            • Loop - Actions
              • Unit - Cause temp_unit to damage (Picked unit), dealing ((Real((Integer A))) x 10.00) damage of attack type Spells and damage type Normal
              • Set temp_location[1] = (Position of (Picked unit))
              • Special Effect - Create a special effect at temp_location[1] using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
              • Custom script: call RemoveLocation(udg_temp_location[1])
              • Set temp_effect = (Last created special effect)
              • Trigger - Run Destroy Special Effect <gen> (ignoring conditions)
      • Custom script: call RemoveLocation(l)

Can someone enlighten me what holy law of loops I have broken? ;(
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
Would you care to tell us which parts of the loop run and where it stops running (I know you said it stops at random times but still?)?

For example does the message "((String((Integer A))) + loop)" appear?
Does only one unit get damaged?
Does the ImpaleTargetDust.mdl special effect even appear?

It can't really be random there has to be something that repeats or whatever.

What I suggest is really to put a message after every action in the loop.
 

Slapshot136

Divide et impera
Reaction score
471
Thats only in (Pick every unit in blah group). An integer A loop is fine with waits.

no. let me clarify:

there can only be 1 integer A loop going on at once, and only 1 integer B loop going on at once. otherwise errors will occur

you can have 1 integer A loop at the same time as 1 integer B loop

the problem isn't necessarily the wait, but if another trigger uses the integer A loop before that one is done, then it will cause problems - avoiding waits is a simple way to avoid this, as there there cant be 2 going on at the same time if it's instant
 

Bogrim

y hello thar
Reaction score
154
I did some further testing. The only other trigger I had running was a spawn trigger, which also used an integer a loop.
no. let me clarify:

there can only be 1 integer A loop going on at once, and only 1 integer B loop going on at once. otherwise errors will occur

you can have 1 integer A loop at the same time as 1 integer B loop

the problem isn't necessarily the wait, but if another trigger uses the integer A loop before that one is done, then it will cause problems - avoiding waits is a simple way to avoid this, as there there cant be 2 going on at the same time if it's instant
This explains a ton. Of course the trigger started working as soon as I disabled the spawn trigger and tested on some manually placed mobs instead. But how can I avoid spells like that conflicting with each other as some of them require loops with waits in them?

I'm guessing some integer variable array with a number unique to each spell?
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
Everytime you have to use a wait in a loop, use the Integer variable loop

(In the list you have Integer A, Integer B and Integer Variable)
It lets you use any integer instead of just A or B
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • WildTurkey WildTurkey:
    is there a stephen green in the house?
    +1
  • The Helper The Helper:
    What is up WildTurkey?
  • The Helper The Helper:
    Looks like Google fixed whatever mistake that made the recipes on the site go crazy and we are no longer trending towards a recipe site lol - I don't care though because it motivated me to spend alot of time on the site improving it and at least now the content people are looking at is not stupid and embarrassing like it was when I first got back into this like 5 years ago.
  • The Helper The Helper:
    Plus - I have a pretty bad ass recipe collection now! That section of the site is 10 thousand times better than it was before
  • The Helper The Helper:
    We now have a web designer at my job. A legit talented professional! I am going to get him to redesign the site theme. It is time.
  • Varine Varine:
    I got one more day of community service and then I'm free from this nonsense! I polished a cop car today for a funeral or something I guess
  • Varine Varine:
    They also were digging threw old shit at the sheriff's office and I tried to get them to give me the old electronic stuff, but they said no. They can't give it to people because they might use it to impersonate a cop or break into their network or some shit? idk but it was a shame to see them take a whole bunch of radios and shit to get shredded and landfilled
  • The Helper The Helper:
    whatever at least you are free
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top