''' Shaun Hellar, 08-26-2008 Nade limiter script to stop rebuying of all types of grenades per round. ''' import es, playerlib nades = {'hegrenade':'he','flashbang':'fb','smokegrenade':'sg'} grenadecount = {} ''' Events ''' # Create user data on load def load(): for player in es.getUseridList(): reset_nades(player) def unload(): es.addons.unregisterClientCommandFilter(check_command) # Create user data on new connects def player_connect(event_var): reset_nades(event_var['userid']) # Remove them on a disconnect def player_disconnect(event_var): userid = int(event_var['userid']) del grenadecount[userid] # Reset nade count on round start def round_start(event_var): for player in es.getUseridList(): reset_nades(player) ''' Functions ''' # Check the command to see if they called 'buy' def check_command(userid, args): if args[0].lower() == "buy" and len(args) > 1: item = args[1].lower().replace('weapon_','').replace('item_','') if check_purchase(userid, item) == False: return False return True # See if they picked up a grenade and if they can keep it def check_purchase(userid, weapon): if userid > 0: userid = int(userid) if weapon in nades: if grenadecount[userid][weapon] > 0: grenadecount[userid][weapon] = (grenadecount[userid][weapon] - 1) return True else: es.tell(userid, '#multi', '#green You have reached your limit on %ss' % weapon) return False else: return True # Reset the users nade count def reset_nades(userid): userid = int(userid) grenadecount[userid] = { 'hegrenade': 1, 'flashbang': 2, 'smokegrenade': 1, } # Create a command filter es.addons.registerClientCommandFilter(check_command)