Help with this script.

Truwenswg

Active Member
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.
}
 

Amadeus

The Maestro
Staff member
You need to make sure you understand everything you use.

This line:
Code:
Pawn[npc,AggroNPC,radius,35,levels,3,8]:Target
Will target the first pawn in the array that is:
  1. either an NPC or an AggroNPC
  2. within a radius of 35
  3. between the levels of 3 and 8
 
Top Bottom