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.]