r2420 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Apr 30 12:36:45 EDT 2007


Author: div0
Date: 2007-04-30 12:36:45 -0400 (Mon, 30 Apr 2007)
New Revision: 2420

Modified:
   trunk/data/qcsrc/server/keyhunt.qc
Log:
draw lines between connected keys


Modified: trunk/data/qcsrc/server/keyhunt.qc
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qc	2007-04-30 16:24:47 UTC (rev 2419)
+++ trunk/data/qcsrc/server/keyhunt.qc	2007-04-30 16:36:45 UTC (rev 2420)
@@ -118,11 +118,21 @@
 	key.nextthink = time;
 }
 
+vector kh_AttachedOrigin(entity e)
+{
+	if(e.tag_entity)
+	{
+		makevectors(e.tag_entity.angles);
+		return e.tag_entity.origin + e.origin_x * v_forward - e.origin_y * v_right + e.origin_z * v_up;
+	}
+	else
+		return e.origin;
+}
+
 void kh_Key_Detach(entity key, float wpchange)
 {
+	setorigin(key, kh_AttachedOrigin(key));
 	setattachment(key, world, "");
-	makevectors(key.owner.angles);
-	setorigin(key, key.owner.origin + key.origin_x * v_forward - key.origin_y * v_right + key.origin_z * v_up);
 	key.angles_y = key.owner.angles_y;
 	key.aiment = world;
 	key.flags = FL_ITEM;
@@ -248,7 +258,7 @@
 	bprint(player.netname, "^7 collected the ", key.netname, "\n");
 	kh_Key_AssignTo(key, player, TRUE);
 
-	sound(key, CHAN_AUTO, kh_sound_collect, 1, ATTN_NONE);
+	sound(key, CHAN_AUTO, kh_sound_collect, 1, ATTN_NORM);
 
 	FOR_EACH_KH_KEY(key)
 		if(!key.owner || key.team != player.team)
@@ -276,7 +286,7 @@
 			key.pusher = player.pusher;
 			key.pushltime = player.pushltime;
 		}
-		sound(world, CHAN_AUTO, kh_sound_drop, 1, ATTN_NONE);
+		sound(world, CHAN_AUTO, kh_sound_drop, 1, ATTN_NORM);
 	}
 }
 
@@ -366,8 +376,9 @@
 void kh_WinnerTeam(float teem)
 {
 	// all key carriers get some points
+	vector firstorigin, lastorigin;
+	float first;
 	entity key;
-	float first;
 	float score;
 	score = 1.0 / kh_teams;
 	first = TRUE;
@@ -382,6 +393,26 @@
 			first = FALSE;
 		}
 	}
+
+	first = TRUE;
+	FOR_EACH_KH_KEY(key)
+	{
+		vector thisorigin;
+
+		thisorigin = kh_AttachedOrigin(key);
+
+		if(!first)
+			te_lightning2(world, lastorigin, thisorigin);
+		lastorigin = thisorigin;
+		if(first)
+			firstorigin = thisorigin;
+		first = FALSE;
+	}
+	if(kh_teams > 2)
+	{
+		te_lightning2(world, lastorigin, firstorigin);
+	}
+
 	bprint("^7 captured the keys for the ", ColoredTeamName(teem), "\n");
 	sound(world, CHAN_AUTO, kh_sound_capture, 1, ATTN_NONE);
 	kh_FinishRound();




More information about the nexuiz-commits mailing list