Log in

View Full Version : Npcs Healing a mob (harder than it sounds)


Astal
05-06-2011, 07:34 PM
What im looking to do is have 4 totems heal the boss every time timer triggers

AS LONG as the boss is spawned. The problem Im having is how to change my qglobal when the boss depops. The only event i can find is Death, but it doesnt work if the mob depops only if it dies.

I need to be able to reset the global if the zone reloads ect...

#Monolith of Lohesh
sub EVENT_SPAWN {
quest::settimer("HealLohesh", 10);
}

sub EVENT_TIMER {

if ($timer == "HealLohesh" && $qglobals{LoheshSpawned} == 1){
quest::say("Take our life oh dark one!!");
$mob->SetTarget(999424);
plugin::CastOnTarget(18366); #knockback
quest::settimer("HealLohesh", 10);
}



}

sub EVENT_ATTACK {

if ($qglobals{LoheshSpawned} == 1) {
$npc->NPCSpecialAttacks(HfDC, 0);
}
}



#Lohesh
sub EVENT_SPAWN {
quest::setglobal("LoheshSpawned",1,3,"F");
}

sub EVENT_TIMER {
}

sub EVENT_HP {

}

sub EVENT_DEATH {
quest::setglobal("LoheshSpawned",0,3,"F");
}

joligario
05-06-2011, 09:25 PM
Why not put the timer on Lohesh and have him signal his healers to heal him when required? Then when he dies, you can stoptimer.

Kayen
05-06-2011, 09:33 PM
You do not need a global to accomplish your situation.

To check if your npc is spawned use this instead


(defined($entity_list->GetNPCByNPCTypeID(npctypeid))

Where npctypeid is typeid of the npc you want to check if spawned, as long as that is defined do whatever you want ect.

#Monolith of Lohesh

sub EVENT_SPAWN {
quest::settimer("HealLohesh", 10);
}

sub EVENT_TIMER {

if ( ($timer eq "HealLohesh" ) && (defined($entity_list->GetNPCByNPCTypeID(npctypeid)) ) {

quest::say("Take our life oh dark one!!");
$mob->SetTarget(999424);
plugin::CastOnTarget(18366); #knockback
quest::settimer("HealLohesh", 10);
}



}

sub EVENT_ATTACK {

if ((defined($entity_list->GetNPCByNPCTypeID(npctypeid))) {
$npc->NPCSpecialAttacks(HfDC, 0);
}
}

Astal
05-07-2011, 12:14 AM
You do not need a global to accomplish your situation.

To check if your npc is spawned use this instead


(defined($entity_list->GetNPCByNPCTypeID(npctypeid))

Where npctypeid is typeid of the npc you want to check if spawned, as long as that is defined do whatever you want ect.

#Monolith of Lohesh

sub EVENT_SPAWN {
quest::settimer("HealLohesh", 10);
}

sub EVENT_TIMER {

if ( ($timer eq "HealLohesh" ) && (defined($entity_list->GetNPCByNPCTypeID(npctypeid)) ) {

quest::say("Take our life oh dark one!!");
$mob->SetTarget(999424);
plugin::CastOnTarget(18366); #knockback
quest::settimer("HealLohesh", 10);
}



}

sub EVENT_ATTACK {

if ((defined($entity_list->GetNPCByNPCTypeID(npctypeid))) {
$npc->NPCSpecialAttacks(HfDC, 0);
}
}

Thanks man