How can I exist this loop using custom script?

Lightstalker

New Member
Reaction score
55
I need to exit the following loop when the ability cast is equal to ability integer A. How to do this? +rep

Trigger:
  • Allocate Skills
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Ability_Points[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
    • Actions
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set Ability_Integer = (Integer A))
 
Try this.

Trigger:
  • Allocate Skills
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Ability_Points[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
    • Actions
      • Custom Script: local integer i = 1
      • Custom Script: loop
      • Custom Script: exitwhen i == 12 or udg_Ability_Integer == i
      • Custom Script: set udg_Ability_Integer = i
      • Custom Script: endloop
 
Try this.

Trigger:
  • Allocate Skills
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Ability_Points[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
    • Actions
      • Custom Script: local integer i = 1
      • Custom Script: loop
      • Custom Script: exitwhen i == 12 or udg_Ability_Integer == i
      • Custom Script: set udg_Ability_Integer = i
      • Custom Script: endloop
Care to revise the above a little? [del]No point in giving the poor guy a endless loop :)[/del]
 
Try this.

Trigger:
  • Allocate Skills
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Ability_Points[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
    • Actions
      • Custom Script: local integer i = 1
      • Custom Script: loop
      • Custom Script: exitwhen i == 12 or udg_Ability_Integer == i
      • Custom Script: set udg_Ability_Integer = i
      • Custom Script: endloop

do you know anything one line? like

JASS:
Custom script:   exitwhen (GetItemTypeId(udg_Ability_Sold) == udg_RandomAbility_Item[udg_Ability_Integer])
 
Care to revise the above a little? No point in giving the poor guy a endless loop :)
I don't think it's endless is it?
It just sets the udg_Ability_Integer to i after the first run so the second run through is automatically exited because it meets the condition.
 
Code:
Custom Script: exitwhen i == 12 or udg_Ability_Integer == i
Custom Script: set udg_Ability_Integer = i
The second condition isn't met the first run through;
But on the second run, since udg_Ability_Integer got set to "i", udg_Ability_Integer == i would be true (and the loop would stop) .
 
Oh, indeed you're right. However then the script serves no purpose, all it does is set udg_Ability_Integer to 1. I can find easier methods to set my variables to one. My first comment still stands.
 
One is sufficient:

Trigger:
  • For each (Integer A) from 1 to 12, do (Actions)
    • Loop - Actions
      • Custom script: exitwhen bj_forLoopAIndex == udg_Ability_Integer
 
One is sufficient:

Trigger:
  • For each (Integer A) from 1 to 12, do (Actions)
    • Loop - Actions
      • Custom script: exitwhen bj_forLoopAIndex == udg_Ability_Integer

Damn I thought it worked but it doesn't. Maybe I didn't explain well enough so Here's the trigger:

Trigger:
  • Allocating Skills
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • ((Triggering unit) is A Hero) Equal to True
          • Ability_Points[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
    • Actions
      • Set Ability_Cast = (Ability being cast)
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set Ability_Integer = (Integer A)
          • <b><u><span style="color: Red">(EXIT LOOP HERE when Ability Cast = Ability_Learn[Ability_Integer])</span></u></b>
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Ability_Learn[Ability_Integer]
        • Then - Actions
          • Unit - Increase level of Ability_Cast for (Triggering unit)
          • Unit - Increase level of Ability_Use[(Integer A)] for (Triggering unit)
        • Else - Actions


I need custom script for the line in bold and red. ((EXIT LOOP HERE when Ability Cast = Ability_Learn[Ability_Integer])
 
Trigger:
  • Allocating Skills
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • ((Triggering unit) is A Hero) Equal to True
          • Ability_Points[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
    • Actions
      • Set Ability_Cast = (Ability being cast)
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Ability_Cast Equal to Ability_Learn[(Integer A)]
            • Then - Actions
              • Unit - Increase level of Ability_Cast for (Triggering unit)
              • Unit - Increase level of Ability_Use[(Integer A)] for (Triggering unit)
            • Else - Actions

There you go, no custom script needed. =)
 
Trigger:
  • Allocating Skills
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • ((Triggering unit) is A Hero) Equal to True
          • Ability_Points[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
    • Actions
      • Set Ability_Cast = (Ability being cast)
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Ability_Cast Equal to Ability_Learn[(Integer A)]
            • Then - Actions
              • Unit - Increase level of Ability_Cast for (Triggering unit)
              • Unit - Increase level of Ability_Use[(Integer A)] for (Triggering unit)
            • Else - Actions

There you go, no custom script needed. =)

Thanks but I want to use custom script to exit the loop when the ability cast is found so that it doesn't keep on going because its too inefficient. Right now, it just has to check 12 times, but soon will have to check 50 times, and if the ability is found right at the begining then there's no point in it to keep on checking for it. Know what I'm saying?
 
Plllllllllllease help me im about to commit suicide Cuz of this bastard :mad:

Please - how do i get those green question marks or loop things?
At the point where it branches off.

If i had the action

If condition then do action else do action

They all start as red, so i cant press ok
I need to make it into

If (All Conditions are True) then do (Actions) else do (Actions)

How do i turn it from:
If condition then do action else do action
to
If (All Conditions are True) then do (Actions) else do (Actions)
 
Please - how do i get those green question
How do i turn it from:
If condition then do action else do action
to
If (All Conditions are True) then do (Actions) else do (Actions)

Just press the down arrow?
Select the trigger below it (there are two "if then else" triggers.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    It is weird seeing a way more realistic users online number
  • The Helper The Helper:
    Happy Tuesday Night!
    +1
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    News portal has been retired. Main page of site goes to Headline News forum now
  • The Helper The Helper:
    I am working on getting access to the old news portal under a different URL for those that would rather use that for news before we get a different news view.
  • Ghan Ghan:
    Easily done
    +1
  • The Helper The Helper:
    https://www.thehelper.net/pages/news/ is a link to the old news portal - i will integrate it into the interface somewhere when i figure it out
  • Ghan Ghan:
    Need to try something
  • Ghan Ghan:
    Hopefully this won't cause problems.
  • Ghan Ghan:
    Hmm
  • Ghan Ghan:
    I have converted the Headline News forum to an Article type forum. It will now show the top 20 threads with more detail of each thread.
  • Ghan Ghan:
    See how we like that.
  • The Helper The Helper:
    I do not see a way to go past the 1st page of posts on the forum though
  • The Helper The Helper:
    It is OK though for the main page to open up on the forum in the view it was before. As long as the portal has its own URL so it can be viewed that way I do want to try it as a regular forum view for a while
  • Ghan Ghan:
    Yeah I'm not sure what the deal is with the pagination.
  • Ghan Ghan:
    It SHOULD be there so I think it might just be an artifact of having an older style.
  • Ghan Ghan:
    I switched it to a "Standard" article forum. This will show the thread list like normal, but the threads themselves will have the first post set up above the rest of the "comments"
  • The Helper The Helper:
    I don't really get that article forum but I think it is because I have never really seen it used on a multi post thread
  • Ghan Ghan:
    RpNation makes more use of it right now as an example: https://www.rpnation.com/news/
  • The Helper The Helper:

      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