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 05-30-2016, 12:17 PM
jaspen
Hill Giant
 
Join Date: Apr 2016
Posts: 107
Default

I have looked at several quest files that work properly and modified the above code with how they look and still not sucessful. They NPC will say I have no need for this and hand the items back and at the same time completing the quest. Once again I know zero about programming but can usually compare code and do simple things. I did notice plugin::try_tome_handins is listed below and I can not find any plugin called that. I will test removing that and see what happens. Not sure what that plugin is supposed to do.

Code:
sub EVENT_ITEM {
  if(plugin::check_handin($itemcount{12496} == 1) && ($itemcount{5123} == 1)){ #Test of the Zealot (Greenmist Quest 4/8)
  quest::say("At last!! The Chalp diagram. I shall see that the emperor gets this at once. You have proven yourself more than just a mere knight, you are a zealot. Being new to the temple we have need of you in a [matter of betrayal].");
  quest::summonitem(5124);
  quest::givecash("0","0","6","1"); 
  quest::exp(1600);
  quest::ding();
  quest::faction(62,20);
  quest::faction(193,10);
 }
 elsif(plugin::check_handin($itemcount{1729} == 1) && ($itemcount{1730} == 1) && ($itemcount{5124} == 1)){ #Test of Betrayal (Greenmist Quest 5/8)
  quest::say("Congratulations! You are now a true crusader, but there is no time for celebration. We have lost two of our operatives. Crusaders Golin and Fodcod were dispatched to seek out an ancient artifact, the [visceral dagger]. Where they have gone, I do not know. They have been gone far too long. Find them and return the dagger to me with your crusader khukri and you shall be a hero.");
  quest::summonitem(5125);
  quest::givecash("0","0","0","2"); 
  quest::exp(2000);
  quest::ding();
  quest::faction(62,20);
  quest::faction(193,10);
 }
 elsif(plugin::check_handin($itemcount{7324} == 1) && ($itemcount{5125} == 1)){ #Test of the Hero (Greenmist Quest 6/8)
  quest::emote("gazes in astonishment at the dagger. 'Ahhh!! You have brought the sacred visceral dagger back to the Temple of Terror. Let all be aware that the great $name has returned to Cabilis a hero!! You now wield the weapon of a hero. Hail, $name, hero of the Crusaders of Greenmist.");
  quest::summonitem(5126);
  quest::givecash("0","0","0","3"); 
  quest::exp(3000);
  quest::ding();
  quest::faction(62,20);
  quest::faction(193,10);
 }
 plugin::try_tome_handins(\%itemcount, $class, 'Shadowknight');
 plugin::return_items(\%itemcount);
}
Reply With Quote
  #2  
Old 05-30-2016, 12:35 PM
jaspen
Hill Giant
 
Join Date: Apr 2016
Posts: 107
Default

I removed plugin::try_tome_handins(\%itemcount, $class, 'Shadowknight'); and still no change. I looked at several quests that were successful and compared it to this file again. One other difference I noticed, so far, was that this file would list an item like ($itemcount{12496} == 1) while the other files did it this way ($itemcount, 12496 == 1). Not sure what the difference between the two formats are or which is preferred, but changing the script to the other way has not solved the problem.
Reply With Quote
  #3  
Old 05-30-2016, 12:52 PM
cannon
Hill Giant
 
Join Date: Dec 2004
Location: Pittsburgh, PA
Posts: 128
Default

I believe all this does is checks a tomb to verify you are the class that you specify, so if your any other class trying to turn in the items you will get notified that you are not the correct class for the tomb.
Quote:
Originally Posted by jaspen View Post
I removed plugin::try_tome_handins(\%itemcount, $class, 'Shadowknight'); and still no change. I looked at several quests that were successful and compared it to this file again. One other difference I noticed, so far, was that this file would list an item like ($itemcount{12496} == 1) while the other files did it this way ($itemcount, 12496 == 1). Not sure what the difference between the two formats are or which is preferred, but changing the script to the other way has not solved the problem.
Reply With Quote
  #4  
Old 05-30-2016, 01:04 PM
jaspen
Hill Giant
 
Join Date: Apr 2016
Posts: 107
Default

Here is my new code. It will properly eat the first item that is turned in but still returns the second, and in the one situation the second and third.

Code:
sub EVENT_ITEM {
  if(plugin::check_handin(\%itemcount, 12496 => 1) && (\%itemcount, 5123 => 1)){ #Test of the Zealot (Greenmist Quest 4/8)
  quest::say("At last!! The Chalp diagram. I shall see that the emperor gets this at once. You have proven yourself more than just a mere knight, you are a zealot. Being new to the temple we have need of you in a [matter of betrayal].");
  quest::summonitem(5124);
  quest::givecash("0","0","6","1"); 
  quest::exp(1600);
  quest::ding();
  quest::faction(62,20);
  quest::faction(193,10);
 }
 elsif(plugin::check_handin(\%itemcount, 1729 => 1) && (\%itemcount, 1730 => 1) && (\%itemcount, 5124 => 1)){ #Test of Betrayal (Greenmist Quest 5/8)
  quest::say("Congratulations! You are now a true crusader, but there is no time for celebration. We have lost two of our operatives. Crusaders Golin and Fodcod were dispatched to seek out an ancient artifact, the [visceral dagger]. Where they have gone, I do not know. They have been gone far too long. Find them and return the dagger to me with your crusader khukri and you shall be a hero.");
  quest::summonitem(5125);
  quest::givecash("0","0","0","2"); 
  quest::exp(2000);
  quest::ding();
  quest::faction(62,20);
  quest::faction(193,10);
 }
 elsif(plugin::check_handin(\%itemcount, 7324 => 1) && (\%itemcount, 5125 => 1)){ #Test of the Hero (Greenmist Quest 6/8)
  quest::emote("gazes in astonishment at the dagger. 'Ahhh!! You have brought the sacred visceral dagger back to the Temple of Terror. Let all be aware that the great $name has returned to Cabilis a hero!! You now wield the weapon of a hero. Hail, $name, hero of the Crusaders of Greenmist.");
  quest::summonitem(5126);
  quest::givecash("0","0","0","3"); 
  quest::exp(3000);
  quest::ding();
  quest::faction(62,20);
  quest::faction(193,10);
 }
 #plugin::try_tome_handins(\%itemcount, $class, 'Shadowknight');
 plugin::return_items(\%itemcount);
}
Here is the log file.

Code:
[05-30-2016 :: 12:59:11] [Quests] Destroying EQEmuIO=HASH(0x395fc94)
[05-30-2016 :: 12:59:11] [Quests] Destroying EQEmuIO=HASH(0x395f7ac)
[05-30-2016 :: 12:59:11] [Quests] Tying perl output to eqemu logs
[05-30-2016 :: 12:59:11] [Quests] Creating EQEmuIO=HASH(0xe241e4c)
[05-30-2016 :: 12:59:11] [Quests] Creating EQEmuIO=HASH(0xe22323c)
[05-30-2016 :: 12:59:11] [Quests] Loading perlemb plugins.
[05-30-2016 :: 12:59:11] [Quests] Unquoted string "false" may clash with future reserved word at plugins/Expeditions.pl line 375.
[05-30-2016 :: 12:59:11] [Quests] Subroutine Cwd::fastcwd redefined at C:/Perl/lib/Cwd.pm line 812.
[05-30-2016 :: 12:59:11] [Quests] Subroutine Cwd::getcwd redefined at C:/Perl/lib/Cwd.pm line 812.
[05-30-2016 :: 12:59:11] [Quests] Subroutine Cwd::abs_path redefined at C:/Perl/lib/Cwd.pm line 812.
[05-30-2016 :: 12:59:11] [Quests] Subroutine CalcDestFromHeading redefined at plugins/path_tools.pl line 221.
[05-30-2016 :: 12:59:11] [Quests] "my" variable $Item1 masks earlier declaration in same scope at plugins/quest_handin.pl line 19.
[05-30-2016 :: 12:59:11] [Quests] "my" variable $Item2 masks earlier declaration in same scope at plugins/quest_handin.pl line 21.
[05-30-2016 :: 12:59:11] [Quests] "my" variable $Item3 masks earlier declaration in same scope at plugins/quest_handin.pl line 23.
[05-30-2016 :: 12:59:11] [Quests] "my" variable $Item4 masks earlier declaration in same scope at plugins/quest_handin.pl line 25.
[05-30-2016 :: 12:59:11] [Quests] Subroutine RandomRange redefined at plugins/random_utils.pl line 3.
[05-30-2016 :: 12:59:11] [Quests] Subroutine moelib_spawn_block redefined at plugins/spawn_utils.pl line 2.
[05-30-2016 :: 12:59:11] [Quests] Subroutine moelib_spawn_block_center redefined at plugins/spawn_utils.pl line 23.
[05-30-2016 :: 12:59:11] [Quests] Subroutine moelib_spawn_circle redefined at plugins/spawn_utils.pl line 45.
[05-30-2016 :: 12:59:11] [Quests] Subroutine GetMaxLoSDistFromHeading redefined at plugins/spawn_utils.pl line 71.
[05-30-2016 :: 12:59:11] [Quests] Subroutine FaceBestHeading redefined at plugins/spawn_utils.pl line 134.
[05-30-2016 :: 12:59:11] [Quests] Subroutine HeadingToShortestLoS redefined at plugins/spawn_utils.pl line 204.
[05-30-2016 :: 12:59:11] [Quests] Subroutine MoveAwayFromWall redefined at plugins/spawn_utils.pl line 268.
[05-30-2016 :: 12:59:11] [Quests] Subroutine MoveToFirstBestZ redefined at plugins/spawn_utils.pl line 340.
[05-30-2016 :: 12:59:11] [Quests] Subroutine SpawnZone redefined at plugins/spawn_utils.pl line 373.
[05-30-2016 :: 12:59:11] [Quests] Subroutine GetReverseHeading redefined at plugins/spawn_utils.pl line 456.
[05-30-2016 :: 12:59:11] [Quests] Subroutine ConvertHeadingToDegrees redefined at plugins/spawn_utils.pl line 477.
[05-30-2016 :: 12:59:11] [Quests] Subroutine vtell redefined at plugins/voicetell.pl line 6.
[05-30-2016 :: 12:59:11] [Quests] Subroutine Autovtell redefined at plugins/voicetell.pl line 56.
[05-30-2016 :: 12:59:11] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:11] [Quests] Useless use of a constant (1730) in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:11] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 47.
[05-30-2016 :: 12:59:11] [Quests] Useless use of a constant (5125) in void context at quests/cabeast/Lord_Qyzar.pl line 47.
[05-30-2016 :: 12:59:11] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:11] [Quests] Useless use of a constant (5124) in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:11] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 57.
[05-30-2016 :: 12:59:11] [Quests] Useless use of a constant (5123) in void context at quests/cabeast/Lord_Qyzar.pl line 57.
[05-30-2016 :: 12:59:44] [Quests] Destroying EQEmuIO=HASH(0xe22323c)
[05-30-2016 :: 12:59:44] [Quests] Destroying EQEmuIO=HASH(0xe241e4c)
[05-30-2016 :: 12:59:44] [Quests] Tying perl output to eqemu logs
[05-30-2016 :: 12:59:44] [Quests] Creating EQEmuIO=HASH(0xe2d165c)
[05-30-2016 :: 12:59:44] [Quests] Creating EQEmuIO=HASH(0xe2b2a4c)
[05-30-2016 :: 12:59:44] [Quests] Loading perlemb plugins.
[05-30-2016 :: 12:59:44] [Quests] Unquoted string "false" may clash with future reserved word at plugins/Expeditions.pl line 375.
[05-30-2016 :: 12:59:44] [Quests] Subroutine Cwd::fastcwd redefined at C:/Perl/lib/Cwd.pm line 812.
[05-30-2016 :: 12:59:44] [Quests] Subroutine Cwd::getcwd redefined at C:/Perl/lib/Cwd.pm line 812.
[05-30-2016 :: 12:59:44] [Quests] Subroutine Cwd::abs_path redefined at C:/Perl/lib/Cwd.pm line 812.
[05-30-2016 :: 12:59:45] [Quests] Subroutine CalcDestFromHeading redefined at plugins/path_tools.pl line 221.
[05-30-2016 :: 12:59:45] [Quests] "my" variable $Item1 masks earlier declaration in same scope at plugins/quest_handin.pl line 19.
[05-30-2016 :: 12:59:45] [Quests] "my" variable $Item2 masks earlier declaration in same scope at plugins/quest_handin.pl line 21.
[05-30-2016 :: 12:59:45] [Quests] "my" variable $Item3 masks earlier declaration in same scope at plugins/quest_handin.pl line 23.
[05-30-2016 :: 12:59:45] [Quests] "my" variable $Item4 masks earlier declaration in same scope at plugins/quest_handin.pl line 25.
[05-30-2016 :: 12:59:45] [Quests] Subroutine RandomRange redefined at plugins/random_utils.pl line 3.
[05-30-2016 :: 12:59:45] [Quests] Subroutine moelib_spawn_block redefined at plugins/spawn_utils.pl line 2.
[05-30-2016 :: 12:59:45] [Quests] Subroutine moelib_spawn_block_center redefined at plugins/spawn_utils.pl line 23.
[05-30-2016 :: 12:59:45] [Quests] Subroutine moelib_spawn_circle redefined at plugins/spawn_utils.pl line 45.
[05-30-2016 :: 12:59:45] [Quests] Subroutine GetMaxLoSDistFromHeading redefined at plugins/spawn_utils.pl line 71.
[05-30-2016 :: 12:59:45] [Quests] Subroutine FaceBestHeading redefined at plugins/spawn_utils.pl line 134.
[05-30-2016 :: 12:59:45] [Quests] Subroutine HeadingToShortestLoS redefined at plugins/spawn_utils.pl line 204.
[05-30-2016 :: 12:59:45] [Quests] Subroutine MoveAwayFromWall redefined at plugins/spawn_utils.pl line 268.
[05-30-2016 :: 12:59:45] [Quests] Subroutine MoveToFirstBestZ redefined at plugins/spawn_utils.pl line 340.
[05-30-2016 :: 12:59:45] [Quests] Subroutine SpawnZone redefined at plugins/spawn_utils.pl line 373.
[05-30-2016 :: 12:59:45] [Quests] Subroutine GetReverseHeading redefined at plugins/spawn_utils.pl line 456.
[05-30-2016 :: 12:59:45] [Quests] Subroutine ConvertHeadingToDegrees redefined at plugins/spawn_utils.pl line 477.
[05-30-2016 :: 12:59:45] [Quests] Subroutine vtell redefined at plugins/voicetell.pl line 6.
[05-30-2016 :: 12:59:45] [Quests] Subroutine Autovtell redefined at plugins/voicetell.pl line 56.
[05-30-2016 :: 12:59:47] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:47] [Quests] Useless use of a constant (1730) in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:47] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 47.
[05-30-2016 :: 12:59:47] [Quests] Useless use of a constant (5125) in void context at quests/cabeast/Lord_Qyzar.pl line 47.
[05-30-2016 :: 12:59:47] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:47] [Quests] Useless use of a constant (5124) in void context at quests/cabeast/Lord_Qyzar.pl line 38.
[05-30-2016 :: 12:59:47] [Quests] Useless use of reference constructor in void context at quests/cabeast/Lord_Qyzar.pl line 57.
[05-30-2016 :: 12:59:47] [Quests] Useless use of a constant (5123) in void context at quests/cabeast/Lord_Qyzar.pl line 57.
I do repop the zone and use #reloadquest.
Reply With Quote
  #5  
Old 05-30-2016, 01:22 PM
jaspen
Hill Giant
 
Join Date: Apr 2016
Posts: 107
Default

Is it something to do with the && statements now? Do i need to wrap all the items together with additional ()? Like I said I am a complete idiot with this stuff but I am trying! I haven't found a good example of multiple items being turned in at the same time.

EDIT I believe this has fixed it. I will test and let you guys know. If it does, how do I submit the changes so that it works properly for future players?

(\%itemcount, 1729 => 1, 1730 => 1, 5124 => 1)
Reply With Quote
  #6  
Old 05-30-2016, 01:28 PM
jaspen
Hill Giant
 
Join Date: Apr 2016
Posts: 107
Default

Quote:
Originally Posted by cannon View Post
I believe all this does is checks a tomb to verify you are the class that you specify, so if your any other class trying to turn in the items you will get notified that you are not the correct class for the tomb.
It appears it is trying to pull from a plugin file named try_tome_handins. If that is the case, it does not exist. Is there a way of accomplishing this without that file?

EDIT: If I am misreading that and it isn't actually referring to an actual plugin file, let me know.
Reply With Quote
  #7  
Old 05-31-2016, 12:47 AM
ghanja's Avatar
ghanja
Dragon
 
Join Date: Aug 2012
Location: Hershey, PA
Posts: 499
Default

Code:
sub EVENT_ITEM {
	if (plugin::check_handin(\%itemcount, 12496 => 1, 5123 => 1)) { #Test of the Zealot (Greenmist Quest 4/8)
		quest::say("At last!! The Chalp diagram. I shall see that the emperor gets this at once. You have proven yourself more than just a mere knight, you are a zealot. Being new to the temple we have need of you in a [matter of betrayal].");
		quest::summonitem(5124);
		quest::givecash("0","0","6","1"); 
		quest::exp(1600);
		quest::ding();
		quest::faction(62,20);
		quest::faction(193,10);
	}
	elsif(plugin::check_handin(\%itemcount, 1729 => 1, 1730 => 1, 5124 => 1)){ #Test of Betrayal (Greenmist Quest 5/8)
		quest::say("Congratulations! You are now a true crusader, but there is no time for celebration. We have lost two of our operatives. Crusaders Golin and Fodcod were dispatched to seek out an ancient artifact, the [visceral dagger]. Where they have gone, I do not know. They have been gone far too long. Find them and return the dagger to me with your crusader khukri and you shall be a hero.");
		quest::summonitem(5125);
		quest::givecash("0","0","0","2"); 
		quest::exp(2000);
		quest::ding();
		quest::faction(62,20);
		quest::faction(193,10);
	}
	elsif(plugin::check_handin(\%itemcount, 7324 => 1, 5125 => 1)){ #Test of the Hero (Greenmist Quest 6/8)
		quest::emote("gazes in astonishment at the dagger. 'Ahhh!! You have brought the sacred visceral dagger back to the Temple of Terror. Let all be aware that the great $name has returned to Cabilis a hero!! You now wield the weapon of a hero. Hail, $name, hero of the Crusaders of Greenmist.");
		quest::summonitem(5126);
		quest::givecash("0","0","0","3"); 
		quest::exp(3000);
		quest::ding();
		quest::faction(62,20);
		quest::faction(193,10);
	}
	#plugin::try_tome_handins(\%itemcount, $class, 'Shadowknight');
	plugin::return_items(\%itemcount);
}
Reply With Quote
  #8  
Old 05-31-2016, 08:13 PM
cannon
Hill Giant
 
Join Date: Dec 2004
Location: Pittsburgh, PA
Posts: 128
Default

Quote:
Originally Posted by jaspen View Post
It appears it is trying to pull from a plugin file named try_tome_handins. If that is the case, it does not exist. Is there a way of accomplishing this without that file?

EDIT: If I am misreading that and it isn't actually referring to an actual plugin file, let me know.
That is in reference to a global plugin, shouldn't make the quest not work, it just verifies that you are the class of the hand in, change the code to what ghanja posted and then save the file, in game type #rq or #reloadquest and this will reload the quest on the server without restarting the server.
Reply With Quote
  #9  
Old 05-31-2016, 08:17 PM
jaspen
Hill Giant
 
Join Date: Apr 2016
Posts: 107
Default

Quote:
Originally Posted by cannon View Post
I believe all this does is checks a tomb to verify you are the class that you specify, so if your any other class trying to turn in the items you will get notified that you are not the correct class for the tomb.
Sorry about not updating you guys on this but I had some stuff come up. I had the problem solved in post #10 and ran through all steps with a test character. The quests work but I was trying to go the extra mile to make sure it did a class check as well.

I do appreciate all the responses though. If anyone knows how to get the class check in, let me know.
Reply With Quote
  #10  
Old 05-31-2016, 09:12 PM
ghanja's Avatar
ghanja
Dragon
 
Join Date: Aug 2012
Location: Hershey, PA
Posts: 499
Default

Code:
sub EVENT_ITEM {
	if ($class eq "Shadowknight") {
		if (plugin::check_handin(\%itemcount, 12496 => 1, 5123 => 1)) { #Test of the Zealot (Greenmist Quest 4/8)
			quest::say("At last!! The Chalp diagram. I shall see that the emperor gets this at once. You have proven yourself more than just a mere knight, you are a zealot. Being new to the temple we have need of you in a [matter of betrayal].");
			quest::summonitem(5124);
			quest::givecash("0","0","6","1"); 
			quest::exp(1600);
			quest::ding();
			quest::faction(62,20);
			quest::faction(193,10);
		}
		elsif(plugin::check_handin(\%itemcount, 1729 => 1, 1730 => 1, 5124 => 1)){ #Test of Betrayal (Greenmist Quest 5/8)
			quest::say("Congratulations! You are now a true crusader, but there is no time for celebration. We have lost two of our operatives. Crusaders Golin and Fodcod were dispatched to seek out an ancient artifact, the [visceral dagger]. Where they have gone, I do not know. They have been gone far too long. Find them and return the dagger to me with your crusader khukri and you shall be a hero.");
			quest::summonitem(5125);
			quest::givecash("0","0","0","2"); 
			quest::exp(2000);
			quest::ding();
			quest::faction(62,20);
			quest::faction(193,10);
		}
		elsif(plugin::check_handin(\%itemcount, 7324 => 1, 5125 => 1)){ #Test of the Hero (Greenmist Quest 6/8)
			quest::emote("gazes in astonishment at the dagger. 'Ahhh!! You have brought the sacred visceral dagger back to the Temple of Terror. Let all be aware that the great $name has returned to Cabilis a hero!! You now wield the weapon of a hero. Hail, $name, hero of the Crusaders of Greenmist.");
			quest::summonitem(5126);
			quest::givecash("0","0","0","3"); 
			quest::exp(3000);
			quest::ding();
			quest::faction(62,20);
			quest::faction(193,10);
		}
		#plugin::try_tome_handins(\%itemcount, $class, 'Shadowknight');
	}
	plugin::return_items(\%itemcount);
}
Reply With Quote
  #11  
Old 05-30-2016, 12:40 PM
cannon
Hill Giant
 
Join Date: Dec 2004
Location: Pittsburgh, PA
Posts: 128
Default

I am by no means a pro at this, but you can try, then you can do #rq to reload the quest in game after you save the quest.
Code:
if(plugin::check_handin(\%itemcount, 12496 => 1, 5123 => 1))
Reply With Quote
Reply

Thread Tools
Display Modes

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 02:26 PM.


 

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