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))
 

_whelp

New Member
Reaction score
54
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
 

Tom Jones

N/A
Reaction score
437
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]
 

Lightstalker

New Member
Reaction score
55
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])
 

WolfieeifloW

WEHZ Helper
Reaction score
372
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.
 

WolfieeifloW

WEHZ Helper
Reaction score
372
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) .
 

Tom Jones

N/A
Reaction score
437
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.
 

Tom Jones

N/A
Reaction score
437
One is sufficient:

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

Lightstalker

New Member
Reaction score
55
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])
 

Artificial

Without Intelligence
Reaction score
326
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. =)
 

Lightstalker

New Member
Reaction score
55
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?
 

Wilfred1100

New Member
Reaction score
0
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)
 

Admit

New Member
Reaction score
25
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 Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top