• 🏆 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!

[JASS] Removing a unit... twice?

Status
Not open for further replies.
Level 21
Joined
Aug 21, 2005
Messages
3,699
No it doesn't. GroupRemoveUnit removes the unit from the group, RemoveUnit removes the unit from the game. Your loop will bug because you never remove FirstOfGroup() from the group. So what happens is that since the unit is removed from the game, the handle is considered null and you exit the loop before looping through all units in the group.
 
Level 14
Joined
Nov 18, 2007
Messages
816
Thats one good reason to not use RemoveUnit(). It causes Groups to fuck up and slow down by about 50 times (refer to Griffens tests over at wc3c for proofs). Just kill the units and hide them. Let WC3 do the recycling internally. Oh and FirstOfGroup() loops are inefficient. Why not use the boolexpr for that?
 
Level 14
Joined
Nov 18, 2007
Messages
816
Using a boolexpr takes (5/6) of the time it takes with a FirstOfGroup() loop (when only passing a struct (integer)). This is a rough estimate, in reality its slightly faster (_slightly_; 0.01-0.03 should be enough).
 
Status
Not open for further replies.
Top