EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Zoning to lose aggro vs. Quest ? (https://www.eqemulator.org/forums/showthread.php?t=40844)

DanCanDo 08-21-2016 03:44 PM

Zoning to lose aggro vs. Quest ?
 
I was curious, with the typical scenario of a player zoning to get rid of aggro
from an npc, is it possible to set up an npc quest script with a proximity and
something like sub EVENT_ENTER that will do the same hate wipe as zoning ?

Just something I am playing around with, if possible, wanting to setup a "safe"
area in a zone, that would enable the player to run to with any aggro from any
npc.

ghanja 08-21-2016 04:55 PM

NPC + Factions would be the less convoluted method.

Handling this through Perl, while possible, is not without involvement, to do what you wish AND ensure it's not exploited till kingdom come.

DanCanDo 08-21-2016 05:06 PM

Quote:

Originally Posted by ghanja (Post 250637)
NPC + Factions would be the less convoluted method.

Ya, I can't alter the npc factions. It's all set up with custom npcs which were
meant to aggro and attack the player that may be running.(chuckle)

I didn't get my hopes up to pull this off, but the thought was nice :)

Thanks ghanja

ghanja 08-21-2016 05:14 PM

Quote:

Originally Posted by DanCanDo (Post 250639)
Ya, I can't alter the npc factions. It's all set up with custom npcs which were
meant to aggro and attack the player that may be running.(chuckle)

I didn't get my hopes up to pull this off, but the thought was nice :)

Thanks ghanja

Well I mean, its doable, it just wasn't the best way, assuming you were running stock. I don't know all the intricacies of your server to suggest the best method.

You just wish to define a certain area, where a client can run to and the hate lists are wiped? At the very least, I would suggest depopping, killing or at very least, healing the NPC after this is done. Otherwise, you'll have a proverbial line in the sand, where a client can attack the NPC, then if that client gets low on health, cross that line where the NPC says "woops, no no, I cant cross that line, I'll stop hating you now", only for the client to recover then re-engage, all the while slowly works down that NPC.

Unless of course that was the intent?

TL;DR: More information needed.

DanCanDo 08-21-2016 05:23 PM

Oh definately, it's expected for a player to be able to attack npc, but then make a run for
it. It's not much different than normal play, when we all ran for the zone line to avoid us
all getting wiped. (chuckle)
But to clarify what I am hoping to do, is (virtually) divide an open zone, where one area
is KOS and the "safe" area is not. I did try something only to experiment, using the same
type of faction of the guards in misty, along with opposing noob monster faction (38).
I placed the halfling guards at the safe line and put the 38 faction (with a base of -1000)
on the kos mobs. inking the halflings would grab the mob, just like they do in misty, when
a player brought the mobs to them. But that didn't seem to work, (chuckle)

DanCanDo 08-21-2016 09:42 PM

Well, I got the alternative option to work using the faction experiment. Just had to
set a little value overlooked in the npc_types table. The npc_aggro value had to be set
to higher than 0 on the planned safe line guards. They will indeed assist with it set to 0,
but won't aggro unless it's set to 1.

NatedogEZ 08-21-2016 10:13 PM

You could try this...

Setup an invisible NPC in the "Safe Area" and when they enter the proximity it triggers this...
Code:

sub EVENT_ENTER {
        $entity_list->RemoveFromHateLists($client);
}


DanCanDo 08-21-2016 10:20 PM

Wow, that's exactly what I had in mind. I hope this works :) Thanks a lot NatedogEZ !
I'll give it a try and see what happens, then let you know.

DanCanDo 08-21-2016 11:13 PM

Yes, works like a charm Natedog. I shuved it in with this proximity snippet.
I aggro'd 3 different mobs (with dmg), ran back to the prox npc and they
stopped chasing me :) Thank You very much !

Code:

my $ProxDist = 50;

sub EVENT_SPAWN {
  my $x = $npc->GetX();
  my $y = $npc->GetY();
  my $z = $npc->GetZ();
  quest::set_proximity($x - $ProxDist, $x + $ProxDist, $y - $ProxDist, $y + $ProxDist, $z - $ProxDist, $z + $ProxDist);
}

sub EVENT_ENTER {
  $npc->SignalClient($client, 1);
  $entity_list->RemoveFromHateLists($client);
}



All times are GMT -4. The time now is 11:05 AM.

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