drnoarmor.py

by druk on December 20th, 2009
No notes
Syntax: No syntax
Show lines - Hide lines - Show in textbox - Download
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()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS