Ogre and PBAOE distance

bob_the_builder

Well-Known Member
Is Ogre smart enough to check distance for PBAOE
Seems the wizard spell Furnace of Ro is not checking distance and just casts it. So makes me wonder about other PBAOE spells.




Bob
 

insanitywiz

Senior Member
Ogre does check distance (if you have those options checked) however some spells are not true AE spells, and furnace of ro is one of them. It's actually a dumbfire pet, rather then a blue AE, so it would need to be hardcoded to be treated as an AOE.
 

bob_the_builder

Well-Known Member
Ok, my blue pbaoe's did check distance on a Coe.

So when you say 'hardcoded as an aoe' ... actually should be hardcoded as PBAOE.. anyways, is that something i can hardcode in the UI somewhere or harcoded by Kannkor?
 

insanitywiz

Senior Member
Yes, sorry, meant hardcoded as a PBAOE. It isn't something you can do yourself, and needs to be hardcoded by Kannkor, as far as I know. There are a few spells on the list for him to do this to when he has time, Paladin Consecrate (which is actually a buff), Wizard Furnace, and Fury Ring of Fire, Ball Lightning, and Call of Storms are all spells, that are either classified as buff spells, or pet spells.
 

Kannkor

Ogre
When I return home I'll come up with a solution for these. It's more than likely I will force these to enter values into the spell export, thus making the bot believe they are PBAOEs and read the values. This will also allow people to change them if they have certain buffs/gear etc.
In short the idea is, instead of it reading as a self spell that does nothing, it will show it's a pbaoe with max of 8 targets with a radius of ___. If you happen to have something that makes the radius larger or something, you could edit the spell export.
 

Kannkor

Ogre
Correct. You may have to change the amount of targets also - I believe there is a check on that also.
 

bob_the_builder

Well-Known Member
So the range thing worked as far as range goes ...

How about target numbers, like the Green AOEs.

I tried changing "TargetType=" to a "1" from a "0" but it still casts on a single mob.

Any idea?
 

bob_the_builder

Well-Known Member
Im going with NumEffects="0" and change that to a "2".

Seems to work like all the other green spells.

So if you want Furnace of Ro III to be cast only on multiple mobs in an encounter (won't cast on multiple mobs when they aren't in the same encounter) and only with in 10 meters then change the line in the abilities to this:


<Setting Name="Furnace of Ro III" ID="2649372449" Description="Summons flames near the caster. Anyone near these flames will continually take Heat damage until they leave the area." HealthCost="0" PowerCost="425" ConcentrationCost="0" MainIconID="274" CastingTime="1.290000" RecoveryTime="0.250000" RecastTime="42.735046" MaxDuration="39.599998" NumClasses="-176201407" Class="wizard" NumEffects="2" BackDropIconID="313" HealthCostPerTick="0" PowerCostPerTick="0" MaxAOETargets="0" DoesNotExpire="FALSE" GroupRestricted="FALSE" AllowRaid="FALSE" EffectRadius="10.000000" TargetType="1" SpellBookType="0" MinRange="0.000000" MaxRange="10.000000" Range="10.000000" Tier=":gc50a5a57bb748698b:Expert" Level="84" EffectDesc1="Summons a limited pet to aid the caster">Furnace of Ro III</Setting>

Bob
 

Kannkor

Ogre
Right.. but why make it like a green and not like a blue? Personal preference? Or restriction of the spell?
 

bob_the_builder

Well-Known Member
Your right by the way ! Why make it different.

The biggest thing for me was the range. It just looked like I was retarded every time the bot casted Furnace of Ro like 30 meters away from a mob...

Changing these two values is probably adequate.

MaxRange="10.000000" Range="10.000000"

Anyways, thanks much for discussing this with me. And I'm hooked by the way on Ogre. Great job on this!!!!!!!

Bob
 

VianSK

Well-Known Member
Kannkor,

Thank you for your help in the past on other things. I hope this is useful for you.

Th reason that spells with a radius of 10m can hit mobs 12m away is that the radius of both the caster and target actor is not taken into account.

Here is a function I use in my scripts to determine if there are x amount of mobs in range of spell y. It will also make sure that the mob is aggro on me, a group or raid member.

Code:
; << Number of Mobs Aggro >>
function fCheckNumMobsInAERange(string ThisAbility, int ThisMany)
{
	declare X int local 1
	declare iNumTar int local 0
	declare iEffRadius int local ${Me.Ability[${ThisAbility}].EffectRadius}
	declare RadiusCheck int local ${Math.Calc[${iEffRadius}*2]}
	EQ2:CreateCustomActorArray[byDist,${RadiusCheck}]
	do
	{
		if ${CustomActor[${X}].Type.Equal[NPC]} || ${CustomActor[${X}].Type.Equal[NamedNPC]}
		{
			if ${CustomActor[${X}].Target.Name.Equal[${Me.Name}]} || ${Me.Group[${CustomActor[${X}].Target.Name}](exists)} || ${Me.Raid[${CustomActor[${X}].Target.Name}](exists)}
			{
				call fAbilityRadius "${ThisAbility}" ${CustomActor[${X}].ID}
				if ${Return}
				{
					iNumTar:Set[${Math.Calc[${iNumTar}+1]}]
					if ${iNumTar}>=${ThisMany}
					{
						return TRUE
					}
				}
			}
		}
	}
	while ${X:Inc}<=${EQ2.CustomActorArraySize}
	return FALSE
}

; << Check Ability Radius on Actor ID >>
function fAbilityRadius(string ThisAbility, uint ActorID)
{
	if ${Actor[id,${ActorID}](exists)} && ${ActorID}
	{
		declare MyMass float local ${Math.Calc[${Actor[me].CollisionRadius}*${Actor[me].CollisionScale}]}
		declare TarMass float local ${Math.Calc[${Actor[${ActorID}].CollisionRadius}*${Actor[${ActorID}].CollisionScale}]}
		declare CARadius float local ${Me.Ability[${ThisAbility}].EffectRadius}
		if ${Actor[id,${ActorID}].Distance}<=${Math.Calc[${TarMass}+${CARadius}+${MyMass}]}
		{
			return TRUE
		}
	}
	return FALSE
}
I use it like this:

call fCheckNumMobsInAERange "Ball Lightning III" 5

this will return true if there are 5 mobs within range of "Ball Lightning III"

shrug.. just sharing what I have found out.. hope this is useful.
 

Kannkor

Ogre
VianSK - Yea. I have an object that handles all of my range checks, which do include your size/mob size.



Thanks for sharing, appreciate the snippit.
 
Top Bottom