def player_jump(ev): if not es.isbot(ev['userid']): dbg( 'player jumped') steamid = sid(ev) players.increment(steamid,'jump') vStartpos = vecmath.vector(es.getplayerlocation(ev['userid'])) players.update(steamid,'jump_startpos',str(vStartpos))
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 vip_killed(ev): if not es.isbot(ev['attacker']): dbg( 'vip killed') players.increment(ev['attacker'],'vip_killed') if not es.isbot(ev['userid']): dbg( 'vip died') players.increment(sid(ev),'vip_died')
def round_end(ev): dbg( 'round end') wt,lt = 'ct','t' if ev['winner'] == '2': wt,lt = lt,wt for userid in playerlib.getUseridList('#human,#%s' % wt): players.increment(es.getplayersteamid(userid),'win') for userid in playerlib.getUseridList('#human,#%s' % lt): players.increment(es.getplayersteamid(userid),'lose') dcfg.sync() updateTimes() db.commit()
def dod_round_win(ev): wt,lt = 'ct','t' dbg( 'round won') if ev['team'] == '2': wt,lt = lt,wt for userid in playerlib.getUseridList('#human,#%s' % wt): players.increment(es.getplayersteamid(userid),'win') for userid in playerlib.getUseridList('#human,#%s' % lt): players.increment(es.getplayersteamid(userid),'lose') dcfg.sync() updateTimes() db.commit()
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_radio(ev): if not es.isbot(ev['userid']): dbg( 'player radiomsg') players.increment(sid(ev),'radio')
def hegrenade_detonate(ev): if not es.isbot(ev['userid']): dbg( 'hegrenade detonate') players.increment(sid(ev),'hegrenade_detonate')
def hostage_hurt(ev): if not es.isbot(ev['userid']): dbg( 'hostage hurt') players.increment(sid(ev),'hostage_hurt')
def dod_bomb_defused(ev): if not es.isbot(ev['userid']): dbg( 'bomb defused') players.increment(sid(ev),'bomb_defused')
def dod_capture_blocked(ev): if not es.isbot(ev['userid']): dbg( 'capture blocked') players.increment(sid(ev),'dod_blocks')
def bomb_dropped(ev): if not es.isbot(ev['userid']): dbg( 'bomb dropped') steamid = sid(ev) if steamid: players.increment(sid(ev),'bomb_dropped')
def vip_escaped(ev): if not es.isbot(ev['userid']): dbg( 'vip escaped') players.increment(sid(ev),'vip_escaped')
def hostage_stops_following(ev): if not es.isbot(ev['userid']): dbg( 'hostage stops following') players.increment(sid(ev),'hostage_stops_following')
def hostage_rescued(ev): if not es.isbot(ev['userid']): dbg( 'hostage rescued') players.increment(sid(ev),'hostage_rescued')
def server_addban(ev): if not es.isbot(ev['userid']): dbg( 'addban') if ev['networkid'] in players: players.increment(ev['networkid'],'ban')
def bomb_exploded(ev): if not es.isbot(ev['userid']): dbg( 'bomb exploded') players.increment(sid(ev),'bomb_exploded')
def bomb_pickup(ev): if not es.isbot(ev['userid']): dbg( 'bomb pickup') players.increment(sid(ev),'bomb_pickup')
def flashbang_detonate(ev): if not es.isbot(ev['userid']): dbg( 'flashbang detonate') players.increment(sid(ev),'flashbang_detonate')
def player_death(ev): dbg(' ') victimIsBot = bool(es.isbot(ev['userid'])) victimSteamid = ev['es_steamid'] victimTeam = ev['es_userteam'] attackerIsBot = bool(es.isbot(ev['attacker'])) attackerSteamid = ev['es_attackersteamid'] attackerTeam = ev['es_attackerteam'] wasTeamKill = True if attackerTeam == victimTeam else False isHeadshot = True if ev['headshot'] == '1' else False weapon = ev['weapon'] dbg('player_death') dbg('victim: %s (%s)' % (victimSteamid,victimIsBot)) dbg('attacker: %s (%s)' % (attackerSteamid,attackerIsBot)) dbg('teamkill: %s (%s,%s)' % (wasTeamKill,victimTeam,attackerTeam)) dbg('headshot: %s (%s)' % (isHeadshot,ev['headshot'])) dbg('weapon: %s' % weapon) if weapon in weapons: weapons.increment(weapon,'kills') if wasTeamKill: dbg( 'teamkill') if not victimIsBot: players.increment(victimSteamid,'teamkilled') if not attackerIsBot: players.increment(attackerSteamid,'teamkills') else: dbg( 'kill') if not victimIsBot: players.increment(victimSteamid,'deaths') if not attackerIsBot: players.increment(attackerSteamid,'kills') if not victimIsBot: dbg( 'weapon stats (death)') if 'death_%s' % weapon in players.columns: players.increment(victimSteamid,'death_%s' % weapon) else: dbg('Custom weapon, not in database...') if not attackerIsBot: dbg( 'weapon stats (kill)') if 'kill_%s' % weapon in players.columns: players.increment(attackerSteamid,'kill_%s' % weapon) else: dbg('Custom weapon, not in database...') if isHeadshot: players.increment(attackerSteamid,'headshots')
def hostage_follows(ev): if not es.isbot(ev['userid']): dbg( 'hostage follows') players.increment(sid(ev),'hostage_follows')