[nexuiz-commits] r7016 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Jun 12 18:02:06 EDT 2009


Author: mand1nga
Date: 2009-06-12 18:02:05 -0400 (Fri, 12 Jun 2009)
New Revision: 7016

Modified:
   trunk/data/qcsrc/server/bots.qc
Log:
Reverted the changes in tracewalk calls introduced in r6891 as it breaks the CTF and ONS ai. It may break bot scripting, but a better solution has to be found. Slightly improved wandering hack :P

Modified: trunk/data/qcsrc/server/bots.qc
===================================================================
--- trunk/data/qcsrc/server/bots.qc	2009-06-12 19:22:33 UTC (rev 7015)
+++ trunk/data/qcsrc/server/bots.qc	2009-06-12 22:02:05 UTC (rev 7016)
@@ -1514,7 +1514,7 @@
 					if (walkfromwp)
 					{
 						//print("^1can I reach ", vtos(org), " from ", vtos(v), "?\n");
-						if (tracewalk(ent, v, PL_MIN, PL_MAX, org, MOVE_NOMONSTERS))
+						if (tracewalk(ent, v, PL_MIN, PL_MAX, org, MOVE_NORMAL))
 						{
 							bestdist = dist;
 							best = w;
@@ -1522,7 +1522,7 @@
 					}
 					else
 					{
-						if (tracewalk(ent, org, PL_MIN, PL_MAX, v, MOVE_NOMONSTERS))
+						if (tracewalk(ent, org, PL_MIN, PL_MAX, v, MOVE_NORMAL))
 						{
 							bestdist = dist;
 							best = w;
@@ -1565,7 +1565,7 @@
 			if (vlen(diff) < maxdist)
 			{
 				head.wpconsidered = TRUE;
-				if (tracewalk(self, self.origin, self.mins, self.maxs, v, MOVE_NOMONSTERS))
+				if (tracewalk(self, self.origin, self.mins, self.maxs, v, MOVE_NORMAL))
 				{
 					head.wpnearestpoint = v;
 					head.wpcost = vlen(v - self.origin) + head.dmg;
@@ -1798,7 +1798,7 @@
 	navigation_pushroute(e);
 
 	// if it can reach the goal there is nothing more to do
-	if (tracewalk(self, startposition, PL_MIN, PL_MAX, e.origin, MOVE_NOMONSTERS))
+	if (tracewalk(self, startposition, PL_MIN, PL_MAX, e.origin, MOVE_NORMAL))
 		return TRUE;
 
 	// see if there are waypoints describing a path to the item
@@ -1926,11 +1926,14 @@
 	{
 		dprint(self.netname, " can't walk to any goal, going to a near waypoint\n");
 		local entity head;
-		head = findradius(self.origin,500);
+		head = findradius(self.origin,1000);
 		while(head)
 		{
 			if(head.classname=="waypoint")
-			if(checkpvs(self.origin,head))
+			if(!(head.wpflags & WAYPOINTFLAG_GENERATED))
+			if(vlen(self.origin-head.origin)>100)
+			if(checkpvs(self.view_ofs,head))
+			if(random()<0.5)
 				navigation_routetogoal(head,self.origin);
 
 			head = head.chain;



More information about the nexuiz-commits mailing list