Gungame.core.players.shortcuts.setAttribute
From GunGame5 Documentation
(Difference between revisions)
Line 39: | Line 39: | ||
# Remove the custom attribute "myattribute" from all players | # Remove the custom attribute "myattribute" from all players | ||
deleteAttribute('#all', 'myattribute') | deleteAttribute('#all', 'myattribute') | ||
+ | |||
+ | def gg_start(): | ||
+ | # Set the custom attribute "myattribute" on all connected players | ||
+ | # (due to the fact that all custom player attributes are removed | ||
+ | # when the GunGame match ends, we need to re-instantiated the | ||
+ | # custom attribute "myattribute" when a new GunGame round starts) | ||
+ | setAttribute('#all', 'myattribute', 0) | ||
def player_activate(event_var): | def player_activate(event_var): | ||
Line 65: | Line 72: | ||
- | notes=* In order to effectively set a custom attribute on all players, use the [[gungame.core.players.shortcuts.setAttribute|setAttribute()]] function in your addon's load() | + | notes=* In order to effectively set a custom attribute on all players, use the [[gungame.core.players.shortcuts.setAttribute|setAttribute()]] function in your addon's load(), player_activate(), and gg_start() functions: |
<source lang="python">def load(): | <source lang="python">def load(): | ||
setAttribute('#all', 'yourattributename', 0) | setAttribute('#all', 'yourattributename', 0) | ||
Line 74: | Line 81: | ||
* Once a custom [[gungame.core.players.Player|Player]] attribute has been set, you can access the attribute via the [[gungame.core.players.Player|Player.__getitem__()]] or [[gungame.core.players.Player|Player.__getattr__()]] methods. | * Once a custom [[gungame.core.players.Player|Player]] attribute has been set, you can access the attribute via the [[gungame.core.players.Player|Player.__getitem__()]] or [[gungame.core.players.Player|Player.__getattr__()]] methods. | ||
** Other scripts can also access your custom attributes via the [[gungame.core.players.Player|Player.__getitem__()]] or [[gungame.core.players.Player|Player.__getattr__()]] methods. | ** Other scripts can also access your custom attributes via the [[gungame.core.players.Player|Player.__getitem__()]] or [[gungame.core.players.Player|Player.__getattr__()]] methods. | ||
- | * When GunGame starts a new GunGame round, all custom attributes are deleted, and need to be re-instantiated. If you use the load() | + | * When GunGame starts a new GunGame round, all custom [[gungame.core.players.Player|Player]] attributes are deleted, and need to be re-instantiated. If you use the load(), player_activate(), and gg_start() functions to set custom [[gungame.core.players.Player|Player]] attributes in your script, you will not have to worry about the custom attributes being inaccessible.| |
Revision as of 17:15, 27 April 2009
Function: setAttribute
Module: gungame.core.players.shortcuts
Class: Player
GunGame Version: 5.1
Function Overview
Table of Contents
Contents |
Description
A shortcut function for Player.__setattr__() and Player.__setitem__() that allows the scripter to set a custom Player attribute on a single userid or multiple userids using a filter as provided by playerlib.getPlayerList().
Arguments
setAttribute(filter, attribute, value)
- filter
- userid
- A str() filter as used by playerlib.getPlayerList()
- attribute
- The str() name of the attribute
- value
- The value of the attribute
Examples
- Setting the attribute:
# ../<MOD>/addons/eventscripts/gungame/scripts/custom/gg_sample/gg_sample.py import es from gungame.core.players.shortcuts import setAttribute from gungame.core.players.shortcuts import deleteAttribute def load(): # Set the custom attribute "myattribute" on all connected players setAttribute('#all', 'myattribute', 0) def unload(): # Remove the custom attribute "myattribute" from all players deleteAttribute('#all', 'myattribute') def gg_start(): # Set the custom attribute "myattribute" on all connected players # (due to the fact that all custom player attributes are removed # when the GunGame match ends, we need to re-instantiated the # custom attribute "myattribute" when a new GunGame round starts) setAttribute('#all', 'myattribute', 0) def player_activate(event_var): # Set the custom attribute "myattribute" for this userid setAttribute(event_var['userid'], 'myattribute', 0) def player_disconnect(event_var): # Delete the custom attribute "myattribute" from this userid deleteAttribute(event_var['userid'], 'myattribute')
- Accessing the attribute:
import es from gungame.core.players.shortcuts import Player def player_say(event_var): if event_var['text'] == 'myattribute': userid = event_var['userid'] # Using the Player.__getattr__() method es.tell(userid, 'Your attribute: %s' %Player(userid).myattribute # Using the Player.__getitem__() method es.tell(userid, 'Your attribute: %s' %Player(userid)['myattribute']
Notes
- In order to effectively set a custom attribute on all players, use the setAttribute() function in your addon's load(), player_activate(), and gg_start() functions:
def load(): setAttribute('#all', 'yourattributename', 0) def player_activate(event_var): setAttribute(event_var['userid'], 'yourattributename', 0)
- If you set any custom Player attributes, insure that you remove them when the player disconnects (optional) or when your addon is unloaded (required). This can be accomplished via the deleteAttribute() function.
- Once a custom Player attribute has been set, you can access the attribute via the Player.__getitem__() or Player.__getattr__() methods.
- Other scripts can also access your custom attributes via the Player.__getitem__() or Player.__getattr__() methods.
- When GunGame starts a new GunGame round, all custom Player attributes are deleted, and need to be re-instantiated. If you use the load(), player_activate(), and gg_start() functions to set custom Player attributes in your script, you will not have to worry about the custom attributes being inaccessible.
See Also
- gungame.core.players
- gungame.core.players.shortcuts
- Player
- deleteAttribute(attribute)
- addAttributeCallBack(attribute, function, addon)
- removeAttributeCallBack(attribute)
- removeCallBacksForAddon(addon)
- Forum search for Gungame.core.players.shortcuts.setAttribute