import es, os.path, cPickle, playerlib #------------------ interval = 100 kill_xp = 25 headshot_xp = 15 health_get = 5 speed_get = 0.05 #------------------ Players = {} temp = {} def load(): global Players str_path = es.getAddonPath('power') + '/players.db' if os.path.isfile(str_path): file_users = open(str_path) Players = cPickle.load(file_users) file_users.close() def player_spawn(event_var): userid = playerlib.getPlayer(event_var['userid']) level = Players[event_var['es_steamid']]['level'] health = (100 + (level * health_get)) speed = (1.0 + (level * speed_get)) userid.set('health', health) userid.set('speed', speed) def player_activate(event_var): global Players if not Players.has_key(event_var['es_steamid']): Players[event_var['es_steamid']] = {'xp':0, 'level':1} if event_var['es_steamid'] not in temp: temp[event_var['es_steamid']] = {'dmg':0} def player_hurt(event_var): global temp temp[event_var['es_attackersteamid']]['dmg'] += int(event_var['dmg_health']) def round_start(event_var): for spieler in es.getUseridList(): steamid = es.getplayersteamid(spieler) temp[steamid] = {'dmg':0} def player_death(event_var): global Players xp = Players[event_var['es_attackersteamid']]['xp'] xp_get = kill_xp if(event_var['headshot'] == '1'): xp_get += headshot_xp es.msg('%s got %i XP for killing %s' % (event_var['es_attackername'], xp_get, event_var['es_username'])) Players[event_var['es_attackersteamid']]['xp'] += xp_get steamid = event_var['es_attackersteamid'] userid = event_var['attackeruserid'] level_up(steamid, userid) def level_up(steamid, userid): global Players intervall = Players[steamid]['level'] * interval if(Players[steamid]['xp']>=intervall): Players[steamid]['level'] += 1 myname = es.getplayername(userid) es.msg('%s got level %i' % (myname, Players[steamid]['level'])) def player_say(event_var): if(event_var['text'] == '/xp'): intervall = Players[event_var['es_steamid']]['level'] * interval es.tell(event_var['userid'], 'Level: %i [%i - %i]' % (Players[event_var['es_steamid']]['level'], Players[event_var['es_steamid']]['xp'], intervall)) if(event_var['text'] == '/reset'): es.tell(event_var['userid'], 'The Stats has been resetet.') Players[event_var['es_steamid']] = {'xp':0, 'level':1} def round_end(event_var): global Players for spieler in es.getUseridList(): steamid = es.getplayersteamid(spieler) dmg = temp[steamid]['dmg'] if(dmg>0): xp = Players[steamid]['xp'] blub = dmg / 10 es.tell(spieler, 'You earned %i for making %i dmg' % (blub, dmg)) Players[steamid]['xp'] += blub level_up(steamid, spieler) str_path = open(es.getAddonPath('power') + '/players.db', 'w') cPickle.dump(Players, str_path) str_path.close()