EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   NPC casts on NPC (https://www.eqemulator.org/forums/showthread.php?t=28493)

Capheus 06-07-2009 01:01 PM

NPC casts on NPC
 
I might be missing something simple here, wouldn't be the first time. I'm trying to get one NPC/MOB to cast on another NPC/MOB. I've tried several variations of $mob->CastSpell and $npc->CastSpell, but nothing seems to work. Anyone have something workable out there?

ChaosSlayerZ 06-07-2009 02:33 PM

I have asked simular question before, thought i never actualy got time to test the suggestions:

http://www.eqemulator.net/forums/showthread.php?t=25604

and I am still bot sure how to make NPC:

-cast spell on player OTHEr than selfcast (cuase I belvie selfcast casted as if player casts on himself and may result in wrong landign when NPC suppsoe to NUKE the player)

-make npc cast spell on HIMSELF

Capheus 06-08-2009 05:19 AM

I almost got something working, the problem I am having is getting the casting mob to recognize the target mob's Entity ID.

Unless I am doing something wrong the following lines do not reveal a mob's Entity ID by type, target, or name:

PHP Code:

$entity_list->GetMobByNpcTypeID(get_id);
$entity_list->GetMobID(id);
$entity_list->GetMob(name); 

I've got the NPC casting on itself and I can get the mob to recognize its own Entity ID, I just can't get an Entity ID from some other mob or transfer that variable to another mob's script.

PHP Code:

sub EVENT_SPAWN {
        
    
$npc->GetID();                 #returns this mob's Entity ID
        
quest::settimer(1,10);
    
}

sub EVENT_TIMER {

    if (
$timer == 1) {
    
$npc->CastSpell(2110,$mobid);   #casts skin like wood on this NPC
    
}    



Capheus 06-08-2009 07:05 AM

We can get a mob's Entity ID from #listnpcs and #showstats, but how can we use/apply that to get and Entity ID by NPCtype or by Target or Name?

Capheus 06-08-2009 08:16 AM

Ok I finally got it. A bizaare method but it works. I am sending the NPC's Entity ID as a signal to the other mob.

Code:

#this npc has an ID of 2900000
#this NPC will be casted on by another NPC with an ID 2900001

sub EVENT_AGGRO {

  $myeid = $npc->GetID();                  #get this npc's Entity_ID
  quest::spawn2(2900001,0,0,22,16,0,166); #spawn the casting NPC #change the loc
  quest::settimer("signal",5);            #give time for spawning
 

}


sub EVENT_TIMER {

  if ($timer eq "signal") {
        quest::signalwith(2900001,$myeid,0); #send Enity_ID as a signal to casting NPC
        quest::stoptimer("signal");
  }
}


Code:

#this npc has an ID of 2900001
#this npc will cast on NPC with an ID of 2900000

sub EVENT_SPAWN {
                       
  quest::settimer(1,15); #time before I start casting
 
}

sub EVENT_SIGNAL {

  if ($signal => 1) {
        $eid = $signal; #transfering the signal number for use in CastSpell
       
  }
}

sub EVENT_TIMER {

  if ($timer == 1) {
        $npc->CastSpell(13,$eid);  #casts a reapeating complete heal on the other NPC
  }       
}



All times are GMT -4. The time now is 12:56 AM.

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