def player_disconnect(ev): if ev['userid'] in newconnected: newconnected.remove(ev['userid']) if ev['userid'] in pending: pending.remove(ev['userid']) return if not es.isbot(ev['userid']): dbg( 'player disconnected: %s' % ev['userid']) dbg( 'finnishing player session') steamid = ev['networkid'] if not steamid in players: return players.update(steamid,'lastseen',time.time()) players.add(steamid,'time',time.time() - players.query(steamid,'sessionstart')) cteam = players.query(steamid,'current_team') if not str(cteam) == '0': players.add(steamid,'team_' + str(cteam) + '_time',time.time() - players.query(steamid,'teamchange_time')) players.update(steamid,'teamchange_time',time.time()) players.update(steamid,'current_team',0) for method in methods.keys(): toplist.update(steamid,method,methods[method](players,steamid))
def player_hurt(ev): victim = ev['es_steamid'] attacker = ev['es_attackersteamid'] weapon = ev['weapon'] damage = int(ev['damage']) if weapon in weapons: weapons.add(weapon,'damage',float(damage)) if not es.isbot(ev['userid']): dbg( 'player hurt') players.increment(victim,'hurt') players.add(victim,'hurt_damage',damage) if not es.isbot(ev['attacker']) and bool(int(ev['attacker'])): dbg( 'player hurted') players.increment(attacker,'attacked') players.add(attacker,'attacked_damage',damage) if 'damage_%s' % weapon in players.columns: players.add(attacker,'damage_%s' % weapon,damage)
def player_team(ev): if not es.isbot(ev['userid']): dbg( 'player_team') steamid = sid(ev) if steamid: ot = ev['oldteam'] nt = ev['team'] if ot in ['1','0'] and nt in ['2','3']: dbg( 'spec to play') players.add(steamid,'team_1_time',time.time() - players.query(steamid,'teamchange_time')) players.update(steamid,'teamchange_time',time.time()) if ot in ['2','3'] and nt in ['1','0']: dbg( 'play to spec') players.add(steamid,'team_%s_time' % ot,time.time() - players.query(steamid,'teamchange_time')) players.update(steamid,'teamchange_time',time.time()) if ot in ['2','3'] and ot != nt: dbg( 'teamswitch') players.add(steamid,'team_%s_time' % ot,time.time() - players.query(steamid,'teamchange_time')) players.update(steamid,'teamchange_time',time.time()) players.update(steamid,'current_team',nt) else: dbg( 'disconnected')
def player_falldamage(ev): if not es.isbot(ev['userid']): dbg( 'falldamage') players.add(sid(ev),'falldamage',float(ev['damage']))