All pastes #734646 Raw Edit

Mine

public c v1 · immutable
·published 2007-10-12 22:01 UTC
rendered paste body
void() state_frame ={	local entity a;	local float c;	local string numstring, steams, leave_s, str;	self.classname = "player";	self.allowfire = FALSE;	a = arena_find(self.arena);	if (self.state == STATE_CHOOSING)	{		if (self.admin_menu)			return;		if (self.wannabe_admin)			return;		if (self.team2 != TEAM_SPECTATOR)			self.team2 = TEAM_SPECTATOR;		spectator_set(FALSE);		self.arena = 0;		if ((time > self.menu_time) && (!self.motd_time))		{			self.menu_time = time + 1.5;			str = "\b- Arena Select -\b\n";			if (self.menu_selection == 1)			{				str = strcat(str, "\b>\b ");				str = strcat(str, substring(world.menu_arena1, 0, strlen(world.menu_arena1) - 1));				str = strcat(str, " \b<\b\n");			}			else				str = strcat(str, world.menu_arena1);			if (self.menu_selection == 2)			{				str = strcat(str, "\b>\b ");				str = strcat(str, substring(world.menu_arena2, 0, strlen(world.menu_arena2) - 1));				str = strcat(str, " \b<\b\n");			}			else				str = strcat(str, world.menu_arena2);			if (self.menu_selection == 3)			{				str = strcat(str, "\b>\b ");				str = strcat(str, substring(world.menu_arena3, 0, strlen(world.menu_arena3) - 1));				str = strcat(str, " \b<\b\n");			}			else				str = strcat(str, world.menu_arena3);			if (self.menu_selection == 4)			{				str = strcat(str, "\b>\b ");				str = strcat(str, substring(world.menu_arena4, 0, strlen(world.menu_arena4) - 1));				str = strcat(str, " \b<\b\n");			}			else				str = strcat(str, world.menu_arena4);			str = strcat(str, "\nTo bind the menu keys, type:\n/cmd menu bind");			centerprint(self, str);		}		if (self.menu_enter == 1)		{			self.menu_enter = 0;			self.arena = self.menu_selection;			self.menu_selection = 1;			state_set(STATE_SPECTATING);			spectator_set(TRUE);			ArenaChange(self, TRUE);		}	}	else if (self.state == STATE_SPECTATING)	{		if (self.team2 != TEAM_SPECTATOR)			self.team2 = TEAM_SPECTATOR;		spectator_set(TRUE);		str = "\b- Spectating -\b\n";		if (self.arenaent.p_count == 1)		{			if (!self.admin_menu)			if (!self.wannabe_admin)			if ((time > self.menu_time) && (!self.motd_time))			{				if (self.menu_selection == 1)					str = strcat(str, "\b>\b \[\1\] Play        \b<\b\n\n\n");				else					str = strcat(str, "\[\1\] Play       \n\n\n");				if (self.menu_selection == 9)					str = strcat(str, "\b>\b \[\9\] Leave Arena \b<\b");				else					str = strcat(str, "\[\9\] Leave Arena");				if (self.spec_type == SPEC_THIRD_PERSON)				{					str = strcat(str, "\n\nTracking ");					str = strcat(str, self.camtarget.netname);					str = strcat(str, "\nStatus: ");					str = strcat(str, self.camtargetstatus);					self.menu_time = time; // Electro - refresh more often to keep up with targetstatus changing values				}				else				{					self.menu_time = time + 1;				}				centerprint(self, str);			}			if (self.menu_enter && (!self.admin_menu) && (!self.wannabe_admin))			{				self.menu_enter = 0;				if (self.menu_selection == 1)				{					self.menu_selection = 8;					self.chosenteam = 1;					state_set(STATE_WAITING);				}				else if (self.menu_selection == 9)				{					self.menu_selection = 1;					ArenaChange(self, FALSE);					state_set(STATE_CHOOSING);					self.arena = 0;					PrintArenaPlayers(self);				}			}		}		else		{			if (!self.admin_menu)			if (!self.wannabe_admin)			if ((time > self.menu_time) && (!self.motd_time))			{				if ((self.arenaent.ammo_shells > 0) || (self.arenaent.ammo_nails > 0)) // Electro - rounds have been played				{					if (self.arenaent.ammo_shells > self.arenaent.ammo_nails) // red team leads						str = strcat(str, "RED \bteam leads\b\n\n");					else if (self.arenaent.ammo_shells < self.arenaent.ammo_nails)						str = strcat(str, "BLUE \bteam leads\b\n\n");					else						str = strcat(str, "Teams are \btied\b\n\n");				}				if (self.spec_type == SPEC_THIRD_PERSON)				{					if (self.menu_selection == 1)						str = strcat(str, "\b>\b \[\1\] Join Red Team  \b<\b\n");					else						str = strcat(str, "\[\1\] Join Red Team \n");					if (self.menu_selection == 2)						str = strcat(str, "\b>\b \[\2\] Join Blue Team \b<\b\n");					else						str = strcat(str, "\[\2\] Join Blue Team\n");					if (world.arena)					{						if (self.menu_selection == 9)							str = strcat(str, "\b>\b \[\9\] Leave Arena         \b<\b\n");						else							str = strcat(str, "\[\9\] Leave Arena        \n");					}					str = strcat(str, "\nTracking ");					str = strcat(str, self.camtarget.netname);					str = strcat(str, "\nStatus: ");					str = strcat(str, self.camtargetstatus);					centerprint(self, str);					self.menu_time = time + 0.01;				}				else				{					local string red_c, blue_c;					red_c  = numberstring20(self.arenaent.red_count);					blue_c = numberstring20(self.arenaent.blue_count);					if (self.menu_selection == 1)					{						str = strcat(str, "\b>\b \[\1\] \b[\b");						str = strcat(str, red_c);						str = strcat(str, "\b]\b Join Red Team  \b<\b\n");					}					else					{						str = strcat(str, "\[\1\] \b[\b");						str = strcat(str, red_c);						str = strcat(str, "\b]\b Join Red Team \n");					}					if (self.menu_selection == 2)					{						str = strcat(str, "\b>\b \[\2\] \b[\b");						str = strcat(str, blue_c);						str = strcat(str, "\b]\b Join Blue Team \b<\b");					}					else					{						str = strcat(str, "\[\2\] \b[\b");						str = strcat(str, blue_c);						str = strcat(str, "\b]\b Join Blue Team");					}					if (world.arena)					{						if (self.menu_selection == 9)							str = strcat(str, "\n\n\b>\b \[\9\] Leave Arena     \b<\b\n");						else							str = strcat(str, "\n\n\[\9\] Leave Arena    \n");					}					centerprint(self, str);					self.menu_time = time + 1;				}			}			if (self.menu_enter && (!self.admin_menu) && (!self.wannabe_admin))			{				self.menu_enter = 0;				if (self.menu_selection == 1) 				{					self.menu_selection = 8;					self.chosenteam = TEAM_RED;					state_set(STATE_WAITING);					arena_bprint(self.arena, self.netname);					arena_bprint(self.arena, " \bhas joined team\b red\n");				}				else if (self.menu_selection == 2)				{					self.menu_selection = 8;					self.chosenteam = TEAM_BLUE;					state_set(STATE_WAITING);					arena_bprint(self.arena, self.netname);					arena_bprint(self.arena, " \bhas joined team\b blue\n");				}				else if (self.menu_selection == 9 && (world.arena))				{					self.menu_selection = 1;					ArenaChange(self, FALSE);					state_set(STATE_CHOOSING);					self.arena = 0;					self.chosenteam = self.team = self.team2 = TEAM_SPECTATOR;					PrintArenaPlayers(self);				}			}		}	}	else if (self.state == STATE_WAITING || self.state == STATE_DEAD)	{		self.team2 = 1;		spectator_set(TRUE);		// clear the dead flag if the round is over so round replay won't find people who died long ago		if (self.state == STATE_DEAD)		if (a.state != ARENA_STATE_PLAYING)			self.state = STATE_WAITING;		if (!self.admin_menu)		if (!self.wannabe_admin)		if ((time > self.menu_time) && (!self.motd_time))		{			self.menu_time = time + 1;			str = "";			if (time < a.wait)			{				self.menu_time = time + (a.wait - time) - floor(a.wait - time);				c = floor(a.wait - time) + 1;				numstring = ftos(c);				if (self.arenaent.p_count > 1)				{					if ((self.arenaent.ammo_shells > 0) || (self.arenaent.ammo_nails > 0)) // Electro - rounds have been played					{						if (self.arenaent.ammo_shells > self.arenaent.ammo_nails) // red team leads							str = strcat(str, "RED \bteam leads\b\n\n");						else if (self.arenaent.ammo_shells < self.arenaent.ammo_nails)							str = strcat(str, "BLUE \bteam leads\b\n\n");						else							str = strcat(str, "Teams are \btied\b\n\n");					}				}				str = strcat(str, "\b- Watching -\b\n\n\n");				if (self.spec_type == SPEC_THIRD_PERSON)				{					if (world.arena)					{						if (self.menu_selection == 8)							str = strcat(str, "\b->\b \[\8\] Spectate    \b<-\b\n");						else							str = strcat(str, "\[\8\] Spectate   \n");						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Arena \b<-\b\n\n\n");						else							str = strcat(str, "\[\9\] Leave Arena\n\n\n");					}					else					{						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Team \b<-\b\n\n\n");						else							str = strcat(str, "\[\9\] Leave Team\n\n\n");					}					str = strcat(str, numstring);					str = strcat(str, " \bseconds until start\b\n\nTracking ");					str = strcat(str, self.camtarget.netname);					str = strcat(str, "\nStatus: ");					str = strcat(str, self.camtargetstatus);					centerprint(self, str);				}				else				{					if (world.arena)					{						if (self.menu_selection == 8)							str = strcat(str, "\b->\b \[\8\] Spectate    \b<-\b\n");						else							str = strcat(str, "\[\8\] Spectate   \n");						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Arena \b<-\b\n\n\n");						else							str = strcat(str, "\[\9\] Leave Arena\n\n\n");					}					else					{						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Team \b<-\b\n\n\n");						else							str = strcat(str, "\[\9\] Leave Team\n\n\n");					}					str = strcat(str, numstring);					str = strcat(str, " \bseconds until start\b");					centerprint(self, str);				}			}			else			{				str = strcat(str, "\b- Watching -\b\n\n\n");				if (self.spec_type == SPEC_THIRD_PERSON)				{					if (world.arena)					{						if (self.menu_selection == 8)							str = strcat(str, "\b->\b \[\8\] Spectate    \b<-\b\n");						else							str = strcat(str, "\[\8\] Spectate   \n");						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Arena \b<-\b");						else							str = strcat(str, "\[\9\] Leave Arena");					}					else					{						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Team \b<-\b");						else							str = strcat(str, "\[\9\] Leave Team");					}					str = strcat(str, "\n\nTracking ");					str = strcat(str, self.camtarget.netname);					str = strcat(str, "\nStatus: ");					str = strcat(str, self.camtargetstatus);					centerprint(self, str);				}				else				{					if (world.arena)					{						if (self.menu_selection == 8)							str = strcat(str, "\b->\b \[\8\] Spectate    \b<-\b\n");						else							str = strcat(str, "\[\8\] Spectate   \n");						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Arena \b<-\b");						else							str = strcat(str, "\[\9\] Leave Arena");					}					else					{						if (self.menu_selection == 9)							str = strcat(str, "\b->\b \[\9\] Leave Team \b<-\b");						else							str = strcat(str, "\[\9\] Leave Team ");					}					centerprint(self, str);				}			}		}		if (self.menu_enter && (!self.admin_menu) && (!self.wannabe_admin))		{			self.menu_enter = 0;			if (self.menu_selection == 8)			{				if (world.arena)					state_set(STATE_SPECTATING);				self.menu_selection = 1;				self.chosenteam = self.team = self.team2 = TEAM_SPECTATOR;			}			else if (self.menu_selection == 9)			{				self.menu_selection = 1;				if (world.arena)				{					ArenaChange(self, FALSE);					state_set(STATE_CHOOSING);					self.arena = 0;				}				else				{					state_set(STATE_SPECTATING);					spectator_set(TRUE);				}				self.chosenteam = self.team = self.team2 = TEAM_SPECTATOR;			}		}	}	else if (self.state == STATE_PLAYING)	{		self.team2 = self.chosenteam;		spectator_set(FALSE);		// update position in waiting line for next round (older times are closer to front of line)		if (a.state == ARENA_STATE_PLAYING || a.state == ARENA_STATE_WARMUP)			self.arena_line = time;		else			state_set(STATE_WAITING);	}	else	{		bprint(PRINT_HIGH, "\berror\b: self.state not valid, resetting to STATE_CHOOSING\n");		self.arena = 0;		self.forcerespawn = TRUE;		state_set(STATE_CHOOSING);		self.chosenteam = self.team = self.team2 = TEAM_SPECTATOR;	}	self.arenaent = arena_find(self.arena);};