• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Leaks of doom

Status
Not open for further replies.
Level 2
Joined
Oct 5, 2008
Messages
15
I have this trigger. Except, it leaks. Like hell. So I'm going to try and make a new trigger.

And since the wonderfultastic community of Hiveworkshop is here, I was hoping you could give me a hand.

What the trigger needs to do
The Trigger needs to be able to pick every unit on the map, and award gold and lumber to players who own specific units without causing memory leaks that make the map unplayable within 3 or 4 income timers.

Currently, what I have is this long wall of text:
  • Events
    • Time - Every 120.00 seconds of game time
  • Actions
    • Game - Display to (All players) for 5.00 seconds the text: |cff00FF00Income
    • Sound - Play GoodJob <gen>
    • Unit Group - Pick every unit in (Units of type City) and do (Player - Add 35 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type City) and do (Player - Add 7 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 1 (Red) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 1 (Red) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 2 (Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 2 (Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 3 (Teal) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 3 (Teal) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 4 (Purple) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 4 (Purple) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 5 (Yellow) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 5 (Yellow) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 6 (Orange) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 6 (Orange) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 7 (Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 7 (Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 8 (Pink) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 8 (Pink) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 9 (Gray) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 9 (Gray) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 10 (Light Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 10 (Light Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 11 (Dark Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 11 (Dark Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 12 (Brown) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 12 (Brown) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Wait 0.50 seconds
    • Unit Group - Pick every unit in (Units of type Oil Rig) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Factory) and do (Player - Add 17 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Potassium Mine) and do (Player - Add 17 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Manufacturing Center) and do (Player - Add 33 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Industrial Complex) and do (Player - Add 65 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Businesses) and do (Player - Add 14 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Comercial Center) and do (Player - Add 28 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type American Owned Company) and do (Player - Add 28 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Stock Exchange) and do (Player - Add 56 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Swiss Bank) and do (Player - Add 112 to (Owner of (Picked unit)) Current gold)
    • Player - Add -500 to Player 1 (Red) Current gold
    • Player - Add -500 to Player 6 (Orange) Current gold
Thanks in advance for all help you might choose to give.

And again, if this should be in Triggers and Scripts, any moderator availible please move this thread/delete the thread and pm me telling such.
 
  • Trigger
  • Events
    • Time - Every 120.00 seconds of game-time
  • Conditions
  • Actions
    • Player Group - Pick every player in (All players) and do (Actions)
      • Loop - Actions
        • Custom script: set bj_wantDestroyGroup = true
        • If (All conditions are true) then do (Actions) else do (Actions)
          • If - Conditions
            • (Number of living Giant for (Picked player)) Greater than 0
          • Then - Actions
            • Player - Add 80 to (Picked player) Current gold
            • Player - Add 15 to (Picked player) Current lumber
          • Else - Actions
Do the same for the rest unit group picks (After the wait of 0.5 seconds). Add the "Custom script: set bj_wantDestroyGroup = true" before each Unit Group pick action.
 
Level 2
Joined
Oct 5, 2008
Messages
15
Thanks! Sorry about my slow reply.

I've just noticed that it doesnt appear that the trigger you've given me will award the money for every instance of the unit, though, just once. How would I go about making it award the money for every instance of the unit?

I was thinking I might need to use something along the lines of temporary regions, something like "tempgroup, all units on map, pick x unit, award to owner" with "destroy tempgroup" at the end, though I'm not 100% on how I would go about making something like that. Any ideas?
 
  • Trigger
  • Events
    • Time - Every 120.00 seconds of game-time
  • Conditions
  • Actions
    • Player Group - Pick every player in (All players) and do (Actions)
      • Loop - Actions
        • Set TempGroup = Pick every unit owned by Picked Player matching (Unittype of matching unit equal to Giant)
        • Unit Group - Pick every unit in TempGroup and do
          • Do - Actions
            • Player - Add 80 to (Picked player) Current gold
            • Player - Add 15 to (Picked player) Current lumber
          • Custom script: call DestroyGroup(udg_TempGroup)
 
Level 11
Joined
Aug 1, 2009
Messages
714
I have this trigger. Except, it leaks. Like hell. So I'm going to try and make a new trigger.

And since the wonderfultastic community of Hiveworkshop is here, I was hoping you could give me a hand.

What the trigger needs to do
The Trigger needs to be able to pick every unit on the map, and award gold and lumber to players who own specific units without causing memory leaks that make the map unplayable within 3 or 4 income timers.

Currently, what I have is this long wall of text:
  • Events
    • Time - Every 120.00 seconds of game time
  • Actions
    • Game - Display to (All players) for 5.00 seconds the text: |cff00FF00Income
    • Sound - Play GoodJob <gen>
    • Unit Group - Pick every unit in (Units of type City) and do (Player - Add 35 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type City) and do (Player - Add 7 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 1 (Red) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 1 (Red) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 2 (Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 2 (Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 3 (Teal) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 3 (Teal) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 4 (Purple) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 4 (Purple) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 5 (Yellow) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 5 (Yellow) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 6 (Orange) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 6 (Orange) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 7 (Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 7 (Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 8 (Pink) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 8 (Pink) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 9 (Gray) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 9 (Gray) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 10 (Light Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 10 (Light Blue) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 11 (Dark Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 11 (Dark Green) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units owned by Player 12 (Brown) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units owned by Player 12 (Brown) matching (((Picked unit) is A giant) Equal to True)) and do (Player - Add 15 to (Owner of (Picked unit)) Current lumber)
    • Wait 0.50 seconds
    • Unit Group - Pick every unit in (Units of type Oil Rig) and do (Player - Add 80 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Factory) and do (Player - Add 17 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Potassium Mine) and do (Player - Add 17 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Manufacturing Center) and do (Player - Add 33 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Industrial Complex) and do (Player - Add 65 to (Owner of (Picked unit)) Current lumber)
    • Unit Group - Pick every unit in (Units of type Businesses) and do (Player - Add 14 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Comercial Center) and do (Player - Add 28 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type American Owned Company) and do (Player - Add 28 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Stock Exchange) and do (Player - Add 56 to (Owner of (Picked unit)) Current gold)
    • Unit Group - Pick every unit in (Units of type Swiss Bank) and do (Player - Add 112 to (Owner of (Picked unit)) Current gold)
    • Player - Add -500 to Player 1 (Red) Current gold
    • Player - Add -500 to Player 6 (Orange) Current gold
Thanks in advance for all help you might choose to give.

And again, if this should be in Triggers and Scripts, any moderator availible please move this thread/delete the thread and pm me telling such.

Oh men what a leak you got there. I suggest do Pharoah's Triggers.
 
Status
Not open for further replies.
Top