Compare commits
	
		
			2 Commits
		
	
	
		
			c140ffe07d
			...
			6933e8bf68
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6933e8bf68 | |||
| 3d627c7530 | 
|  | @ -8,6 +8,10 @@ alias pronoun_xey    "impulse 26" | ||||||
| alias pronoun_ze_hir "impulse 27" | alias pronoun_ze_hir "impulse 27" | ||||||
| alias pronoun_ze_zir "impulse 28" | alias pronoun_ze_zir "impulse 28" | ||||||
| 
 | 
 | ||||||
|  | set sc_cheats    0 | ||||||
|  | set sc_lives     0 | ||||||
|  | set sc_dist_ammo 0 | ||||||
|  | 
 | ||||||
| echo "To change your pronouns in-game use one of the pronoun_ commands." | echo "To change your pronouns in-game use one of the pronoun_ commands." | ||||||
| echo "You can get a list by typing 'pronoun_' and pressing tab." | echo "You can get a list by typing 'pronoun_' and pressing tab." | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -301,6 +301,9 @@ void() trigger_changelevel = { | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| void() become_spectator = { | void() become_spectator = { | ||||||
|  | 	float not_dead; | ||||||
|  | 	entity pl; | ||||||
|  | 
 | ||||||
| 	self.health       = self.max_health; | 	self.health       = self.max_health; | ||||||
| 	self.armortype    = 0; | 	self.armortype    = 0; | ||||||
| 	self.armorvalue   = 0; | 	self.armorvalue   = 0; | ||||||
|  | @ -319,6 +322,16 @@ void() become_spectator = { | ||||||
| 	self.frame        = 0; | 	self.frame        = 0; | ||||||
| 	self.modelindex   = modelindex_eyes; | 	self.modelindex   = modelindex_eyes; | ||||||
| 	W_SetCurrentAmmo(); | 	W_SetCurrentAmmo(); | ||||||
|  | 
 | ||||||
|  | 	pl = find(world, classname, "player"); | ||||||
|  | 	while(pl != world) { | ||||||
|  | 		not_dead += pl.lives; | ||||||
|  | 		pl = find(pl, classname, "player"); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if(!not_dead) { | ||||||
|  | 		all_players_are_dead = time; | ||||||
|  | 	} | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| void() respawn = { | void() respawn = { | ||||||
|  | @ -339,7 +352,7 @@ void() respawn = { | ||||||
| 		player_respawned = TRUE; | 		player_respawned = TRUE; | ||||||
| 		PutClientInServer(); | 		PutClientInServer(); | ||||||
| 	} else { | 	} else { | ||||||
| 		// restart the entire server | 		// restart the map | ||||||
| 		localcmd("restart\n"); | 		localcmd("restart\n"); | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -269,6 +269,8 @@ string(string s) precache_file2 = #77; // registered version only | ||||||
| // set parm1... to the values at level start for coop respawn | // set parm1... to the values at level start for coop respawn | ||||||
| void(entity e) setspawnparms = #78; | void(entity e) setspawnparms = #78; | ||||||
| 
 | 
 | ||||||
|  | float(string s) checkextension = #99; | ||||||
|  | 
 | ||||||
| // constants -----------------------------------------------------------------| | // constants -----------------------------------------------------------------| | ||||||
| 
 | 
 | ||||||
| const vector VEC_ORIGIN = '0 0 0'; | const vector VEC_ORIGIN = '0 0 0'; | ||||||
|  | @ -630,6 +632,9 @@ float sf_lives; | ||||||
| float sf_dist_ammo; | float sf_dist_ammo; | ||||||
| 
 | 
 | ||||||
| float player_respawned; | float player_respawned; | ||||||
|  | float all_players_are_dead; | ||||||
|  | 
 | ||||||
|  | float ext_con_set; | ||||||
| 
 | 
 | ||||||
| // fields --------------------------------------------------------------------| | // fields --------------------------------------------------------------------| | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,6 +17,12 @@ void() worldspawn = { | ||||||
| 	lastspawn = world; | 	lastspawn = world; | ||||||
| 	InitBodyQue(); | 	InitBodyQue(); | ||||||
| 
 | 
 | ||||||
|  | 	if(cvar("pr_checkextension")) { | ||||||
|  | 		if(checkextension("DP_CON_SET")) { | ||||||
|  | 			ext_con_set = TRUE; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	// custom map attributes | 	// custom map attributes | ||||||
| 	if(self.model == "maps/e1m8.bsp") { | 	if(self.model == "maps/e1m8.bsp") { | ||||||
| 		cvar_set("sv_gravity", "100"); | 		cvar_set("sv_gravity", "100"); | ||||||
|  | @ -179,16 +185,37 @@ void() worldspawn = { | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| void() StartFrame = { | void() StartFrame = { | ||||||
| 	float temp1flag; | 	entity pl; | ||||||
|  | 	float temp1flag, delta; | ||||||
| 
 | 
 | ||||||
| 	teamplay   = cvar("teamplay"); | 	teamplay   = cvar("teamplay"); | ||||||
| 	skill      = cvar("skill"); | 	skill      = cvar("skill"); | ||||||
| 	temp1flag  = cvar("temp1"); |  | ||||||
| 	framecount = framecount + 1; | 	framecount = framecount + 1; | ||||||
| 
 | 
 | ||||||
| 	sf_cheats    = (temp1flag & SF_CHEATS) != 0; | 	if(ext_con_set) { | ||||||
| 	sf_lives     = bit_shift_right(temp1flag & SF_LIVES_MSK, SF_LIVES_BEG); | 		sf_cheats    = cvar("sc_cheats"); | ||||||
| 	sf_dist_ammo = (temp1flag & SF_DIST_AMMO) != 0; | 		sf_lives     = cvar("sc_lives"); | ||||||
|  | 		sf_dist_ammo = cvar("sc_dist_ammo"); | ||||||
|  | 	} else { | ||||||
|  | 		temp1flag    = cvar("temp1"); | ||||||
|  | 		sf_cheats    = (temp1flag & SF_CHEATS) != 0; | ||||||
|  | 		sf_lives     = bit_shift_right(temp1flag & SF_LIVES_MSK, SF_LIVES_BEG); | ||||||
|  | 		sf_dist_ammo = (temp1flag & SF_DIST_AMMO) != 0; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if(all_players_are_dead) { | ||||||
|  | 		delta = time - all_players_are_dead; | ||||||
|  | 		if(delta >= 9.95) { | ||||||
|  | 			localcmd("restart\n"); | ||||||
|  | 		} else if(rint(delta * 10) == rint(delta) * 10) { | ||||||
|  | 			pl = find(world, classname, "player"); | ||||||
|  | 			while(pl != world) { | ||||||
|  | 				centerprint(pl, "Mission failed.\nRestarting in ", | ||||||
|  | 				            ftos(10 - rint(delta)), " seconds"); | ||||||
|  | 				pl = find(pl, classname, "player"); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								todo
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								todo
									
									
									
									
									
								
							|  | @ -9,12 +9,12 @@ rename all functions to be lower_underscore | ||||||
| 
 | 
 | ||||||
| core features: | core features: | ||||||
| 
 | 
 | ||||||
| add registercvar support | all done | ||||||
| restart map after 10 seconds when everyone is dead |  | ||||||
| 
 | 
 | ||||||
| useful features: | useful features: | ||||||
| 
 | 
 | ||||||
| configurable enemy stats | configurable enemy stats | ||||||
|  | impulse command for spectating | ||||||
| indicators for where other players are | indicators for where other players are | ||||||
| users can cancel map ends ("<name> initiated travel to <mapname>") | users can cancel map ends ("<name> initiated travel to <mapname>") | ||||||
| 
 | 
 | ||||||
|  | @ -29,9 +29,11 @@ third person player weapon models | ||||||
| 
 | 
 | ||||||
| done: | done: | ||||||
| 
 | 
 | ||||||
|  | add registercvar support | ||||||
| corpse pickups have keys | corpse pickups have keys | ||||||
| custom pronouns | custom pronouns | ||||||
| distributed ammo | distributed ammo | ||||||
| enforcers are broken | enforcers are broken | ||||||
| lives counting | lives counting | ||||||
| no friendly fire | no friendly fire | ||||||
|  | restart map after 10 seconds when everyone is dead | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user