EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Npcs Healing a mob (harder than it sounds) (https://www.eqemulator.org/forums/showthread.php?t=33477)

Astal 05-06-2011 07:34 PM

Npcs Healing a mob (harder than it sounds)
 
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...

Code:

#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);
        }
}


Code:

#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


Code:

(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.

Code:

#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

Quote:

Originally Posted by Kayen (Post 199511)
You do not need a global to accomplish your situation.

To check if your npc is spawned use this instead


Code:

(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.

Code:

#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


All times are GMT -4. The time now is 02:37 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.