Help with Generic Variables!

N2o)

Retired.
Reaction score
51
Hi, i'm making a maze map and have needed help once or twice before so i decided to join this forum. The thing is i want to make my map to see a player name and recognise them as admins. I made a global variable called admin, but i think i need a generic one so i can make more than one person admin, please help i have no clue how to do this and/if it requires JASS. Thanks in advance. :)

So far i have:

Code:
If Admin
    Events
        Time - Elapsed game time is 0.00 seconds
    Conditions
    Actions
        Player Group - Pick every player in (All players) and do (If ((Name of (Picked player)) Equal to N2o)) then do (Set Admin = (Picked player)) else do (Do nothing))
        Player Group - Pick every player in (All players) and do (If ((Name of (Picked player)) Equal to N2o)) then do (Game - Display to (All players) the text: ((Name of (Picked player)) +  is an Admin!!)) else do (Do nothing))
 

N2o)

Retired.
Reaction score
51
Whitesock said:
You mean local variables, not generic, right?

EDIT: You can also use arrays for that, just store as different array numbers.
Yes i suppose, i only need up to the ammount of admins i want, then use an x to set each one. Thanks for the assistance :)

Edit: I've worked that out fine, but now i have my admin tools. Before i just had to do "Triggering Player Equal to Admin" but now i don't know what to do, any help would be nice.
 

Sim

Forum Administrator
Staff member
Reaction score
534
This trigger leaks as hell and also picks twice the same players instead of picked them once to do both of the actions...

Code:
If Admin
    Events
        Time - Elapsed game time is 0.00 seconds
    Conditions
    Actions
        Set Players = (All Players)
        Player Group - Pick every player in Players and do If (All Conditions are true) then do (Then actions) else do (Else actions)
           If - Conditions
              ((Name of (Picked player)) Equal to N2o
           Then - Actions
              Set Admin = (Picked player))
              Game - Display to Players the text: ((Name of (Picked player)) +  is an Admin!!)
           Else - Actions
        Custom Script :  call DestroyForce(udg_Players)

That trigger picks only once the players are remove the group leak.
 

Sim

Forum Administrator
Staff member
Reaction score
534
Custom script: call DestroyForce( udg_Your_Variable ) //Player Group

Taken directly from the "Memory Leaks and Custom Scripts'' tutorial.

They do leak, but I did a mistake. It is not DestroyGroup, it is DestroyForce.
 

SFilip

Gone but not forgotten
Reaction score
634
they do.
but the command is not DestroyGroup. its DestroyForce. your trigger would probably result in a compile error.
edit: we posted at the same time lol...
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> Set Players = (All Players)

"All players" is a global "Blizzard" variable, that hopefully resists destruction.
It doesn't leak btw.
 

Sim

Forum Administrator
Staff member
Reaction score
534
AceHart said:
> Set Players = (All Players)

"All players" is a global "Blizzard" variable, that hopefully resists destruction.
It doesn't leak btw.

That's perfect. I didn't know that !

Well I guess that the player groups leaking are groups going like this : Set Team1 = (All allies of Player 1 (Red)).

no?
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> Set Team1 = ...

Yes.
The group is created with that action. It didn't exist before.



As for the original question, instead of an array, I'd suggest a variable of type "Player group".

And a stupid example:
Code:
Admins
    Events
        Map initialization
    Conditions
    Actions
        Player Group - Pick every player in (All players) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Or - Any (Conditions) are true
                            Conditions
                                (Name of (Picked player)) Equal to Name 1
                                (Name of (Picked player)) Equal to Name 2
                                (Name of (Picked player)) Equal to Name 3
                    Then - Actions
                        Player Group - Add (Picked player) to PlayerGroup
                    Else - Actions

Example of use:
Code:
Free Gold
    Events
        Player - Player 1 (Red) types a chat message containing -gold as An exact match
        Player - Player 2 (Blue) types a chat message containing -gold as An exact match
        Player - Player 3 (Teal) types a chat message containing -gold as An exact match
    Conditions
        ((Triggering player) is in PlayerGroup) Equal to True
    Actions
        Player - Add 1000 to (Triggering player) Current gold


(No, I've no idea what you would need this for :p )
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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