• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Do not understand this

Status
Not open for further replies.
Level 18
Joined
May 11, 2012
Messages
2,103
  • (Number of units in (Units in (Playable map area) matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of Player 11 (Dark Green)) Equal to True)))) Equal to 0
Yes you don't work? :ogre_rage::ogre_frown::ogre_rage:
Ignore the first ITE part, it works
But the second ITE doesn't works. What's the problem?


  • Enemy Bosses Death and Second Part
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Triggering unit) Equal to FinalWave_Bosses[1]
        • Then - Actions
          • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Unbroken's |c00FFCD00Head and earned 100 000 Gold))))
          • Game - Display to (All players) the text: TempString
          • Player - Add 100000 to (Owner of (Killing unit)) Current gold
          • Set TempString = <Empty String>
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to FinalWave_Bosses[2]
            • Then - Actions
              • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Ogre Idiot's |c00FFCD00Head and earned 100 000 Gold))))
              • Game - Display to (All players) the text: TempString
              • Player - Add 100000 to (Owner of (Killing unit)) Current gold
              • Set TempString = <Empty String>
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Triggering unit) Equal to FinalWave_Bosses[3]
                • Then - Actions
                  • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Skeleton Singer's |c00FFCD00Head and earned 100 000 Gold))))
                  • Game - Display to (All players) the text: TempString
                  • Player - Add 100000 to (Owner of (Killing unit)) Current gold
                  • Set TempString = <Empty String>
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Triggering unit) Equal to FinalWave_Bosses[4]
                    • Then - Actions
                      • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Shadow Alike's |c00FFCD00Head and earned 100 000 Gold))))
                      • Game - Display to (All players) the text: TempString
                      • Player - Add 100000 to (Owner of (Killing unit)) Current gold
                      • Set TempString = <Empty String>
                    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in (Playable map area) matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of Player 11 (Dark Green)) Equal to True)))) Equal to 0
        • Then - Actions
          • Countdown Timer - Start FinalWave_Timer[3] as a One-shot timer that will expire in 30.00 seconds
          • Countdown Timer - Create a timer window for (Last started timer) with title Creep Marathon:
          • Set FinalWaveTimerWindow = (Last created timer window)
          • Countdown Timer - Show FinalWaveTimerWindow
          • Set FinalWave_Integer = 0
          • Trigger - Turn off (This trigger)
        • Else - Actions
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,206
So you tested that the game thinks they are allies? Just because you think they are allies does not mean the game is when it is validating that part.

You yourself have said that it is that condition that is failing, so it is a reasonable assumption to think that the game is not correctly detecting players as allies.
 
Level 18
Joined
May 11, 2012
Messages
2,103
P1 - P8 and P11 are 1 team so they are allies and P12 is team 2 so P12 is enemy of team 1

I'm checking here are number of units owned by P12 (enemy of P11 = P12) equal to 0
And game does correctly detects ally players and the enemy player...
 
Level 18
Joined
May 11, 2012
Messages
2,103
Nope, no units are picked that are not supposed to be picked. Although, I discovered by accident when I destroyed an Ally tower (green, P7), then the ITE ran.

So, I'm about to check the Player Properties in Scenario, and as always, something screwes up. I am unable to open the properties. The WE freezes once I click on it and the laptop fan starts spinning so fast I can hear it in another room lol.

After some searching, I found that the ''Freezing problem'' was caused by tremendous levels of Upgrades and it takes much time to load it

The thing was, the trigger was supposed to run one more time after all the bosses were killed, but it didn't. So I put additional event.

Now the trigger works, correctly, as it should:

  • Enemy Bosses Death and Second Part
    • Events
      • Unit - A unit Dies
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Triggering unit) Equal to FinalWave_Bosses[1]
        • Then - Actions
          • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Unbroken's |c00FFCD00Head and earned 100 000 Gold))))
          • Game - Display to (All players) the text: TempString
          • Player - Add 100000 to (Owner of (Killing unit)) Current gold
          • Set TempString = <Empty String>
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to FinalWave_Bosses[2]
            • Then - Actions
              • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Ogre Idiot's |c00FFCD00Head and earned 100 000 Gold))))
              • Game - Display to (All players) the text: TempString
              • Player - Add 100000 to (Owner of (Killing unit)) Current gold
              • Set TempString = <Empty String>
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Triggering unit) Equal to FinalWave_Bosses[3]
                • Then - Actions
                  • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Skeleton Singer's |c00FFCD00Head and earned 100 000 Gold))))
                  • Game - Display to (All players) the text: TempString
                  • Player - Add 100000 to (Owner of (Killing unit)) Current gold
                  • Set TempString = <Empty String>
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Triggering unit) Equal to FinalWave_Bosses[4]
                    • Then - Actions
                      • Set TempString = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Killing unit)) + ( |c00FFCD00Pwned + (PlayerColors[12] + Shadow Alike's |c00FFCD00Head and earned 100 000 Gold))))
                      • Game - Display to (All players) the text: TempString
                      • Player - Add 100000 to (Owner of (Killing unit)) Current gold
                      • Set TempString = <Empty String>
                    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in (Playable map area) matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an ally of Player 12 (Brown)) Equal to True)))) Equal to 0
        • Then - Actions
          • Countdown Timer - Start FinalWave_Timer[3] as a One-shot timer that will expire in 30.00 seconds
          • Countdown Timer - Create a timer window for (Last started timer) with title Creep Marathon:
          • Set FinalWaveTimerWindow = (Last created timer window)
          • Countdown Timer - Show FinalWaveTimerWindow
          • Trigger - Turn off (This trigger)
        • Else - Actions
 
Last edited:
Level 13
Joined
Mar 24, 2013
Messages
1,105
Probably brown has more units than these 4 bosses, however I think there is a better way--

Instead of checking every second to see if all the allies of Brown are dead why don't you just set an integer to 4 and minus 1 every time a boss dies and then if the integer = 0 start the final wave.

@death
all the actions aren't identical, the bosses name changes but there is a better way to do it yes.
 
Level 18
Joined
May 11, 2012
Messages
2,103
Probably brown has more units than these 4 bosses, however I think there is a better way--

Instead of checking every second to see if all the allies of Brown are dead why don't you just set an integer to 4 and minus 1 every time a boss dies and then if the integer = 0 start the final wave.

@death
all the actions aren't identical, the bosses name changes but there is a better way to do it yes.

I did that before, but what if we kill all the bosses before we kill all the creeps?
We will get paused and creeps will destroy the main Structure and gg ;)

It still leaks a group. You may want to fix that.

Well well, missed that. Will be taken care of
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
Seems to be the common idea of beginners that dead units would not be pickable units/reside within an area.

yes it does.

u should use 2 integers then one to count the bosses and 1 to count the creeps. or just use one integer to count them all.
then use that as conditions. and start the final wave after all conditions r met.
 
Status
Not open for further replies.
Top