PDA

View Full Version : sub EVENT_ENTER (proximity) question ?


Huppy
10-29-2010, 05:25 AM
Am I doing this right ? Goal here is to depop another npc when in proximity range of this quest npc. At the moment, nothing is working in the script.
I figure I must be missing something here. Thanx :)


sub EVENT_ENTER
{

{

my $x;
my $y;
my $z;
my $h;

$x = $npc->GetX();
$y = $npc->GetY();
$z = $npc->GetZ();
$h = $npc->GetHeading();


quest::set_proximity($x-40,$x+40,$y-40,$y+40,$z-40,$z+40);
quest::say("Your late!");
quest::depop(npc_type=205091);

}

}

Jaekob
10-29-2010, 04:48 PM
This is what I would do.

sub EVENT_SPAWN {
quest::set_proximity($x-40,$x+40,$y-40,$y+40);
}


sub EVENT_ENTER {
quest::say("Your late!");
quest::depop(205091);
}


Just need to put in the npcid, into the quest::depop.
You can also set the proximity somewhere else just not within the sub EVENT_ENTER.

Akkadius
10-29-2010, 05:36 PM
This is what I would do.

sub EVENT_SPAWN {
quest::set_proximity($x-40,$x+40,$y-40,$y+40);
}


sub EVENT_ENTER {
quest::say("Your late!");
quest::depop(205091);
}


Just need to put in the npcid, into the quest::depop.
You can also set the proximity somewhere else just not within the sub EVENT_ENTER.

You are missing the Z axis, which is right for the most part.

When it comes down to it for speed, I made a plugin that I can use to set a proximity of an NPC given that you want it to be the same on all sides.

You would put this in ServerRoot/plugins

Call it whatever you want 'SetProx.pl' works

sub SetProx{
my $Range = $_[0];
my $Z = $_[1];
my $x = plugin::val('$x');
my $y = plugin::val('$y');
my $npc = plugin::val('$npc');
my $z = $npc->GetZ();
quest::set_proximity($x - $Range, $x + $Range, $y - $Range, $y + $Range, $z - $Z, $z + $Z);
}

return 1;

So you can either do :

sub EVENT_SPAWN {
my $z = $npc->GetZ(); ###Just incase $z object isn't defaulted
quest::set_proximity($x - 40, $x + 40, $y - 40, $y + 40, $z - 30, $z + 30);
}


sub EVENT_ENTER{
quest::say("Your late!");
quest::depop(205091); ###NPCID - Leave blank to defaul to the NPC running the script
}

Or you can do this if you have the plugin

sub EVENT_SPAWN {
plugin::SetProx(40, 30);
}


sub EVENT_ENTER{
quest::say("Your late!");
quest::depop(205091); ###NPCID - Leave blank to defaul to the NPC running the script
}

joligario
10-29-2010, 06:24 PM
You aren't required to use the Z-axis if you don't want.