def player_death(event_var): # =================== # Was weapon a knife # =================== if event_var['weapon'] != 'knife': return # =================== # Player Information # =================== attacker = int(event_var['attacker']) victim = int(event_var['userid']) userteam = event_var['es_userteam'] attackerteam = event_var['es_attackerteam'] # =================== # Check for suicide # =================== if (attackerteam == userteam) or (victim == attacker) or (attacker == 0): return ggAttacker = Player(attacker) # gg_levelup fires before this because internal events fire first, so: # If the player just got off of knife level, set their weapon to knife # and their level to knife level if attacker in recentlyOffKnife: attackerWeapon = "knife" attackerLevel = ggAttacker.level - 1 else: attackerWeapon = ggAttacker.weapon attackerLevel = ggAttacker.level # =================== # Attacker checks # =================== ggVictim = Player(victim) # Is the victim AFK? if ggVictim.afk(): # If we do not allow afk levelups through knife kills, stop here if not (int(gg_allow_afk_levels) and int(gg_allow_afk_levels_knife)): msg(attacker, 'VictimAFK', prefix=True) return # If the level difference is higher than the limit, stop here if ((attackerLevel - ggVictim.level) > int(gg_knife_pro_limit) and int(gg_knife_pro_limit) != 0): msg(attacker, 'LevelDifferenceLimit', {'limit': int(gg_knife_pro_limit)}, prefix=True) return # Don't skip hegrenade level unless gg_knife_pro_skip_nade is allowed if attackerWeapon == 'hegrenade' and not int(gg_knife_pro_skip_nade): # If gg_knife_pro_always_level is enabled, level down the victim if int(gg_knife_pro_always_level): level_down_victim(attacker, victim) msg(attacker, 'CannotSkipThisLevel', prefix=True) return # If the attacker is on knife level, stop here if attackerWeapon == 'knife': # If gg_knife_pro_always_level is enabled, level down the victim first if int(gg_knife_pro_always_level): level_down_victim(attacker, victim) return # =================== # Victim checks # =================== # Is victim on level 1? if ggVictim.level == 1: # Checking for always level mode if not int(gg_knife_pro_always_level): msg(attacker, 'VictimLevel1', prefix=True) return # =================== # Attacker Levelup # =================== # Can the attacker level up ? if not ggAttacker.preventlevel.levelup: # If the victim gets stopped by one of our checks before leveling down, # still fire the steal event here because there was still a knife pro # steal if not level_down_victim(attacker, victim): fire_gg_knife_steal(attacker, victim) # Play sound & levelup ggAttacker.playsound('levelsteal') ggAttacker.levelup(1, victim, 'steal')
def player_death(event_var): '''Called every time a player dies''' # Is the round active? if not ActiveInfo.round: # If not, do nothing return # Set player ids userid = int(event_var['userid']) attacker = int(event_var['attacker']) # Is the attacker on the server? if not es.exists('userid', attacker): return # Suicide check if (attacker == 0 or attacker == userid): return # TEAM-KILL CHECK if (event_var['es_userteam'] == event_var['es_attackerteam']): return # Get victim object ggVictim = Player(userid) # Get attacker object ggAttacker = Player(attacker) # Check the weapon was correct (Normal Kill) if event_var['weapon'] != ggAttacker.weapon: return # Don't continue if the victim is AFK if not int(gg_allow_afk_levels): # Make sure the victim is not a bot if not es.isbot(userid): # Is AFK ? if ggVictim.afk(): # Is their weapon an hegrenade # and do we allow AFK leveling? if (ggAttacker.weapon == 'hegrenade' and int(gg_allow_afk_levels_nade)): # Pass if we are allowing AFK leveling on nade level pass # Is their weapon a knife and do we allow AFK leveling? elif (ggAttacker.weapon == 'knife' and int(gg_allow_afk_levels_knife)): # Pass if we are allowing AFK leveling on knife level pass # None of the above checks apply --- continue with hudhint else: # Make sure the attacker is not a bot if es.isbot(attacker): return # Tell the attacker they victim was AFK ggAttacker.hudhint( 'PlayerAFK', {'player': event_var['es_username']}) return # Get the current level's multikill value multiKill = get_level_multikill(ggAttacker.level) # If set to 1, level the player up if multiKill == 1: # Level them up ggAttacker.levelup(1, userid, 'kill') return # Multikill value is > 1 ... add 1 to the multikill attribute ggAttacker.multikill += 1 # Finished the multikill if ggAttacker.multikill >= multiKill: # Level them up ggAttacker.levelup(1, userid, 'kill') # Increment their current multikill value else: # Play the multikill sound ggAttacker.playsound('multikill')