def player_spawn(ev): dbg('player_spawn') if not es.isbot(ev['userid']): steamid = es.getplayersteamid(ev['userid']) if not steamid: dbg('NO STEAM ID!!!') return if steamid == 'STEAM_ID_PENDING': dbg('STEAM_ID_PENDING') gamethread.delayedname(1, 'xs_delayed_%s' % ev['userid'], pendingCheck, kw={userid:ev['userid']}) pending.append(ev['userid']) return if not ev['userid'] in newconnected: return if not steamid in players: players.newplayer(steamid) if not steamid in toplist: toplist.newplayer(steamid) players.increment(steamid,'sessions') players.update(steamid,'sessionstart',time.time()) players.update(steamid,'lastseen',time.time()) players.update(steamid,'teamchange_time',time.time()) newname = es.getplayername(ev['userid']) players.name(steamid,newname) newconnected.remove(ev['userid']) if ev['userid'] in pending: pending.remove(ev['userid']) dbg('player spawned: %s' % steamid)
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))