DestroyForce doing it's job a little too well.

Kitt

New Member
Reaction score
5
Here is my trigger code for some Goldmines that simply give you gold every second as long as you control them:

Code:
ttGoldMine
    Events
        Time - Every 1.00 seconds of game time
    Conditions
    Actions
        Set Temp_PlayerGroup = (All players)
        Player Group - Pick every player in Temp_PlayerGroup and do (Actions)
            Loop - Actions
                Player - Add (Number of living tu_Gold Mine units owned by (Picked player)) to (Picked player) Current gold
        Custom script:   call DestroyForce(udg_Temp_PlayerGroup)

This works great for the first second. But, after that, nothing happens. The trigger refuses to give players gold. If you remove the last line (DestroyForce) the trigger works fine. It seems, that for whatever reason, DestroyForce is just completely removing my variable off the face of the earth...

I don't have the problem with the other leak management functions such as RemoveLocation or DestroyGroup. Am I doing something wrong? And if so, how should I stop that function from leaking, but still have it work?

Thanks in advance!

Meow.
 
> DestroyForce is just completely removing my variable off the face of the earth...

Precisely. Look:

Code:
Set Temp_PlayerGroup = (All players)

You set your group to (All Players). Since that has no conditions, it, in effect, becomes All Players. So, when you destroy the variable, you're destroying the ability to use All Players. When you do that, you'll never be able to use All Players in that game again.

Besides, All Players does not leak in the first place as far as I know.
 
> DestroyForce is just completely removing my variable off the face of the earth...

Precisely. Look:

Code:
Set Temp_PlayerGroup = (All players)

You set your group to (All Players). Since that has no conditions, it, in effect, becomes All Players. So, when you destroy the variable, you're destroying the ability to use All Players. When you do that, you'll never be able to use All Players in that game again.

Besides, All Players does not leak in the first place as far as I know.

I vaguely understand that. Why do conditions make a variable work any differently?

Well, as long as All Players doesn't leak, I suppose I can just remove that all together then.

Mrew.
 
> Why do conditions make a variable work any differently?

I believe it is because all players is a preset. In JASS, it's GetPlayersAll. There are no presets for the others; you specify the filter conditions for the groups.
 
> Why do conditions make a variable work any differently?

I believe it is because all players is a preset. In JASS, it's GetPlayersAll. There are no presets for the others; you specify the filter conditions for the groups.

Alright, so it's more of a strange specificity to that command rather than a general rule. That makes a little more sense =D

Mew.
 
Conditions have little to nothing to do with this.
You see most of what you see in that player group picking box (the one where all players is) are actually functions that, when ran, create a new group and store it somewhere in the memory. These created groups need to be removed after use so that they don't take your memory. Simple like that.
But (All Players) is the only exception to this, it is not a function but a global variable just like your Temp_PlayerGroup. Therefore (All Players) is only created once, doesn't leak and should not be destroyed.
 
I think you got a group leak over there.

Code:
Add ([B]Number of living tu_Gold Mine units owned by (Picked player)[/B]) to (Picked player) Current gold
 
Does that leak? It's just an integer... but I suppose it could be creating a group for the units....
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    News portal has been retired. Main page of site goes to Headline News forum now
  • The Helper The Helper:
    I am working on getting access to the old news portal under a different URL for those that would rather use that for news before we get a different news view.
  • Ghan Ghan:
    Easily done
    +1
  • The Helper The Helper:
    https://www.thehelper.net/pages/news/ is a link to the old news portal - i will integrate it into the interface somewhere when i figure it out
  • Ghan Ghan:
    Need to try something
  • Ghan Ghan:
    Hopefully this won't cause problems.
  • Ghan Ghan:
    Hmm
  • Ghan Ghan:
    I have converted the Headline News forum to an Article type forum. It will now show the top 20 threads with more detail of each thread.
  • Ghan Ghan:
    See how we like that.
  • The Helper The Helper:
    I do not see a way to go past the 1st page of posts on the forum though
  • The Helper The Helper:
    It is OK though for the main page to open up on the forum in the view it was before. As long as the portal has its own URL so it can be viewed that way I do want to try it as a regular forum view for a while
  • Ghan Ghan:
    Yeah I'm not sure what the deal is with the pagination.
  • Ghan Ghan:
    It SHOULD be there so I think it might just be an artifact of having an older style.
  • Ghan Ghan:
    I switched it to a "Standard" article forum. This will show the thread list like normal, but the threads themselves will have the first post set up above the rest of the "comments"
  • The Helper The Helper:
    I don't really get that article forum but I think it is because I have never really seen it used on a multi post thread
  • Ghan Ghan:
    RpNation makes more use of it right now as an example: https://www.rpnation.com/news/
  • The Helper The Helper:
  • The Helper The Helper:
    What do you think Tom?
  • tom_mai78101 tom_mai78101:
    I will have to get used to this.
  • tom_mai78101 tom_mai78101:
    The latest news feed looks good

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top