Log in

View Full Version : Return_items plugin


mplayer254
09-14-2011, 06:39 PM
First off, thanks to all the people who watch these and post solutions, as with other issues, I have solved almost all of mine by just searching here and persisting. However, for the life of me, I can not get this plugin to function as it should. I have tried to incorporate it into several different quest which function perfectly with the exception of eating items, but here is an example:

# tutoriala, Arias

sub EVENT_SAY
{
if ($text =~/Hail/i)
{
if (quest::istaskcompleted(1))
{
quest::say ("Thank you for your assistance, traveller, but we have not yet escaped. Deliver the

map to Trelang so we may leave this wretched place!");
}
if (quest::istaskcompleted(1)==0)
{
quest::say ("There is no time for idle talk, $class. If you are not sure how to get the kobold's

key, speak to Aellwind.");
}
}
}

sub EVENT_ITEM
{
if (quest::istaskactivityactive(1,2))
{
if (plugin::check_handin(\%itemcount, 1008 => 1))
{
quest::emote("quickly hands you a rolled up map from underneath the cell's mattress.");
quest::say("Trelang can decipher this map. Give it to her quickly!");
}
else
{
plugin::return_items(\%itemcount);
}
}
elsif (quest::istaskactivityactive(1,2)==0)
{
quest::say("This is of no use to me, $race.");
plugin::return_items(\%itemcount);
}
}
}

I have set up a basic task in tutoriala as well as NPCs and items. I am trying to get Arias to return any item other than a map (id 1008) given to him during the third activity in the task. He emotes and speaks when he should (and shouldn't), but always eats items. Anyone see what I'm doing wrong?

joligario
09-14-2011, 07:51 PM
They way you wrote the sub, you probably meant this:
sub EVENT_ITEM {
if (quest::istaskactivityactive(1,2)) {
if (plugin::check_handin(\%itemcount, 1008 => 1)) {
quest::emote("quickly hands you a rolled up map from underneath the cell's mattress.");
quest::say("Trelang can decipher this map. Give it to her quickly!");
}
else {
plugin::return_items(\%itemcount);
}
}
else {
quest::say("This is of no use to me, $race.");
plugin::return_items(\%itemcount);
}
}

But to even make less if statements, you can do this:
sub EVENT_ITEM {
if (quest::istaskactivityactive(1,2) && plugin::check_handin(\%itemcount, 1008 => 1)) {
quest::emote("quickly hands you a rolled up map from underneath the cell's mattress.");
quest::say("Trelang can decipher this map. Give it to her quickly!");
}
else {
quest::say("This is of no use to me, $race.");
plugin::return_items(\%itemcount);
}
}

Which to use really depends on if you will add additional code to it later.

mplayer254
09-14-2011, 08:55 PM
Well, I tried them both. Both failed to return the item given. Could there be an issue with one of my global plugin files? I have not modified them from the vanilla install of Leslamarch's repack.

joligario
09-14-2011, 08:59 PM
Get the latest plugin updates from the SVN and move them to your emu folder.

http://code.google.com/p/projecteqquests/