Quote:
Originally Posted by Tobius
[You must be logged in to view images. Log in or Register.]
So this is unfixeable? Why did EQEMU code it that way, that is dumb, would posting on the General EQEMU forums help? Or would they not change it anyway? Is it worth asking them to make no drops items tradeable? I know that wasnt classic but neither is no MQ'ing...
|
EQEMU implements quests as PERL scripts, that fire based on events rather than being a database. So, when you hand in an item, it fires a script and if it's not written to spit back the item, it won't. I don't see why the scripts CAN'T be written to store lists of items handed in so MQing can be done, but none of them appear to. Interestingly each script uses "plugin::check_handin" each time something is handed in, which might be modifiable to allow MQing, I haven't dug into the scripting environment enough to understand where that code is and how it can be changed, has anyone else?
As an example here's the script that implements the quest handins for Totemic Armor (not from P1999, from the AXClassic PEQ distro of eqemu.) Interestingly this one is written not to eat incorrect handins.
# Quest for Vrynn in Lakerathe - Shaman Totemic Armor (low 30's armor)
# kiladiveus - completed subevents for this quest NPC. I created the ending statement since i can't find any. Same as exp.
# Kiladiveus - In najena, need to add loot "19041 Terror Spines" into "44013 Tentacle_Terror" in Lootdrop 45905. 50% chance?
# Kiladiveus - In unrest, need to add loot "19038 Ghoul Carrion" into "63008 A carrion Ghoul" in Lootdrop 16772. 50% chance?
sub EVENT_SAY {
if($text=~/Hail/i){
quest::say("Greetings. spiritwalker. I am called Vrynn. If you have banded armor, my wife Kyralynn and I can form it into a new shaman armor using this totem and some reagents for the ritual. I make armor from banded [boots]. [gauntlets]. [sleeves]. and [leggings].");
}
if($text=~/boots/i){
quest::say("The boots require banded boots. 1 dufrenite. an orc chief's tongue from Lesser Faydark. and terror spines from a tentacle terror in Najena.");
}
if($text=~/gauntlets/i){
quest::say("The gauntlets require banded gauntlets. 1 crushed dufrenite. a mammoth rib bone. and a griffenne downfeather.");
}
if($text=~/sleeves/i){
quest::say("The sleeves require banded sleeves. 1 ground dufrenite. ghoul carrion from Estate of Unrest. and charger hoof chips.");
}
if($text=~/leggings/i){
quest::say("The leggings require banded leggings. 1 powdered dufrenite. a Permafrost snowball from a goblin wizard. and bone barbs from Estate of Unrest.");
}
}
sub EVENT_ITEM(){
if (plugin::check_handin(\%itemcount, 3064 => 1, 10073 => 1, 19039 => 1, 19041 => 1)) {
quest::ding(); quest::exp(200);
quest::summonitem(4941);
quest::say("I have crafted your boots, use it well.");
}
elsif (plugin::check_handin(\%itemcount, 3062 => 1, 19050 => 1, 19043 => 1, 19046 => 1)) {
quest::ding(); quest::exp(200);
quest::summonitem(4942);
quest::say("I have crafted your gauntlets, use it well.");
}
elsif (plugin::check_handin(\%itemcount, 3060 => 1, 19051 => 1, 19038 => 1, 19045 => 1)) {
quest::ding(); quest::exp(200);
quest::summonitem(4943);
quest::say("I have crafted your sleeves, use it well.");
}
elsif (plugin::check_handin(\%itemcount, 3063 => 1, 19052 => 1, 19034 => 1, 19037 => 1)) {
quest::ding(); quest::exp(200);
quest::summonitem(4944);
quest::say("I have crafted your leggings, use it well.");
}
else {
quest::say("You have given me incomplete or the wrong reagents.");
plugin::return_items(\%itemcount);
}
}
#END of FILE Zone:lakerathe ID:51059 -- Vrynn
Regards,
Mg