Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Q&A

Quests::Q&A This is the quest support section

Reply
 
Thread Tools Display Modes
  #1  
Old 06-25-2008, 03:17 PM
Neiv
Hill Giant
 
Join Date: May 2008
Location: Colorado
Posts: 238
Default Need help on a turn in

I'm hoping I can get some insight on why this script is not working correctly. I ran in through a perl command line with no syntax problems.

Quote:
# test script for hand in of bone chips for exp, faction, and cash
sub EVENT_ITEM
{
if(plugin::check_handin{\%itemcount,13073 => 4})
{
quest::givecash("0","5","0","0");
quest::exp(1000);
quest::faction(19927,1);
quest::ding();
quest::say("You have done well, $name! These indeed are a token of friendship with our realm. But will your heart remain true through days of darkness? I urge you, continue these deeds. And may you continue to become a trusted friend of our realm!");
}
else
{
quest::say("I have no use for these, $name. I require four remains of our enemies");
plugin::return_items(\%itemcount);
}
}
At this point the turn-in works as far as it goes. That is, when I give 4 bone chips to the npc, they are accepted, and I receive the right amount of exp, cash, and faction. However, when I test it with other items--or with fewer than 4 of the right items--those items are accepted as well, and I still receive exp, cash and faction. Because all items are accepted the script never gets to the return_items line, so I cannot tell yet whether that part is working. I've looked at several examples on these forums of the check_handin line, and mine seems to be right. But the variables are being ignored. Any clue why? Thanks!
Reply With Quote
  #2  
Old 06-25-2008, 03:34 PM
ChaosSlayer
Demi-God
 
Join Date: May 2007
Posts: 1,032
Default

if(plugin::check_handin{\%itemcount,13073 => 4})

swap curly brakets for parentesis here


if(plugin::check_handin(\%itemcount,13073 => 4))
Reply With Quote
  #3  
Old 06-25-2008, 04:00 PM
Neiv
Hill Giant
 
Join Date: May 2008
Location: Colorado
Posts: 238
Default

That did the trick Thanks!

I had actually (briefly) considered that possibility, but I had seen
examples from others using the curly brackets and thought it must be a valid usage.
Reply With Quote
  #4  
Old 06-25-2008, 04:19 PM
ChaosSlayer
Demi-God
 
Join Date: May 2007
Posts: 1,032
Default

np
the bracket prabobly work in some cases, but parentesis work always
Reply With Quote
  #5  
Old 06-25-2008, 07:05 PM
Neiv
Hill Giant
 
Join Date: May 2008
Location: Colorado
Posts: 238
Default

Okay, here's another one, then:

Quote:
sub EVENT_ITEM
{
if(plugin::check_handin(\%itemcount,13732 == 1))
{
quest::givecash("0","0","0","5000");
quest::exp(3500000);
quest::faction(19927,4000);
quest::ding();
quest::say("Well done, $name! We now have the item. Yet it is certain the enemy knows of our plans; even now he is planning his attack. We must muster our defenses and set reinforcements on our [cities].");
$client->Message(15, "You receive 5000 platinum pieces");
$client->Message(15, "You receive 3500000 exp points");
$client->Message(15, "Your faction standing with the Realm could not get any better!");
}
if($text=~/cities/i)
{
quest::say("Who knows where he may strike first? Go now, $name, and make preparations for war. Take the Interior Road to the Palace, and take word to the Captain of our good fortune--and of the threat that follows. He will know what to do. I will keep watch here the time being, but will make way there if it [comes to that].");
}
if($text=~/comes to that/i)
{
quest::say("$name, listen to me carefully. You must take word to the Captain of the Guard. He knows nothing of this find, and very soon it may be too late. The Palace lies defenseless, and is vulnerable to the enemy's attack. The fate of the Palace is in your hands, $name. If you do not go quickly, who can tell what [fate] awaits them?");
}
if($text=~/fate/i)
{
quest::say("There is little time to explain it all now, Go! I have made you a full citizen of the Realm and a knight of the Palace. On this journey you bear the authority of the king himself! Go; and may the blessing of the Realm go with you! My trusted advisor will take care of matters here.");
}
else
{
quest::say("I have no use for this, $name. Do not trouble me again--unless you bring the item!");
plugin::return_items(\%itemcount);
}
}
Each time I give the item to the npc, he gives it back and defaults to the return_item text. I have triple-checked the item #, and it is correct. I have tried a different operator (< 2 instead of == 1) with the same result. I have tried placing the initial quest::say before all the reward lines, with the same result. I have run the code through a Perl cmd line and it reported no syntax problems.

Thoughts?
Reply With Quote
  #6  
Old 06-25-2008, 07:45 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Try the following. You forgot to put in an EVENT_SAY section:

Code:
sub EVENT_ITEM {

  if(plugin::check_handin(\%itemcount,13732 == 1)) {

    quest::givecash("0","0","0","5000");
    quest::exp(3500000);
    quest::faction(19927,4000);
    quest::ding();
    quest::say("Well done, $name! We now have the item. Yet it is certain the enemy knows of our plans; even now he is planning his attack. We must muster our defenses and set reinforcements on our [cities].");
    $client->Message(15, "You receive 5000 platinum pieces");
    $client->Message(15, "You receive 3500000 exp points");
    $client->Message(15, "Your faction standing with the Realm could not get any better!"); }

  else {
    quest::say("I have no use for this, $name. Do not trouble me again--unless you bring the item!");
    plugin::return_items(\%itemcount); }

}

Sub EVENT_SAY {

  if($text=~/cities/i) {

    quest::say("Who knows where he may strike first? Go now, $name, and make preparations for war. Take the Interior Road to the Palace, and take word to the Captain of our good fortune--and of the threat that follows. He will know what to do. I will keep watch here the time being, but will make way there if it [comes to that]."); }

  if($text=~/comes to that/i) {

    quest::say("$name, listen to me carefully. You must take word to the Captain of the Guard. He knows nothing of this find, and very soon it may be too late. The Palace lies defenseless, and is vulnerable to the enemy's attack. The fate of the Palace is in your hands, $name. If you do not go quickly, who can tell what [fate] awaits them?"); }

  if($text=~/fate/i) {

    quest::say("There is little time to explain it all now, Go! I have made you a full citizen of the Realm and a knight of the Palace. On this journey you bear the authority of the king himself! Go; and may the blessing of the Realm go with you! My trusted advisor will take care of matters here."); }

}
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
Reply


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 04:32 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3