Project 1999

Go Back   Project 1999 > Blue Community > Blue Trading Hub

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #6  
Old 08-13-2010, 07:09 PM
Wenai Wenai is offline
VIP / Contributor

Wenai's Avatar

Join Date: Oct 2009
Location: Halifax, NS, Canada
Posts: 1,083
Send a message via MSN to Wenai
Default

Quote:
Originally Posted by guineapig [You must be logged in to view images. Log in or Register.]
It actually doesn't have anything to do with an MQ rule made by the server. It has more to do with the database not being able to handle MultiQuesting.

In other words It's an EQemu limitation.
Has nothing to do with database [You must be logged in to view images. Log in or Register.] just to give you guys an idea of how quests works. So I will write a generic quest script to show you what it looks like and how it works.

Quests are handled through PERL (.pl) files which are labelled via name or NPC ID#. When an event happen it will check it's PERL file to see if there is a reaction or event that should happen in response.

Code:
sub EVENT_SAY {
  if($text=~/Hail/i) {
    quest::say("Hail, traveler! You look as if you could use a [drink]!");
  }
  if($text=~/drink/i) {
    quest::say("Ahhhhh... You do need a drink! If you bring me a muffin I am sure I could spare you some of my milk!");
  }
}

sub EVENT_ITEM {
    if(plugin::check_handin(\%itemcount, 13014 => 1)) {
    quest::say("Ahhhh! Thank you so much for this delicious muffin! Have a bottle of this quenching milk!");
    quest::exp(9001);
    quest::ding();
    quest::summonitem(13087);
    }
}
So basically how this works is... Anything within EVENT_SAY is what determines how and NPC will react when you talk to it. If you say a /keyword/ then it will respond with the quest output specified within quotations after quest::say. The, i, after the /keyword/ does nothing other than make it so that it is not case sensitive.

Anything within EVENT_ITEM is how we determine how the NPC reacts when handed an ITEM(s). In this case he accepts item 13014 (muffin) in exchange for 13087 (milk).

quest::exp determines how much experience you gain from that turn-in.
quest::ding is the sound effect that you hear when you complete the quest.
quest::summonitem is the item reward that you see.

Now that you hopefully understand the basics of how the quest scripts work I can explain why MultiQuesting currently does not work.

When an NPC is handed an item(s) it does a check that if ALL conditions are met. If ALL conditions are not met.. then the quest is failed. The NPC does not flag itself as receiving an item for partial completion of the quest.

Would be be possible to have multiquesting? I believe so. I am no PERL expert by any means but I believe you could somehow set a flag for the NPC to show that part of the quest had been completed. This would result in having to re-script every quest that we have... which just isn't going to happen. [You must be logged in to view images. Log in or Register.]
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:58 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.