r120 - trunk/progsqc

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Aug 30 02:42:41 EDT 2008


Author: vermeulen
Date: 2008-08-30 02:42:41 -0400 (Sat, 30 Aug 2008)
New Revision: 120

Modified:
   trunk/progsqc/bots.qc
   trunk/progsqc/damage.qc
   trunk/progsqc/gamedefs.qc
   trunk/progsqc/player.qc
Log:
New weapon cvars, and some AI stuff

Modified: trunk/progsqc/bots.qc
===================================================================
--- trunk/progsqc/bots.qc	2008-08-22 05:09:42 UTC (rev 119)
+++ trunk/progsqc/bots.qc	2008-08-30 06:42:41 UTC (rev 120)
@@ -136,6 +136,7 @@
 void() bot_ai =
 {
 	local vector v1, v2;
+	local float enemydistance;
 
 	if (self.aitype == AITYPE_1)
 	{
@@ -148,6 +149,13 @@
 		}
 		else
 		{
+			enemydistance = vlen(self.origin - self.enemy.origin);
+			if (enemydistance > self.sight)
+			{
+				self.enemy = world;
+				return;
+			}
+
 			Inventory_GetItemInfo(self, self.itemselected);
 			if (iteminfo_ammo1fireflags & FIREFLAG_JETPACK)
 			{
@@ -178,20 +186,10 @@
 			traceline(v1, v2, FALSE, self);
 			if ((trace_fraction == 1 || trace_ent == self.enemy) && SInfront(self.enemy))
 			{
-				if (iteminfo_weapon_canfire1)
-				{
-					if (iteminfo_weapon_canfire2)
-					{
-						if (random() < 0.05)
-							self.button3 = 1;
-						else
-							self.button0 = 1;
-					}
-					else
-						self.button0 = 1;
-				}
-				else if (iteminfo_weapon_canfire2)
+				if ((iteminfo_weapon_canfire2) && (enemydistance < self.fire2distance))
 					self.button3 = 1;
+				else if ((iteminfo_weapon_canfire1) && (enemydistance < self.fire1distance))
+					self.button0 = 1;
 			}
 			MoveToGoal();
 		}

Modified: trunk/progsqc/damage.qc
===================================================================
--- trunk/progsqc/damage.qc	2008-08-22 05:09:42 UTC (rev 119)
+++ trunk/progsqc/damage.qc	2008-08-30 06:42:41 UTC (rev 120)
@@ -155,6 +155,7 @@
 float PROJFLAG_STICK = 64;
 float PROJFLAG_LASERGUIDED = 128;
 float PROJFLAG_REMOTEDETONATE = 256;
+float PROJFLAG_PROXIMITY = 512;
 
 float FIREFLAG_MUZZLEFLASH = 1;
 float FIREFLAG_SEMIAUTOMATIC = 2;
@@ -357,20 +358,21 @@
 		self.th_die();
 		return;
 	}
-	/*
+	
 	if (self.projflag & PROJFLAG_PROXIMITY)
 	{
 		entity e;
-		e = findradius(self.origin, self.damageinfo_z);
+		e = findradius(self.origin, self.damageinfo_z / 2);
 		while (e)
 		{
-			if ((e.classname == "playerclass") && (e.team != self.team))
+			if ((e.classname == "player") && (e.team != self.team))
 			{
+				bprint("HEY!!!",vtos(self.damageinfo),"\n");
 				self.th_die();
 			}
 			e = e.chain;
 		}
-	} */
+	}
 	if (self.projflag & PROJFLAG_LASERGUIDED)
 	{
 	    float velspeed,turnrate;
@@ -471,6 +473,7 @@
  	newmis.noise1 = bouncesound;
  	newmis.owner = self; // initially same as realowner, cleared on first bounce so that it can hit owner
  	newmis.realowner = self; // who owns this projectile
+	newmis.team = self.team;
  	setorigin(newmis, shotorg);
  	setmodel(newmis, modelname);
  	setsize(newmis, '0 0 0', '0 0 0');

Modified: trunk/progsqc/gamedefs.qc
===================================================================
--- trunk/progsqc/gamedefs.qc	2008-08-22 05:09:42 UTC (rev 119)
+++ trunk/progsqc/gamedefs.qc	2008-08-30 06:42:41 UTC (rev 120)
@@ -55,6 +55,10 @@
 .float shieldactive;
 .float invisactive;
 
+.float sight;
+.float fire1distance;
+.float fire2distance;
+
 .float bloodtype;
 .float gibtype;
 

Modified: trunk/progsqc/player.qc
===================================================================
--- trunk/progsqc/player.qc	2008-08-22 05:09:42 UTC (rev 119)
+++ trunk/progsqc/player.qc	2008-08-30 06:42:41 UTC (rev 120)
@@ -73,6 +73,10 @@
 		  
 		  pc.jumpspeed = cvar(cname,"_jumpspeed");
 		  pc.speedratio = cvar(cname,"_speedratio");
+
+		  pc.sight = cvar(cname,"_sight");
+		  pc.fire1distance = cvar(cname,"_fire1distance");
+		  pc.fire2distance = cvar(cname,"_fire2distance");
 		  
 		  if (pc.animationtype == 1)
 		  {
@@ -261,6 +265,10 @@
 	
 	self.jumpspeed = pc.jumpspeed;
 	self.speedratio = pc.speedratio;
+
+	self.sight = pc.sight;
+	self.fire1distance = pc.fire1distance;
+	self.fire2distance = pc.fire2distance;
 	
 	setsize (self, pc.mins, pc.maxs);
 	Inventory_CloneFromInventory(self, pc);
@@ -386,16 +394,15 @@
 
 	if (cvar("g_gametype") == 1)
 	{
+		stuffcmd(self,"menu_showinfoscreen\n");
 		self.team = 5;
 		self.classnum = 0;
 		stuffcmd(self,"cmd join\n");
 	}
 	else
 	{
-		if (!self.spawned)
-		{
-			stuffcmd(self,"menu_showteamselect\n");
-		}
+		self.health = 1;
+		stuffcmd(self,"menu_showteamselect\n");
 	}
 
 	if (!self.spawned)




More information about the zymotic-commits mailing list