PDA

View Full Version : Quest::Spawn Question


Nall
03-27-2012, 07:39 PM
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.

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,head ing) - 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.
# 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
# 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

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