- Joined
- Apr 22, 2006
- Messages
- 275
- Reaction score
- 0
- Points
- 16
I have graduated to boxing 2 full groups but I have a problem with my Pallytank.mac. If the merc tank in other grp gets aggro before my pally does my pally will avoid it. I have been trying for a few days to solve this and have some questions related to it...
What is this checking for? Seems like “If not pet of PC”
Would adding this ${Target.Type.Equal[Mercenary]} into the following line solve the majority of my problems
Here is the complete sub that seems to be the problem...
If you think that the problem is somewhere else in the mac I can send you the full version to check out...
This mac was custom written for my toon based on my grp and style of play so if anyone needs a pally mac they are better off going directly to crystane's version which is more generic...
What is this checking for? Seems like “If not pet of PC”
Code:
!${Bool[${Spawn[ID ${Target.ID}].Master.Type.Equal[PC]}]}
Would adding this ${Target.Type.Equal[Mercenary]} into the following line solve the majority of my problems
Code:
/if (${Math.Distance[${Target.NearestSpawn[PC].Y},${Target.NearestSpawn[PC].X},${Target.NearestSpawn[PC].Z}:${Target.Y},${Target.X},${Target.Z}]}>${Target.MaxRange}) /if (${Target.Speed}<1) {
/if (${Me.TargetOfTarget.ID}>0) /if (${Me.TargetOfTarget.Name.Equal[${Puller}]} || ${Bool[${Raid.Member[${Me.TargetOfTarget.Name}]}]} || ${Group.Member[${Me.TargetOfTarget.Name}]}>1 || ${Me.TargetOfTarget.Name.Equal[${Me}]}) {
Here is the complete sub that seems to be the problem...
Code:
Sub ValidCombatTargetCheck
/varset ValidCombatTarget FALSE
/if (${SpawnCount[ID ${Target.ID} noalert ${AlertListVoid}]}>0 && ${Target.ID}>0 && ${Target.Type.NotEqual[Corpse]} && !${Bool[${Spawn[ID ${Target.ID}].Master.Type.Equal[PC]}]} && ${Target.Type.NotEqual[PC]} && ${Target.Type.NotEqual[Mercenary]} && (${Target.Distance}<${DistancetoAssist}||(${Target.Named}&&${Target.Distance}<${TankRadOutdoors})) && (${Target.Class.Name.NotEqual[Destructible Object]} || (${Target.Class.Name.Equal[Destructible Object]} && ${Target.PctHPs}<100)) ) {
/if (${Target.ID}>0 && ${Target.PctHPs}>98) /echo VCT Loop1 TRUE
/varset ValidCombatTarget TRUE
/if (${Math.Distance[${Target.NearestSpawn[PC].Y},${Target.NearestSpawn[PC].X},${Target.NearestSpawn[PC].Z}:${Target.Y},${Target.X},${Target.Z}]}>${Target.MaxRange}) /if (${Target.Speed}<1) {
/if (${Me.TargetOfTarget.ID}>0) /if (${Me.TargetOfTarget.Name.Equal[${Puller}]} || ${Bool[${Raid.Member[${Me.TargetOfTarget.Name}]}]} || ${Group.Member[${Me.TargetOfTarget.Name}]}>1 || ${Me.TargetOfTarget.Name.Equal[${Me}]}) {
/goto :EndVCTcheck
}
/echo Skipping ${Target.Name}, it seams to be no threat to any PC atm.
/varset ValidCombatTarget FALSE
/goto :ContVCTcheck
}
| /echo (${Me.TargetOfTarget.ID}>0 && (${Me.TargetOfTarget.Name.NotEqual[${Group.Member[${Group.Member[${Me.TargetOfTarget.Name}]}]}]}||${Me.TargetOfTarget.Name.NotEqual[${Raid.Member[${Me.TargetOfTarget.Name}]}]}) && ${Me.TargetOfTarget.Name.NotEqual[${Puller}]})
/if (${Me.TargetOfTarget.ID}>0) /if (${Group.Member[${Me.TargetOfTarget.Name}]}<1) /if (${Me.TargetOfTarget.Name.NotEqual[${Me}]}) /if (!${Bool[${Raid.Member[${Me.TargetOfTarget.Name}]}]}) /if (${Me.TargetOfTarget.Name.NotEqual[${Puller}]}) {
/echo Target of Target is not a Raid/Groupmember and also not the assigned MA, ignoring this Target ${Target.Name} of ${Me.TargetOfTarget.Name}
/squelch /alert add ${AlertListVoid} ${Target.ID}
/varset ValidCombatTarget FALSE
/call ClearTarg
/goto :ContVCTcheck
}
} else {
:ContVCTcheck
/call CheckGrpOnAggro
| /if (${Target.ID}>0 && ${Target.PctHPs}>98) /echo VCTif2 ${Target.ID}>0) / (${Target.Type.NotEqual[PC]}) / (${Target.Type.NotEqual[Corpse]}) / (!${Bool[${Spawn[ID ${Target.ID}].Master.Type.Equal[PC]}]}) / (${Target.Distance}<${DistancetoAssist} || (${Target.Distance}<${TankRadOutdoors} && ${Target.Speed}>1 && ${Target.LineOfSight})) / ( (${Target.Class.Name.NotEqual[Destructible Object]} || (${Target.Class.Name.Equal[Destructible Object]} && ${Target.PctHPs}<100))
/if (${SpawnCount[ID ${Target.ID} noalert ${AlertListVoid}]}>0) /if (${Target.ID}>0) /if (${Target.Type.NotEqual[PC]}) /if (${Target.Type.NotEqual[Corpse]}) /if (!${Bool[${Spawn[ID ${Target.ID}].Master.Type.Equal[PC]}]}) /if (${Target.Distance}<${DistancetoAssist} || (${Target.Distance}<${TankRadOutdoors} && ${Target.Speed}>1 && ${Target.LineOfSight})) /if ( (${Target.Class.Name.NotEqual[Destructible Object]} || (${Target.Class.Name.Equal[Destructible Object]} && ${Target.PctHPs}<100)) ) {
| /if (${Target.ID}>0 && ${Target.PctHPs}>98) /echo VCT Loop2 TRUE
/varset ValidCombatTarget TRUE
/if (${Target.ID}>0&&${HoTTavail}) /delay 10 ${Me.TargetOfTarget.ID}
| /echo (${Me.TargetOfTarget.ID}>0) (${Group.Member[${Me.TargetOfTarget.Name}]}<1) (${Me.TargetOfTarget.Name.NotEqual[${Me}]}) (!${Bool[${Raid.Member[${Me.TargetOfTarget.Name}]}]}) (${Me.TargetOfTarget.Name.NotEqual[${Puller}]})
/if (${Me.TargetOfTarget.ID}>0) /if (${Group.Member[${Me.TargetOfTarget.Name}]}<1) /if (${Me.TargetOfTarget.Name.NotEqual[${Me}]}) /if (!${Bool[${Raid.Member[${Me.TargetOfTarget.Name}]}]}) /if (${Me.TargetOfTarget.Name.NotEqual[${Puller}]}) {
| /echo Target of Target is not a Raid/Groupmember and also not the assigned MA, ignoring this Target.
/call ClearTarg
| /echo check 1
/varset ValidCombatTarget FALSE
}
/if (${Me.TargetOfTarget.ID}<1) /if (${Target.PctHPs}>99) {
| /echo No ToT and targets health is above 99, clearing Target.
/call ClearTarg
| /echo check 2
/varset ValidCombatTarget FALSE
}
/if (${Math.Distance[${Target.NearestSpawn[PC].Y},${Target.NearestSpawn[PC].X},${Target.NearestSpawn[PC].Z}:${Target.Y},${Target.X},${Target.Z}]}>${Target.MaxRange}) /if (${Target.Speed}<1) {
/call ClearTarg
| /echo check 3
/varset ValidCombatTarget FALSE
}
/goto :EndVCTcheck
}
/varset ValidCombatTarget FALSE
/if (${SpawnCount[ID ${Target.ID} noalert ${AlertListVoid}]}==0 || ${Target.Type.Equal[Corpse]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[Mercenary]} || ${Spawn[ID ${Target.ID}].Master.Type.Equal[PC]} || (${Target.Class.Name.Equal[Destructible Object]} && ${Target.PctHPs}>99)) {
/call ClearTarg
| /echo check 4
}
/if (${Math.Distance[${Target.NearestSpawn[PC].Y},${Target.NearestSpawn[PC].X},${Target.NearestSpawn[PC].Z}:${Target.Y},${Target.X},${Target.Z}]}>${Target.MaxRange}) /if (${Target.Speed}<1) {
/call ClearTarg
| /echo check 5
}
}
:EndVCTcheck
/if (!${Defined[CVD${Target.ID}]} && ${Target.ID}>0 && ${ValidCombatTarget}) /call SetCombatVars
/echo ValidCombatTarget ${ValidCombatTarget}
/return
If you think that the problem is somewhere else in the mac I can send you the full version to check out...
This mac was custom written for my toon based on my grp and style of play so if anyone needs a pally mac they are better off going directly to crystane's version which is more generic...