r4577 - in trunk/data/qcsrc: client server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu Oct 2 08:00:55 EDT 2008
Author: div0
Date: 2008-10-02 08:00:55 -0400 (Thu, 02 Oct 2008)
New Revision: 4577
Modified:
trunk/data/qcsrc/client/Main.qc
trunk/data/qcsrc/server/keyhunt.qc
Log:
keyhunt support
Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc 2008-10-02 11:37:16 UTC (rev 4576)
+++ trunk/data/qcsrc/client/Main.qc 2008-10-02 12:00:55 UTC (rev 4577)
@@ -535,7 +535,7 @@
else if(self.enttype == ENT_CLIENT_WAYPOINT)
Ent_WaypointSprite();
else
- error("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n");
+ error(strcat("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n"));
};
// Destructor, but does NOT deallocate the entity by calling remove(). Also
Modified: trunk/data/qcsrc/server/keyhunt.qc
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qc 2008-10-02 11:37:16 UTC (rev 4576)
+++ trunk/data/qcsrc/server/keyhunt.qc 2008-10-02 12:00:55 UTC (rev 4577)
@@ -258,9 +258,13 @@
void kh_Key_AssignTo(entity key, entity player) // runs every time a key is picked up or assigned. Runs prior to kh_key_attach
{
+ entity k;
+ float ownerteam0, ownerteam;
if(key.owner == player)
return;
+ ownerteam0 = kh_Key_AllOwnedByWhichTeam();
+
if(key.owner)
{
kh_Key_Detach(key);
@@ -275,6 +279,7 @@
if(key.owner.kh_next == world)
{
// No longer a key carrier
+ WaypointSprite_Ping(key.owner.waypointsprite_attachedforcarrier);
WaypointSprite_DetachCarrier(key.owner);
}
}
@@ -318,6 +323,8 @@
WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-yellow", "keycarrier-friend", "");
else if(player.team == COLOR_TEAM4)
WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-pink", "keycarrier-friend", "");
+ WaypointSprite_UpdateTeamRadar(player.waypointsprite_attachedforcarrier, RADARICON_FLAGCARRIER, colormapPaletteColor(player.team - 1));
+ WaypointSprite_Ping(player.waypointsprite_attachedforcarrier);
}
}
@@ -327,6 +334,32 @@
key.owner.kh_state = (key.owner.kh_state | 255) - 255 + test[key.owner.playerid];
key.pusher = world;
+
+ ownerteam = kh_Key_AllOwnedByWhichTeam();
+ if(ownerteam != ownerteam0)
+ {
+ if(ownerteam != -1)
+ {
+ kh_interferemsg_time = time + 0.2;
+ kh_interferemsg_team = player.team;
+
+ // audit all key carrier sprites, update them to RUN HERE
+ FOR_EACH_KH_KEY(k)
+ {
+ if(k.owner)
+ WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model, "keycarrier-finish", "");
+ }
+ }
+ else
+ {
+ // audit all key carrier sprites, update them to RUN HERE
+ FOR_EACH_KH_KEY(k)
+ {
+ if(k.owner)
+ WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model, "keycarrier-friend", "");
+ }
+ }
+ }
}
void kh_Key_Damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
@@ -385,8 +418,9 @@
centerprint(initial_owner, strcat("You are starting with the ", key.netname, "\n")); // message to player at start of round
- WaypointSprite_Spawn("", 0, 0, key, '0 0 1' * KH_KEY_WP_ZSHIFT, world, key.team, key, waypointsprite_attachedforcarrier, FALSE);
+ WaypointSprite_Spawn("key-dropped", 0, 0, key, '0 0 1' * KH_KEY_WP_ZSHIFT, world, key.team, key, waypointsprite_attachedforcarrier, FALSE);
key.waypointsprite_attachedforcarrier.waypointsprite_visible_for_player = kh_Key_waypointsprite_visible_for_player;
+ WaypointSprite_UpdateTeamRadar(key.waypointsprite_attachedforcarrier, RADARICON_FLAG, '0 1 1');
kh_Key_AssignTo(key, initial_owner);
}
@@ -442,6 +476,9 @@
void kh_Key_Collect(entity key, entity player) //a player picks up a dropped key
{
+ float ownerteam;
+ entity k;
+
sound(player, CHAN_AUTO, kh_sound_collect, VOL_BASE, ATTN_NORM);
if(key.kh_dropperteam != player.team)
@@ -453,14 +490,6 @@
bprint(player.netname, "^7 picked up the ", key.netname, "\n");
kh_Key_AssignTo(key, player); // this also updates .kh_state
-
- if(kh_Key_AllOwnedByWhichTeam() != -1)
- {
- kh_interferemsg_time = time + 0.2;
- kh_interferemsg_team = player.team;
-
- // audit all key carrier sprites, update them to RUN HERE
- }
}
void kh_Key_DropAll(entity player, float suicide) // runs whenever a player dies
More information about the nexuiz-commits
mailing list