PDA

View Full Version : Seilaen's Plight


fault
04-10-2008, 02:35 AM
Figured I would post here instead of PEQ this time. Even though I really like PEQ, there are some things in this quest I Could NOT find.

Seilaens Plight In PoN


#############
#NPC: Seilaen
#Author: Spre
#Version: 0.0.1
#EQEMUV: 6.2+
#############

if ($text=~/hail/i) {
quest::say("Who.. who are you? You.. You must help me! ");
}
if ($text=~/I will help you./i) {
quest::say("The forest, it.. I can feel it looking at me.. following me! Oh, I just want to leave and go!");
quest::say("I don't know what it could be, I was just walking home and.. and.. this doesn't look like the forest near my home at all! Oh, and I am wearing my mother's Locket of Escape.. but it won't work for me!");
}
if ($text=~/What locket of escape?/i) {
quest::say("My mother always carried this with her. I have no idea why I suddenly have it. Perhaps I can make it work for you, if you want me to?");
}
if ($text=~/I want you to./i) {
quest::say("Hmm.. It doesn't seem to want to work. Do you see Deyid?'");
}
if ($text=~/I see Deyid./i) {
quest::say("Ohh, that must be what is causing all this trouble! You all seem so brave. Maybe if you chop down Deyid the Twisted I will be able to go home? Will you please? If you have gathered together and are prepared, have your leaders step forward and tell me their readiness. Mother's Locket doesn't seem as bright as it was before. I fear I can only use it but a couple more times.");
}
if ($text=~/We are ready/i) {
quest::movegrp(-,-,-,-); #Unsure of where this is actually Suppose to warp you. My Live sub wore out cannot look
}

sub EVENT_DEATH {
quest::emote("An eerie silence settles onto the forest as Deyid the Twisted slumps over, defeated");
quest::shout("Oh thank you! Thank you! I don't feel the trees watching me anymore! And.. Let me try Mother's Locket again, I think it might work..");
quest::depop();
}
#During the fight he summons a ring of Corrupt Treants
# Unfortunately i cannot locate said mob anywhere.
#sub EVENT_HP {
#
# if ($hpevent == 60) {
# The ring of spawns go here
# }



All Fairly Accurate, Only things I couldn;t do was the group move cords. and the ring of mobs he spawns, As I cannot find those mobs anywhere.

Source: http://everquest.allakhazam.com/db/quest.html?quest=2248

cavedude
04-10-2008, 07:23 AM
You make it sound like PEQ and EQEmu compete... We don't, EQEmu handles the server, and PEQ handles the quests and DB.

Deyid the Twisted is located at x: 1011 y: 1081 z: 274 in PEQ, and since he is the event mob, I would assume that's where you'll need to port players. Allah says this about him: "(Saying this triggers a gate of your group to the rocky, round plateau above and behind Seilaen. Deyid the Twisted is a massive treant positioned in the center, red to 61, KOS, but not within aggro range of the port-in.) "

The sub EVENT_DEATH and sub EVENT_HP need to be in #Deyid_the_Twisted.pl.

The second shout is Seilaen's, so what you need to do is in the sub EVENT_DEATH of #Deyid_the_Twisted.pl, add a signal to Seilean. Then, in Seilaen.pl add a sub EVENT_SIGNAL and the shout.

In order for your sub EVENT_HP to work, you also need to add this to #Deyid_the_Twisted.pl:


sub EVENT_SPAWN {
quest::setnexthpevent(60);
}

Please keep in mind that the HP events are 1% behind in perl, so if you really want the spawns to occur at 60%, then you need to change 60 to 61 in the script. Though, that's not a big deal of course.

I'll add the Corrupt Treant, who will have ID 204068. I'll also tweak #Deyid_the_Twisted to make him a bit more named, currently he has standard stats.

fault
04-10-2008, 11:06 AM
Awesome.


And apologies I did not mean for it to sound competitive, I just didn;t feel it was *complete enough* to post on peq, and things needed to be solved before that step. :D

cavedude
04-10-2008, 11:09 AM
Ahhh I understand. :)

Yep, you're almost done, just need those few details worked out.

fault
04-10-2008, 10:53 PM
How would I get the corrupted to spawn in a ring around Deyid? I see this, quest::spawn2(npc_type,grid,guildwarset,x,y,z,head ing); So I would have to #zone to various spots around deyid write down the /loc and do it that way?

I also don;t really see how signal is done (the recieving NPC) here is what i have


Deyid:

quest::signalwith(204047,204047_1, 20);

Seilaen:

sub_SIGNAL {
$signal,204047_1;
quest::shout("Oh thank you! Thank you! I don't feel the trees watching me anymore! And.. Let me try Mother's Locket again, I think it might work..");
quest::depop();
}

AndMetal
04-11-2008, 12:57 AM
How would I get the corrupted to spawn in a ring around Deyid? I see this, quest::spawn2(npc_type,grid,guildwarset,x,y,z,head ing); So I would have to #zone to various spots around deyid write down the /loc and do it that way?


Basically, yes. You can also use #goto x y z which does the exact same thing as #zone zonename x y z.

I was going to try to create this quest myself (the dialogues are easy enough), so I could learn how to make everything interact properly, but there weren't really any resources spelling out how many treants there were, where they are placed, how fast they move, how tough they are, etc.


I also don;t really see how signal is done (the recieving NPC) here is what i have


Deyid:

quest::signalwith(204047,204047_1, 20);

Seilaen:

sub_SIGNAL {
$signal,204047_1;
quest::shout("Oh thank you! Thank you! I don't feel the trees watching me anymore! And.. Let me try Mother's Locket again, I think it might work..");
quest::depop();
}

This is what it should look like for Deyid to signal to Seilaen that's he/she/it's been killed, plus the resulting dialogue:

#Deyid_the_Twisted.pl (http://eqemuquests.cvs.sourceforge.net/eqemuquests/peq_quests/ponightmare/%23Deyid_the_Twisted?view=markup)

# Name: #Deyid_the_Twisted
# ID: 204051
# Zone: ponightmare

sub EVENT_DEATH {
quest::signalwith(204047, 5, 1); # Send signal # 5 to Seilaen 1 second after death
}


Seilaen.pl (http://eqemuquests.cvs.sourceforge.net/eqemuquests/peq_quests/ponightmare/Seilaen.pl?view=markup)

# Name: Sailaen
# ID: 204047
# Zone: ponightmare

sub EVENT_SIGNAL {
if ($signal == 5) {
quest::shout("Oh thank you! Thank you! I don't feel the trees watching me anymore! And.. Let me try Mother's Locket again, I think it might work..");
quest::depop();
}
}

fault
04-11-2008, 02:03 AM
Oh, So I can;t use what I wanted? Darn I am a stickler for clean precise code ( npcid+value for example)


Reading up on the quest it appears as if he summons between 6 and 12. 6 for sure, but reports also say 1 dozen(12)

working on geting the final done as I type this (Atleast I hope)

fault
04-11-2008, 07:24 AM
here is what I have for deyid, I am stil uncertain as to the `grid` field in the spawn2, is that the walk grid? or what?

sub EVENT_SPAWN {
quest::setnexthpevent(61);
}

#During the fight he summons a ring of Corrupt Treants ID 204068 in PEQ
# By the time you kill deyid they are upon you and attacking you.
#when Deyid Dies you have succeeded, you are not required to kill the spawns.
sub EVENT_HP {

if ($hpevent == 61) {
quest::spawn2(Corrupt_Treant,grid,0,922,1028,280);
quest::spawn2(Corrupt_Treant,grid,0,947,1117,200);
quest::spawn2(Corrupt_Treant,grid,0,1031,1164,276) ;
quest::spawn2(Corrupt_Treant,grid,0,1121,1154,277) ;
quest::spawn2(Corrupt_Treant,grid,0,1206,1067,280) ;
quest::spawn2(Corrupt_Treant,grid,0,1237,887,272);
}


sub EVENT_DEATH {
quest::emote("An eerie silence settles onto the forest as Deyid the Twisted slumps over, defeated");
quest::signalwith(204047, 5, 1); # Send signal # 5 to Seilaen 1 second after death
}

I got myself a test base up (server) was going to be testing it, but first I must search the forums here and figure out why When I hail npcs like th eosulbinders they ignore me :D

cavedude
04-11-2008, 07:40 AM
Yep, grid is their walking path. In this case none is needed, so the value is 0.

The script is perfect, that's exactly how I would write it. Unless there is more you want to add to it, I'll get it in today.

AndMetal
04-11-2008, 03:19 PM
From Allakhazam (http://everquest.allakhazam.com/db/quest.html?quest=2248;page=1;howmany=50#m103708619 534521), referring to the Corrupt Treants:

They appear about 30 sec into the fight, and start moving in around 1 min into the fight. Until they start moving they can't be targeted. I've herd rumors that if you can kill Deyid before they start moving they despawn. I can attest that once they start moving they don't care if Deyid is up or not. They hit hard and fast, and killed every caster quick. My suggestion is have the casters up close to the melee to give the raid a few more seconds to kill deyid.


It sounds like they'd need to start as untargetable, then after ~30 seconds, they should respawn as targetable Corrupt Treants & start moving in (very slowly I would assume). I think should do the trick:

#Deyid_the_Twisted.pl (http://eqemuquests.cvs.sourceforge.net/eqemuquests/peq_quests/ponightmare/%23Deyid_the_Twisted.pl?view=markup):

sub EVENT_SPAWN {
quest::setnexthpevent(61);
quest::signal(204069); # Tell any targetable treants still alive to depop after Deyid respawns (18 minutes)
}

#During the fight he summons a ring of Corrupt Treants ID 204068 in PEQ
# By the time you kill deyid they are upon you and attacking you.
#when Deyid Dies you have succeeded, you are not required to kill the spawns.
sub EVENT_HP {

if ($hpevent == 61) {
quest::spawn2(204068,0,0,922,1028,280);
quest::spawn2(204068,0,0,947,1117,200);
quest::spawn2(204068,0,0,1031,1164,276);
quest::spawn2(204068,0,0,1121,1154,277);
quest::spawn2(204068,0,0,1206,1067,280);
quest::spawn2(204068,0,0,1237,887,272);
quest::settimer(1,30) # Timer to spawn targetable treants 30 seconds after untargetables are spawned
}

sub EVENT_TIMER {
if ($timer == 1) {
quest::signal(204068); # Despawn untargetable treants
# Spawn the targetable treants
quest::spawn2(204069,0,0,922,1028,280);
quest::spawn2(204069,0,0,947,1117,200);
quest::spawn2(204069,0,0,1031,1164,276);
quest::spawn2(204069,0,0,1121,1154,277);
quest::spawn2(204069,0,0,1206,1067,280);
quest::spawn2(204069,0,0,1237,887,272);
}
}

sub EVENT_DEATH {
quest::emote("An eerie silence settles onto the forest as Deyid the Twisted slumps over, defeated");
quest::signalwith(204047, 5, 1); # Send signal # 5 to Seilaen 1 second after death
quest::stoptimer(1); # Prevent treants from respawning as targetable if killed quickly
quest::signal(204068); # If Deyid is dead before the targetable treants have spawned, tell them to depop
}


Corrupt Treant (untargetable), ID 204068:

sub EVENT_SIGNAL {
if ($signal == 0) {quest::depop();} # Depop all at once, instead of one at a time with quest::depopall()
}


Corrupt Treant (targetable), ID 204069 (I assume):

sub EVENT_SPAWN {
quest::moveto(1011,1081,274); # Start walking to Deyid's spawn point, will probably require a very slow walk speed for dramatic effect
}

sub EVENT_SIGNAL {
if ($signal == 0) {quest::depop();} # Depop all at once, instead of one at a time with quest::depopall()
}

fault
04-11-2008, 09:46 PM
Yep, grid is their walking path. In this case none is needed, so the value is 0.

The script is perfect, that's exactly how I would write it. Unless there is more you want to add to it, I'll get it in today.

Must've missed the 30 second thing, if andmetal doesn't tmind add what he added to it and then it *should* be straight.


Appreciate all the advice and help.

cavedude
04-12-2008, 07:34 AM
Alright, the event is in. The untargetable trees should not aggro no matter what (AEs) I adjusted the other trees so that they are KOS but will not assist Deyid (assist range is very large) Their aggro range is very small (15, compared to 70 in the rest of the zone) I also set their runspeed to 0.25 which is very slow. That way in theory, they should slowly close in on that center point and won't aggro until they are right on top of the player. Sound right?

AndMetal
04-12-2008, 01:56 PM
Sounds good to me :-)

fault
04-12-2008, 04:10 PM
Awesome thanks Cavedude. Imma head over to the peq quest area and see what else needs to be done pre PoP and get it submitted for you.