[nexuiz-commits] r8159 - in branches/nexuiz-2.0/data: models/sprites qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Oct 20 05:06:02 EDT 2009


Author: div0
Date: 2009-10-20 05:06:01 -0400 (Tue, 20 Oct 2009)
New Revision: 8159

Modified:
   branches/nexuiz-2.0/data/models/sprites/make-sprites.sh
   branches/nexuiz-2.0/data/qcsrc/server/ctf.qc
Log:
r7992 | div0 | 2009-09-30 05:21:22 -0400 (Wed, 30 Sep 2009) | 2 lines
automatic waypoint for dropped flag (DO NOT PUT THIS IN 2.5.2, PEOPLE MAY HATE IT)


Modified: branches/nexuiz-2.0/data/models/sprites/make-sprites.sh
===================================================================
--- branches/nexuiz-2.0/data/models/sprites/make-sprites.sh	2009-10-20 09:05:11 UTC (rev 8158)
+++ branches/nexuiz-2.0/data/models/sprites/make-sprites.sh	2009-10-20 09:06:01 UTC (rev 8159)
@@ -144,6 +144,7 @@
 sprite bluebase           "Blue Base"     0050ff 000000 0.0
 sprite danger             "DANGER"        ff0000 ffff00 0.0
 sprite flagcarrier        "Flag carrier"  ffff00 000000 0.0
+sprite flagdropped        "Dropped flag"  00ffff 000000 0.0
 sprite helpme             "Help me!"      ffff00 ff0000 0.0
 sprite here               "Here"          00ff00 000000 0.0
 sprite key-dropped        "Dropped key"   00ffff 000000 0.0

Modified: branches/nexuiz-2.0/data/qcsrc/server/ctf.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/ctf.qc	2009-10-20 09:05:11 UTC (rev 8158)
+++ branches/nexuiz-2.0/data/qcsrc/server/ctf.qc	2009-10-20 09:06:01 UTC (rev 8159)
@@ -102,7 +102,7 @@
 	centerprint_atprio(other, CENTERPRIO_SHIELDING, "^3You are ^4shielded^3 from the flag\n^3for ^1too many unsuccessful attempts^3 to capture.\n\n^3Get some defensive scores before trying again.");
 }
 
-void ctf_captureshield_spawn()
+void ctf_flag_spawnstuff()
 {
 	entity e;
 	e = spawn();
@@ -119,6 +119,21 @@
 	setmodel(e, "models/ctf/shield.md3");
 	e.scale = 0.5;
 	setsize(e, e.scale * e.mins, e.scale * e.maxs);
+
+	waypoint_spawnforitem_force(self, self.origin);
+	self.nearestwaypointtimeout = 0; // activate waypointing again
+	self.basewaypoint = self.nearestwaypoint;
+
+	if(self.team == COLOR_TEAM1)
+	{
+		WaypointSprite_SpawnFixed("redbase", self.origin + '0 0 61', self, sprite);
+		WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, colormapPaletteColor(COLOR_TEAM1 - 1, FALSE));
+	}
+	else
+	{
+		WaypointSprite_SpawnFixed("bluebase", self.origin + '0 0 61', self, sprite);
+		WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, colormapPaletteColor(COLOR_TEAM2 - 1, FALSE));
+	}
 }
 
 float ctf_score_value(string parameter)
@@ -184,7 +199,8 @@
 		droptofloor();
 		self.movetype = MOVETYPE_TOSS;
 	}
-	InitializeEntity(self, ctf_captureshield_spawn, INITPRIO_SETLOCATION);
+
+	InitializeEntity(self, ctf_flag_spawnstuff, INITPRIO_SETLOCATION);
 };
 
 void LogCTF(string mode, float flagteam, entity actor)
@@ -207,6 +223,9 @@
 		return;
 	}
 
+	if(e.waypointsprite_attachedforcarrier)
+		WaypointSprite_DetachCarrier(e);
+
 	setattachment(e, world, "");
 	e.damageforcescale = 0;
 	e.takedamage = DAMAGE_NO;
@@ -281,6 +300,7 @@
 	ctf_captureshield_update(p, 0); // shield only
 	e.playerid = attacker.playerid;
 	e.ctf_droptime = time;
+	WaypointSprite_Spawn("flagdropped", 0, 0, e, '0 0 1' * 61, world, COLOR_TEAM1 + COLOR_TEAM2 - e.team, e, waypointsprite_attachedforcarrier, FALSE);
 	
 	if(p.waypointsprite_attachedforcarrier)
 	{
@@ -587,6 +607,9 @@
 		}
 		else if (!other.flagcarried && (other.playerid != self.dropperid || time > self.ctf_droptime + cvar("g_balance_ctf_delay_collect")))
 		{
+			if(self.waypointsprite_attachedforcarrier)
+				WaypointSprite_DetachCarrier(self);
+
 			if (cvar("g_ctf_flag_pickup_effects")) // field pickup effect
 				pointparticles(particleeffectnum("smoke_ring"), 0.5 * (self.absmin + self.absmax), '0 0 0', 1);
 			
@@ -709,6 +732,8 @@
 void item_flag_reset()
 {
 	DropFlag(self, world, world);
+	if(self.waypointsprite_attachedforcarrier)
+		WaypointSprite_DetachCarrier(self);
 	ReturnFlag(self);
 }
 
@@ -826,13 +851,6 @@
 	// From Spidflisk
 	item_flag_postspawn();
 
-	waypoint_spawnforitem_force(self, self.origin);
-	self.nearestwaypointtimeout = 0; // activate waypointing again
-	self.basewaypoint = self.nearestwaypoint;
-
-	WaypointSprite_SpawnFixed("redbase", self.origin + '0 0 37', self, sprite);
-	WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, colormapPaletteColor(COLOR_TEAM1 - 1, FALSE));
-
 	precache_model("models/ctf/shield.md3");
 	precache_model("models/ctf/shockwavetransring.md3");
 
@@ -933,14 +951,8 @@
 	// From Spidflisk
 	item_flag_postspawn();
 
-	waypoint_spawnforitem_force(self, self.origin);
-	self.nearestwaypointtimeout = 0; // activate waypointing again
-	self.basewaypoint = self.nearestwaypoint;
-
-	WaypointSprite_SpawnFixed("bluebase", self.origin + '0 0 37', self, sprite);
-	WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, colormapPaletteColor(COLOR_TEAM2 - 1, FALSE));
-
 	precache_model("models/ctf/shield.md3");
+	precache_model("models/ctf/shockwavetransring.md3");
 
 	self.reset = item_flag_reset;
 };



More information about the nexuiz-commits mailing list