Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Q&A

Quests::Q&A This is the quest support section

Reply
 
Thread Tools Display Modes
  #1  
Old 03-27-2012, 07:39 PM
Nall
Sarnak
 
Join Date: Aug 2008
Location: The ice cave with vox
Posts: 31
Default Quest::Spawn Question

Another Simple one if you would,

I understand the existance of the "On Death Event" and the follow Quest::Spawn.

However..

How do you specify that the location of the spawning of the mob is the current location / the location that the mob died at.

Example: Druid Epic - When you kill the Tainted XYZ... On its corpse the "Corrupted XYZ" Spawns.

as we know the location that the mob spawned is not neccesarily where we kill it.

Code:
quest::spawn(npc_type,grid,guildwarset,x,y,z) - Spawn "npc_type" on "grid" with "guildwarset" (use 0) at "x","y","z".
 quest::spawn2(npc_type,grid,guildwarset,x,y,z,heading) - Spawn "npc_type" on "grid" with "guildwarset" (use 0) at "x","y","z" facing "heading".
 quest::unique_spawn(npc_type,grid,guildwarset,x,y,z,heading=0) - just like spawn() except will not spawn it if one of that npc_type is allready in zone.
Reply With Quote
  #2  
Old 03-27-2012, 08:26 PM
joligario's Avatar
joligario
Developer
 
Join Date: Mar 2003
Posts: 1,498
Default

$x, $y, and $z are updated at the time of the event.
Reply With Quote
  #3  
Old 03-27-2012, 10:56 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 965
Default

Scripts that want to record the spawn location sometimes declare a local version of $x $y $z $h also, so be aware of the scope of your variables.

But as long as nothing was local declared then yes $x $y $z $h are always the /loc of the NPC at the moment the event is called.

to continue your druid epic example... here is an example of a waste of coding.
Code:
# tainted_seafury_cyclops.pl
my $x;
my $y;
my $z;
my $h;

sub EVENT_DEATH {
  my $x = $npc->GetX();
  my $y = $npc->GetY();
  my $z = $npc->GetZ();
  my $h = $npc->GetHeading();
  quest::spawn2(69142,0,0,$x,$y,$z,$h);
}
Whoever wrote this delcared a local version of the standard x/y/z/h and then in the death event set the 4 variables with 4 calls to $npc and then ran spawn2.

It could very simply be written
Code:
# tainted_seafury_cyclops.pl
sub EVENT_DEATH {
  quest::spawn2(69142,0,0,$x,$y,$z,$h);
}
Reply With Quote
  #4  
Old 03-28-2012, 08:18 PM
Nall
Sarnak
 
Join Date: Aug 2008
Location: The ice cave with vox
Posts: 31
Default

going to test this tonight

Quote:
} Whoever wrote this delcared a local version of the standard x/y/z/h and then in the death event set the 4 variables with 4 calls to $npc and then ran spawn2.

It could very simply be written


Code:
# tainted_seafury_cyclops.pl
sub EVENT_DEATH {
quest::spawn2(69142,0,0,$x,$y,$z,$h);
}
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 03:34 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3