Gungame.core.players.shortcuts.setAttribute
From GunGame5 Documentation
(Difference between revisions)
Line 76: | Line 76: | ||
- | notes=|}} | + | notes=* In order to effectively set a custom attribute on all players, use the setAttribute() function in your addon's load() and player_spawn() functions: |
+ | <source lang="python">def load(): | ||
+ | setAttribute('#all', 'yourattributename', 'gg_your_addon_name') | ||
+ | |||
+ | def player_activate(event_var): | ||
+ | setAttribute(event_var['userid'], 'yourattributename', 'gg_your_addon_name')</source>|}} |
Revision as of 16:16, 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
# ../<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 addAttributeCallBack from gungame.core.players.shortcuts import removeAttributeCallBack from gungame.core.players.shortcuts import removeCallBacksForAddon def load(): # Set the custom attribute "myattribute" on all connected players setAttribute('#all', 'myattribute', 0) # Add the attribute callback # (this will call on "callbackFunction" any time "myattribute" is set # via the __setitem__ or __setattr__ method) addAttributeCallBack('myattribute', callbackFunction, 'gg_sample') def unload(): ''' When you unload the custom addon, so long as the correct "addon" argument was provided, "removeCallBackForAddons('addon_name_being_unloaded')" will be called, which in this case will be "removeCallBackForAddon('gg_sample')". Therefore, the following "removeAttributeCallBack('myattribute')" and "removeCallBacksForAddon('gg_sample')" is not necessary, but moreso exists for the sake of showing how to use the function. ''' # Remove the custom attribute "myattribute" from all players removeAttributeCallBack('myattribute') # Remove all custom attribute callbacks for this addon removeCallBacksForAddon('gg_sample') def player_activate(event_var): # Set the custom attribute "myattribute" for this userid setAttribute(event_var['userid'], 'myattribute', 'gg_sample') def callbackFunction(name_of_the_attribute, value_to_be_checked): ''' This callback function can be used for more than 1 attribute, so that you can register multiple attribute callbacks. All that you have to do is check the name of the attribute (the first argument). The second argument is the value of the attribute. If you raise an error during your callback, the attribute will not be set to the attempted value. ''' if name_of_the_attribute == 'myattribute': # Make sure the value is from 0-10 if value_to_be_checked in range(0, 11): pass else: raise ValueError('Value must be between 0 and 10!')
Notes
- In order to effectively set a custom attribute on all players, use the setAttribute() function in your addon's load() and player_spawn() functions:
def load(): setAttribute('#all', 'yourattributename', 'gg_your_addon_name') def player_activate(event_var): setAttribute(event_var['userid'], 'yourattributename', 'gg_your_addon_name')
See Also
{{{seealso}}}