I am tyring to modify this script to attack non aggro mobs (turtles or crabs that dont attack me when im close) im kind of stuck on it if anyone can help me out id be greatful.
Code:
#include moveto.iss
;------------------------------------------------
function main()
{
call Setup_Variables
call Set_Abilities
Tank:Set[${Me.DTarget.Name}]
TankID:Set[${Me.DTarget.ID}]
wait 10
vgecho Tank set to ${Tank}
; VGExecute /targetnextnpc
do
{
call Check_Health
call SelfBuff
call Pull
call Fight
wait 10
}
while 1
}
;================================================
function Set_Abilities()
{
PetHeal:Set["Blood Rite III"]
Nuke1:Set["Bone Spike IV"]
Nuke2:Set["Dark Rebuke I"]
Dot1:Set["Torment III"]
Dot2:Set["Plague of Infestation III"]
Dot3:Set["Devouring Shadows II"]
Dot4:Set["Grasp of the Grave I"]
StrDebuff:Set["Crippling Blight III"]
Summon1:Set["Awaken Abomination I"]
Summon2:Set["Ritual of the Guardian"]
}
function Pull()
{
if "!${Me.Target(exists)} || ${Me.Target.Type.Equal[Corpse]} || ${Me.TargetHealth}==0"
{
call loot
if "(${Me.Pet.CombatState}==1) || (${Me.EnergyPct}>80 && ${Me.HealthPct}>80)"
{
Pawn[npc,AggroNPC,radius,35,levels,3,8]:Target
if "${Me.Target.Owner(exists)}"
{
call Pull
}
}
}
}
;================================================
function Check_Health()
{
if "${Me.DTarget.ID}!=${TankID}"
{
Pawn[id,${TankID}]:Target
}
if "${Me.PetHPs}<60 && !${Me.IsCasting} && ${Me.Ability[${PetHeal}].IsReady} && ${Me.HealthPct}>70"
{
Me.Ability[${PetHeal}]:Use
call MeCasting
return
}
}
;================================================
function MeCasting()
{
do
{
wait 1
}
while "${Me.IsCasting}"
do
{
wait 1
}
while "${VG.InGlobalRecovery}"
waitframe
}
;================================================
function Fight()
{
; VGExecute /face ${Me.Target}
if "${Me.Target.Type.Equal[NPC]} || ${Me.Target.Type.Equal[AggroNPC]}"
{
call movetoobject ${Me.Target.ID} 9 2
if "${Me.HavePet} && ${Me.Pet.CombatState}==0"
{
VGExecute /pet attack
}
if "!${Me.TargetEffect[${Dot1}](exists)} && ${Me.TargetHealth}>=5"
{
Me.Ability[${Dot1}]:Use
call MeCasting
}
if "!${Me.TargetEffect[${Dot2}](exists)} && ${Me.TargetHealth}>=20"
{
Me.Ability[${Dot2}]:Use
call MeCasting
}
if "!${Me.TargetEffect[${StrDebuff}](exists)} && ${Me.TargetHealth}>=30"
{
Me.Ability[${StrDebuff}]:Use
call MeCasting
}
if "${Me.Ability[${Nuke1}].IsReady}"
{
Me.Ability[${Nuke1}]:Use
call MeCasting
}
}
}
;================================================
function SelfBuff()
{
; call buffcast "Power of the Grave I"
if "!${Me.HavePet}"
{
Me.Ability[${Summon1}]:Use
call MeCasting
}
}
;================================================
function buffcast(string buff2cast)
{
if "!${Me.Effect[${buff2cast}](exists)} || ${Me.Effect[${buff2cast}].TimeRemaining}<=60"
{
Pawn[me]:Target
Me.Ability[${buff2cast}]:Use
call MeCasting
if "${Me.IsGrouped}"
{
call Check_Health
GMember:Set[1]
do
{
if "${Group[${GMember}].Distance}<=20 && ${Group[${GMember}].ID(exists)}"
{
Pawn[id,${Group[${GMember}].ID}]:Target
Me.Ability[${buff2cast}]:Use
call MeCasting
Pawn[id,${TankID}]:Target
call Check_Health
}
}
while "${GMember:Inc}<=5"
}
else
{
call Check_Health
Pawn[id,${TankID}]:Target
Me.Ability[${buff2cast}]:Use
call MeCasting
}
return
}
}
function loot()
{
if (!${Me.Target.ContainsLoot})
{
return
}
Me.Target:Loot
wait 20
if (${Loot.NumItems} > 0)
{
wait 1
Loot:LootAll
return
}
Loot:EndLooting
return
}
;================================================
function atexit()
{
; If ISXEVG isn't loaded, then no reason to run this script.
if (!${ISXVG(exists)})
{
return
}
VGEcho Ending VGNecro.iss
}
;================================================
function Setup_Variables()
{
echo Initializing Variables...
declare GroupHeal string script
declare FastHeal string script
declare Heal string script
declare Reactive string script
declare EmgHeal string script
declare Tank string script
declare TankID int64 script
declare PriorMob int64 script
declare NewMob int64 script
declare DefaultForm string script
declare HealAmt int script
declare doSlow bool script 0
declare Slow string script
declare PetHeal string script
declare Nuke1 string script
declare Nuke2 string script
declare Nuke3 string script
declare Dot1 string script
declare Dot2 string script
declare Dot3 string script
declare StrDebuff string script
declare Summon1 string script
declare Canni string script
declare Oracle string script
declare Infusion string script
declare Rakurr1 string script
declare RunSpeed string script
declare reactiveInUse int global 0
declare GMember int script
echo Done Initializing.
}