drnoarmor.py
No notes
Syntax:
No syntax
from GamePlay import PYBaseGamePlay
import GEEntity, GEPlayer, GEUtil, GEWeapon, GEMPGameRules, GEGlobal
class DrNoArmor(PYBaseGamePlay):
def __init__(self):
super(DrNoArmor, self).__init__()
def GetIdent(self):
return "DrNoArmor"
def GetPrintName(self):
return "Dr. No Armor"
def GetHelpString(self):
return "#GES_GP_DrNoArmor_HELP"
def GetGameDescription(self):
if GEMPGameRules.IsTeamplay():
return "Team DrNoArmor"
else:
return "DrNoArmor"
def GetTeamPlay(self):
return GEGlobal.TEAMPLAY_TOGGLE
def OnLoadGamePlay(self):
self.CreateCVar("dm_fraglimit", "0", "Enable frag limit for DrNoArmor.")
self.LoadConfig()
def PreRoundBegin(self):
GEMPGameRules.SetAllowTeamSpawns( False )
GEMPGameRules.ResetAllPlayersScores()
def PostRoundBegin(self):
GEMPGameRules.DisableArmorSpawns()
def PostPlayerSpawn(self, player):
player.SetArmor( GEGlobal.GE_MAX_ARMOR )
def OnPlayerKilled(self, victim, killer, weapon):
#what exactly got killed?
if not victim:
return
#death by world
if not killer:
victim.IncrementScore( -1 )
return
if victim.GetId() == killer.GetId():
killer.IncrementScore( -1 )
elif GEMPGameRules.IsTeamplay() and killer.GetTeamNumber() == victim.GetTeamNumber():
killer.IncrementScore( -1 )
else:
# In DM we add TEAM and PLAYER scores on a kill
# We don't care if teamplay is enabled, if its not this will be ignored
team = GEMPGameRules.GetTeam(killer.GetTeamNumber())
team.IncrementScore( 1 )
killer.IncrementScore( 1 )
def OnThink(self):
fragLimit = int(GEUtil.GetCVarValue("dm_fraglimit"))
if fragLimit != 0:
if GEMPGameRules.IsTeamplay():
teamJ = GEMPGameRules.GetTeam(GEGlobal.TEAM_JANUS);
teamM = GEMPGameRules.GetTeam(GEGlobal.TEAM_MI6);
jScore = teamJ.GetRoundsWon() + teamJ.GetScore()
mScore = teamM.GetRoundsWon() + teamM.GetScore()
if jScore >= fragLimit or mScore >= fragLimit:
GEMPGameRules.EndMatch()
else:
for i in range(32):
if not GEUtil.IsValidPlayerIndex(i):
continue
player = GEUtil.GetMPPlayer(i)
if (player.GetMatchScore() + player.GetScore()) >= fragLimit:
GEMPGameRules.EndMatch()