r1759 - branches/nexuiz-2.0/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Jul 14 17:39:26 EDT 2006


Author: div0
Date: 2006-07-14 17:39:26 -0400 (Fri, 14 Jul 2006)
New Revision: 1759

Modified:
   branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc
   branches/nexuiz-2.0/data/qcsrc/server/constants.qh
   branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_common.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
Log:
_scoreboard cvar, max shot distance


Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc	2006-07-14 05:04:29 UTC (rev 1758)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc	2006-07-14 21:39:26 UTC (rev 1759)
@@ -120,7 +120,7 @@
 			if(imp == 19)
 			{
 				makevectors(self.v_angle);
-				traceline(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 8192, FALSE, self);
+				traceline(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * MAX_SHOT_DISTANCE, FALSE, self);
 				if (trace_fraction < 1)
 					printsurfaceinfo(trace_ent, trace_endpos);
 			}

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc	2006-07-14 05:04:29 UTC (rev 1758)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc	2006-07-14 21:39:26 UTC (rev 1759)
@@ -24,7 +24,7 @@
 {
 	local vector trueaimpoint;
 
-	traceline_hitcorpse(self, self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 8192, MOVE_NOMONSTERS, self);
+	traceline_hitcorpse(self, self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * MAX_SHOT_DISTANCE, MOVE_NOMONSTERS, self);
 	trueaimpoint = trace_endpos;
 
 	// if aiming at a player and the original trace won't hit that player
@@ -114,7 +114,7 @@
 
 	makevectors(self.owner.v_angle); // set v_forward etc to the direction the player is looking
 	offset = '0 0 26' + v_right*3;
-	traceline(self.owner.origin + offset, self.owner.origin + offset + v_forward * 8192, FALSE, self); // trace forward until you hit something, like a player or wall
+	traceline(self.owner.origin + offset, self.owner.origin + offset + v_forward * MAX_SHOT_DISTANCE, FALSE, self); // trace forward until you hit something, like a player or wall
 	setorigin(e, trace_endpos + v_forward*8); // move me to where the traceline ended
 	if(trace_plane_normal != '0 0 0')
 		e.angles = vectoangles(trace_plane_normal);

Modified: branches/nexuiz-2.0/data/qcsrc/server/constants.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/constants.qh	2006-07-14 05:04:29 UTC (rev 1758)
+++ branches/nexuiz-2.0/data/qcsrc/server/constants.qh	2006-07-14 21:39:26 UTC (rev 1759)
@@ -209,3 +209,4 @@
 float FLAG_CARRY = 2;
 float FLAG_DROPPED = 3;
 
+float MAX_SHOT_DISTANCE = 32768;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2006-07-14 05:04:29 UTC (rev 1758)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2006-07-14 21:39:26 UTC (rev 1759)
@@ -918,6 +918,10 @@
 	if((player_count == 1 && lms_dead_count == 1))
 	  	return WINNING_YES; // All dead... (n:n is handled by the test above)
 
+	dprint("player count = "); dprint(ftos(player_count));
+	dprint(", dead count = "); dprint(ftos(lms_dead_count));
+	dprint("\n");
+
 	// When we get here, we have at least two players who are actually LIVING,
 	// or one player who is still waiting for a victim to join the server. Now
 	// check if the top two players have equal score.
@@ -1093,7 +1097,56 @@
 	return WinningConditionBase_Teamplay(fraglimit);
 }
 
+void PrintScoreboardFor(string name, string colorcode, float whichteam)
+{
+	entity head;
+	float fragtotal;
+	string s;
+	float found;
+	found = FALSE;
+	head = find(world, classname, "player");
+	while(head)
+	{
+		if(!whichteam || head.team == whichteam)
+		{
+			if(name != "")
+				if(!found)
+					ServerConsoleEcho(strcat(" ", colorcode, name, ":"), FALSE);
+			found = TRUE;
+			fragtotal = fragtotal + head.frags;
+			s = ftos(head.frags);
+			s = strcat(s, "/", ftos(head.deaths));
+			s = strcat(s, " @ ", ftos(head.ping));
+			if(clienttype(head) == CLIENTTYPE_BOT)
+				s = strcat(s, "botms");
+			else
+				s = strcat(s, "ms");
+			ServerConsoleEcho(strcat("  ", colorcode, head.netname, colorcode, " (", s, ")"), TRUE);
+		}
+		head = find(head, classname, "player");
+	}
+	if(whichteam && found)
+		ServerConsoleEcho(strcat(colorcode, "  (total: ", ftos(fragtotal), ")"), FALSE);
+}
 
+void PrintScoreboard()
+{
+	ServerConsoleEcho("Scoreboard:", FALSE);
+	if(teams_matter)
+	{
+		PrintScoreboardFor("Red", "^1", COLOR_TEAM1);
+		PrintScoreboardFor("Blue", "^4", COLOR_TEAM2);
+		PrintScoreboardFor("Pink", "^6", COLOR_TEAM3);
+		PrintScoreboardFor("Yellow", "^3", COLOR_TEAM4);
+	}
+	else
+	{
+		PrintScoreboardFor("", "^7", 0);
+	}
+	ServerConsoleEcho(".", FALSE);
+}
+
+
 /*
 ============
 CheckRules_World
@@ -1123,6 +1176,12 @@
 
 	DumpStats();
 
+	if(cvar("_scoreboard"))
+	{
+		cvar_set("_scoreboard", "0");
+		PrintScoreboard();
+	}
+
 	timelimit = cvar("timelimit") * 60;
 	fraglimit = cvar("fraglimit");
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_common.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_common.qc	2006-07-14 05:04:29 UTC (rev 1758)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_common.qc	2006-07-14 21:39:26 UTC (rev 1759)
@@ -139,7 +139,7 @@
 
 	// use traceline_hitcorpse to make sure it can hit gibs and corpses too
 	dir = dir + randomvec() * spread;
-	end = start + dir * 8192;
+	end = start + dir * MAX_SHOT_DISTANCE;
 	traceline_hitcorpse (self, start, end, FALSE, self);
 
 	if (tracer)

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc	2006-07-14 05:04:29 UTC (rev 1758)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc	2006-07-14 21:39:26 UTC (rev 1759)
@@ -6,9 +6,9 @@
 
 	// assure that nexdamage is high enough in minstagib
 	if (cvar("g_minstagib"))
-		FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * 8192, 1000, IT_NEX);
+		FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, 1000, IT_NEX);
 	else
-		FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * 8192, cvar("g_balance_nex_damage"), IT_NEX);
+		FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, cvar("g_balance_nex_damage"), IT_NEX);
 
 	// show as if shot started outside of gun
 	// muzzleflash light




More information about the nexuiz-commits mailing list