EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   If mob is up... Have to fight it (https://www.eqemulator.org/forums/showthread.php?t=41473)

Fridgecritter 08-11-2017 03:43 PM

If mob is up... Have to fight it
 
I'm trying to make it so when a player enters the sleeper zone, if a certain mob is up, and they do a #zone x y z to get passed the mob, they get summoned to the npc. Like when you enter the zone soldungb and you're over a certain level, if he's up, naggy will banish you.

I toyed with EVENT_ENTER a little but I'm not getting it right. I want the NPC to summon them after 30 seconds or so in the zone. That way they can get a few buffs in, start to aggro something else and BAM! When the mob has been killed, it won't matter and players can zone in. But I'm going to make the respawn timers such that by the time the first few mobs start to respawn, the summoning mob will respawn too.

Maybe there can be a flag put on the player that makes it so it won't summon them if they have the flag? That's just an extra thought.

I've learned a ton over the last few months making this server, and I appreciate all of the help.

Fridgecritter 08-11-2017 04:58 PM

This is what I've got right now, just so you know I'm not just leeching. I'm trying.

Code:

sub EVENT_ENTERZONE {
  if (($ulevel < 70) && ($status < 80)) {
    quest::ze(0,"You are not worthy!");
    $client->MovePC(202,-285,-148,-159.12,71.5);
  }
  elsif (($ulevel >= 70) && ($status < 80)) {
    quest::echo(0, "You must best me before you are deemed worthy!");
    $client->MovePC(128,37.29,-7.22,1.98,199.8);
  }
}


The_Beast 08-11-2017 05:26 PM

I've always used quest::

quest::movepc(202,-285,-148,-159.12,71.5);

As for the rest, maybe Kingly will pop around, he's a wiz for more advanced perl :)

The_Beast 08-11-2017 05:40 PM

Actually, if you want something to practice with timers, check out the player.pl script for the guildlobby EVENT_ENTER section.
(It sets you afk after xx minutes)

Fridgecritter 08-11-2017 05:41 PM

Quote:

Originally Posted by The_Beast (Post 255450)
Actually, if you want something to practice with timers, check out the player.pl script for the guildlobby EVENT_ENTER section.
(It sets you afk after xx minutes)

Thanks! Was looking for something I could rape and pillage from, err I mean use as an example.

The_Beast 08-11-2017 05:47 PM

Quote:

Originally Posted by Fridgecritter (Post 255451)
Thanks! Was looking for something I could rape and pillage from, err I mean use as an example.

EXACTLY ! lol Everything I've learned in perl so far, I've started with examples like that and went from there.

Fridgecritter 08-11-2017 06:30 PM

I'm hitting a brick wall. I know it's as simple as a } in the wrong place or something.

Fridgecritter 08-11-2017 06:48 PM

I don't even need the quest flag part. I just wanna get the level check < 70 = boot to POK and =>70 = move to right in front of him so he'll aggro.

The_Beast 08-11-2017 07:19 PM

Quote:

Originally Posted by Fridgecritter (Post 255456)
I don't even need the quest flag part. I just wanna get the level check < 70 = boot to POK and =>70 = move to right in front of him so he'll aggro.

Try this. I've always had probs when tryng to specify a heading in x,y,z in a movepc script, so I just don't bother.
Code:


sub EVENT_ENTERZONE {
  if (($ulevel < 70) && ($status < 80)) {
    quest::ze(0,"You are not worthy!");
    quest::movepc(202,-285,-148,-159.12);
  }
  elsif (($ulevel >= 70) && ($status < 80)) {
    quest::emote(0, "You must best me before you are deemed worthy!");
    quest::movepc(128,37.29,-7.22,1.98);
  }
}


The_Beast 08-11-2017 07:24 PM

Myself, I usually don't call for status in something so simple, I use a level range.

if (($ulevel > 0) && ($ulevel < 70)) {

and this

elsif (($ulevel > 69) && ($ulevel < 80)) {

The_Beast 08-11-2017 07:50 PM

I just ran a test with this entering Nexus, <70 it sent me to pok, 70+ it sent me to center nexus. I used "ze" for both msg's.

Code:

sub EVENT_ENTERZONE {
  if (($ulevel > 0) && ($ulevel < 70)) {
    quest::ze(0,"You are not worthy!");
    quest::movepc(202,-285,-148,-159.12);
  }
  elsif (($ulevel > 69) && ($ulevel < 76)) {
    quest::ze(0, "You must best me before you are deemed worthy!");
    quest::movepc(152,-6.17,0.75,-31.81);
  }
}


Xzam 08-11-2017 08:03 PM

I wonder if you could just have the mob summon the player every 6 sec or so?

The_Beast 08-11-2017 09:08 PM

Quote:

Originally Posted by Xzam (Post 255460)
I wonder if you could just have the mob summon the player every 6 sec or so?

Once the mob is aggro'd you would have to zone to lose it. If it has summoning ability added to special attacks, then
you won't have to worry about being invited back :P

Fridgecritter 08-11-2017 10:20 PM

Didn't work. Had a level 70 player zone in and it didn't move him. I logged on a regular account and zoned in with a level 69 character and it didn't boot me.

Fridgecritter 08-11-2017 10:20 PM

This mob will kill most 70s unless they are super geared, let alone anyone else. Once there's aggro you can either kill the mob or you can't. It happens super fast if you can't


All times are GMT -4. The time now is 10:03 AM.

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