EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Quest::Spawn Question (https://www.eqemulator.org/forums/showthread.php?t=35121)

Nall 03-27-2012 07:39 PM

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.

:shock: 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.


joligario 03-27-2012 08:26 PM

$x, $y, and $z are updated at the time of the event.

sorvani 03-27-2012 10:56 PM

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


Nall 03-28-2012 08:18 PM

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


All times are GMT -4. The time now is 05:43 PM.

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