Scriping help.

Truwenswg

Active Member
I am trying to modify a hunting script and I am around a lot of non agro monsters what i want to do is attack them *duh* and also attack aggro if im in range of them as well so how do I do this...

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.
}
This is the code I want to modify and am not even sure if I am doing it right so perhaps someone could help me out on this.

-Truwen
 
Top Bottom