What is wrong with the scripting?

Zorobay

Member
Reaction score
1
Hi, these are my trigger to spawn a wave of creeps acording to the buttons klicked:

The starting dialog where you choose difficulty:
Trigger:
  • Starting Dialog
    • Events
      • Time - Elapsed game time is 0.50 seconds
    • Conditions
    • Actions
      • Dialog - Clear startingDialog
      • Dialog - Change the title of startingDialog to Difficulty
      • -------- Create Dialog Buttons --------
      • Dialog - Create a dialog button for startingDialog labelled Easy
      • Set dialogBEasy = (Last created dialog Button)
      • Dialog - Create a dialog button for startingDialog labelled Normal
      • Set dialogBNormal = (Last created dialog Button)
      • Dialog - Create a dialog button for startingDialog labelled Hard
      • Set dialogBHard = (Last created dialog Button)
      • -------- Show Dialog --------
      • Dialog - Show startingDialog for Player 1 (Red)
      • Dialog - Show startingDialog for Player 2 (Blue)
      • Dialog - Show startingDialog for Player 3 (Teal)
      • Dialog - Show startingDialog for Player 4 (Purple)
      • Dialog - Show startingDialog for Player 5 (Yellow)
      • Dialog - Show startingDialog for Player 6 (Orange)


Count the times the specific button has been clicked and display it:
Trigger:
  • count Starting Dialog button clicks
    • Events
      • Dialog - A dialog button is clicked for startingDialog
    • Conditions
    • Actions
      • -------- Timer Setup --------
      • Countdown Timer - Start timerDiffVote as a One-shot timer that will expire in 30.00 seconds
      • Set timerDiffVote = (Last started timer)
      • Countdown Timer - Create a timer window for timerDiffVote with title Vote Ending In:
      • Set timerWDiffVote = (Last created timer window)
      • Player Group - Pick every player in playingPlayers and do (Actions)
        • Loop - Actions
          • Countdown Timer - Show timerWDiffVote for (Picked player)
      • -------- Count Votes --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to dialogBEasy
        • Then - Actions
          • Set intEasy = (intEasy + 1)
          • Game - Display to (All players) the text: (Player + (stringPlayerColor[(Player number of (Triggering player))] + (((Name of (Triggering player)) + |r) + ( voted + (|cff32cd32+1|r + ( for + |cffFF0099EASY|r))))))
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to dialogBNormal
        • Then - Actions
          • Set intNormal = (intNormal + 1)
          • Game - Display to (All players) the text: (Player + (stringPlayerColor[(Player number of (Triggering player))] + (((Name of (Triggering player)) + |r) + ( voted + (|cff32cd32+1|r + ( for + |cffFF0099NORMAL|r))))))
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to dialogBHard
        • Then - Actions
          • Set intNormal = (intHard + 1)
          • Game - Display to (All players) the text: (Player + (stringPlayerColor[(Player number of (Triggering player))] + (((Name of (Triggering player)) + |r) + ( voted + (|cff32cd32+1|r + ( for + |cffFF0099HARD|r))))))
        • Else - Actions
          • Do nothing


Setup difficulty according to what button has been clicked most times:
Trigger:
  • Setup Difficulty
    • Events
      • Time - timerDiffVote expires
    • Conditions
    • Actions
      • -------- Timer --------
      • Countdown Timer - Destroy timerWDiffVote
      • Countdown Timer - Start timerWave as a One-shot timer that will expire in 10.00 seconds
      • Countdown Timer - Create a timer window for timerWave with title Next Wave:
      • Set timerWWave = (Last created timer window)
      • -------- Equal --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • intEasy Equal to intNormal
        • Then - Actions
          • Trigger - Turn on Easy <gen>
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • intNormal Equal to intHard
        • Then - Actions
          • Trigger - Turn on Normal <gen>
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • intHard Equal to intEasy
        • Then - Actions
          • Trigger - Turn on Easy <gen>
        • Else - Actions
          • Do nothing
      • -------- Greater Than --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • intEasy Greater than intNormal
          • intEasy Greater than intHard
        • Then - Actions
          • Trigger - Turn on Easy <gen>
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • intNormal Greater than intEasy
          • intNormal Greater than intHard
        • Then - Actions
          • Trigger - Turn on Normal <gen>
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • intHard Greater than intEasy
          • intHard Greater than intNormal
        • Then - Actions
          • Trigger - Turn on Hard <gen>
        • Else - Actions
          • Do nothing


This should be turned on if most easy were most clicked:
Trigger:
  • Easy
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set unitAmount[1] = 15
      • Set unitAmount[2] = 1
      • Set unitAmount[3] = 3
      • Set unitAmount[4] = 10


Then this wave should spawn, but it never does, and im positive that it is the quantity variable which is initiated in Easy that is the trouble. When i change the variable for a number like 10, the wave spawnes correctly:
Trigger:
  • Wave 1 N
    • Events
      • Time - timerWave expires
    • Conditions
    • Actions
      • Countdown Timer - Destroy timerWWave
      • Wait 0.50 seconds
      • Set creepType = Blue Midgets
      • Unit - Create unitAmount[1] Blue Midgets for Player 12 (Brown) at (Center of Red WaveSpawn <gen>) facing Default building facing degrees
      • Trigger - Turn on Wave 2 N <gen>


What am i doing wrong here?
 

skyblader

You're living only because it's illegal killing.
Reaction score
159
Firstly, please remove the 'Do nothing' they're not necessary. I don't think the 0.50 seconds wait is necessary either o.o

Also, when checking for the stuff Like If/then/else

You can do this
Code:
If
blahblah
Then
blahblah
Else
If/then/else

Instead of what you're doing now,,

Code:
If
blahblah
Then
blahblah
Else
Do nothing

If/Then/Else

In other words you join them together.

Also, why are you creating a timer everytime a button is clicked? Won't there be 8 timers if there were 8 players?

Try putting the And - conditions if you're checking more than 1 condition.
 

TomTTT

New Member
Reaction score
44
Firstly, please remove the 'Do nothing' they're not necessary. I don't think the 0.50 seconds wait is necessary either o.o

Also, when checking for the stuff Like If/then/else

You can do this
Code:
If
blahblah
Then
blahblah
Else
If/then/else

Instead of what you're doing now,,

Code:
If
blahblah
Then
blahblah
Else
Do nothing

If/Then/Else

In other words you join them together.

Also, why are you creating a timer everytime a button is clicked? Won't there be 8 timers if there were 8 players?

Try putting the And - conditions if you're checking more than 1 condition.

Agreed with most of what you said, except for...

Try putting the And - conditions if you're checking more than 1 condition.

Why is that? This doesn't make any difference. If you check more than 1 condition, anyway it's checking all of them.
 

skyblader

You're living only because it's illegal killing.
Reaction score
159
Just a safety precaution. I've tried using without the And - condition and sometimes it just doesn't work. But then again, if I do things without And - condition, sometimes it works, so just for precaution.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
no, the "and" condition is only used within an "or" condition otherwise it doesnt do any difference. the conditions always check with "and" by default.
 
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