Page 1 of 1

Agro Radius

Posted: Sat Jul 10, 2004 6:28 pm
by draco
I'm writing and auto pull routine. I was wondering if anyone had any information on a way to determine agro radius. Is there a way formula or otherwise to determine it from the current struct. I see fields like melee range etc. I'm adding logic to soothe (Pacify, Calm, Harmony, lull) any MOBS within a certain range of to target. Now I just need to determine what that range would be. For now I am going with a user settable flag.

Code: Select all

Sub Do-Pull
	/declare PullTimeOut timer local 600
	/declare addCount int local 0
	/declare targetToPull int local ${Target.ID}

	/echo "Moving to ${PullRange} from ${Target.CleanName}"

	/call MoveToTarget ${PullRange}
	/echo At Pull Range: ${Target.Distance}

	/if (${DoCalmOnPull}) {

		| Sooth Possible adds
		/declare calmTarget int local 0
		|If more than 5 to crowded to pull
		/for mobCount 1 to 5
			/varset calmTarget ${Target.NearestSpawn[addCount, npc radius ${AggroRadius}].ID}
			/if (!${calmTarget}) /goto :finishedCalming
			/squelch /target id ${calmTarget}
			/call Cast ${CalmSpell}
		/next mobCount
     :finishedCalming
		/if (${mobCount}==5) {
			/call MoveToAnchor
			/return LostTarget
		}
		/target id ${targetToPull}
	}

	/if (${isPuller}) {
		/if (${DoCastOnPull}) {
			/call do-CastOnPull
		} else {
			/ranged
		}
		/echo Target at ${Target.Distance}
		/call MoveToAnchor
		/face fast
	:WaitOnTarget
		|Nuke until it is close
		/if (!${Target.ID} || ${PullTimeOut}<1 ) {
			  |/call ResetSub
			  /return LostTarget
		}
		|/if (${Healer}==1) /call AutoHeal

		/call do-AutoSlow
		/call do-CombatCast
		|/pet back
		/delay 1s
		|/call do-ChainDot
		/if (${Target.Distance}>=${Target.MaxRange}) /goto :WaitOnTarget
			/varset CombatTargetID ${Target.ID}
	} else {
		/call ChatOut 1 ${MasterName} "Sorry, I'm not the puller."
	}
/return



Posted: Sun Jul 11, 2004 3:00 am
by GD
I'm pretty sure aggro range is serverside.

Posted: Mon Jul 19, 2004 5:04 am
by curiosity
well it's been a few days since your post, so you may have given up, but if it helps any I've found that most normal sized mob (Giants are NOT normal haha) have an agro range of 40. Obviously this is very generalized because some have more and some have less. I've found 40 to be almost a standard in LDoNs and in many other zones too.

I'd imagine if you really wanted to find out, you'd just have to use the '/mapfilter targetradius' command and keep adjusting your radius and testing for every mob. Seems like a lot of work, but could be worth it.

Posted: Mon Jul 19, 2004 1:11 pm
by Sparr
track the targets location and heading. when it starts running almost directly at you, you got agro :)

Posted: Mon Jul 19, 2004 10:19 pm
by draco
That is a good idea. I am actually trying to figure out how to avoid aggro. For exapmle determine when I should cast Pacify or Harmony of Nature. To be able to autopull in crowded areas.

newbie take on it...

Posted: Thu Jul 22, 2004 4:27 pm
by jtanida
Ok.. what if you set up your macro so you can target one sapecific mob and monitor the distance between you and it until it's location changes (would require it to be stationary of course but could be modified for moving mobs too). Set up an event so that when the mob moves the mob name and your distance is written to an ini. Then you could set up your macro so that when you target a mob it will alert you if any mobs are in it's agro radius or if you don't have agro data on that perticular mob.
This might be the long way to do it.. but may prove effective also :)

Posted: Sat Jul 24, 2004 2:59 pm
by draco
Well, My routine posted above does essentially that. But, I don't have agro data on any mobs other than just knowing Snow Dervs, Planar Mob and the like have huge agro raidus' and Help Radius' where as Gnolls in SK have very small radius'. Which means the each time I run the script I have to set the variarble do trial and error on what radius doen't produce adds and what does. Not aproblem just tedius sometimes.

Posted: Sun Jul 25, 2004 2:30 am
by dok
theres actually 2 different serverside variables on when a mob aggros. Theres aggro radius (distance a mob will aggro you), and social radius (distance a mob will bring friends). Both of these values are serverside best I could tell from looking at the memory values.

True that some people try to use MaxRangeTo and such to guess at this, which may work for some mobs, but it wont work for all. Best thing I can tell you is to know the mobs and their pathing and set a value for those which you fight most often.

Posted: Sun Jul 25, 2004 3:49 pm
by draco
Ok, if anyone knows of a site that has any research in this area let me know. However, I guess for now the code is done. I may setup a zone default so that whenever you pull in a certain zone if uses that value unless until you change it.

Posted: Sun Jul 25, 2004 8:26 pm
by draco
Ok, if anyone knows of a site that has any research in this area let me know. However, I guess for now the code is done. I may setup a zone default so that whenever you pull in a certain zone if uses that value unless until you change it.