[nexuiz-commits] r7992 - in trunk/data: models/sprites qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Wed Sep 30 05:21:22 EDT 2009
Author: div0
Date: 2009-09-30 05:21:22 -0400 (Wed, 30 Sep 2009)
New Revision: 7992
Modified:
trunk/data/models/sprites/make-sprites.sh
trunk/data/qcsrc/server/ctf.qc
Log:
automatic waypoint for dropped flag (DO NOT PUT THIS IN 2.5.2, PEOPLE MAY HATE IT)
Modified: trunk/data/models/sprites/make-sprites.sh
===================================================================
--- trunk/data/models/sprites/make-sprites.sh 2009-09-30 06:54:56 UTC (rev 7991)
+++ trunk/data/models/sprites/make-sprites.sh 2009-09-30 09:21:22 UTC (rev 7992)
@@ -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: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc 2009-09-30 06:54:56 UTC (rev 7991)
+++ trunk/data/qcsrc/server/ctf.qc 2009-09-30 09:21:22 UTC (rev 7992)
@@ -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