EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   sub EVENT_ENTER (proximity) question ? (https://www.eqemulator.org/forums/showthread.php?t=32383)

Huppy 10-29-2010 05:25 AM

sub EVENT_ENTER (proximity) question ?
 
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.

Code:

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

Quote:

Originally Posted by Jaekob (Post 193793)
This is what I would do.

Code:

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

Code:

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 :

Code:

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

Code:

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.


All times are GMT -4. The time now is 01:00 AM.

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