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

04-24-2006, 02:25 AM
|
Dragon
|
|
Join Date: May 2003
Posts: 539
|
|
Forgot to write this, after you wrote a quest, you can test its syntax with perl :
Code:
perl -cw 'questfile.pl'
This will help you to fix some of the errors you made.
|

04-24-2006, 04:25 AM
|
Dragon
|
|
Join Date: May 2003
Posts: 539
|
|
What i wrote previously has a correct syntax but won't work due to recent changes in the plugin::check_handin method.
You MUST write your quest like that :
Code:
sub EVENT_ITEM {
if ($class =="Warrior") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
... do stuff here
}
}
if ($class == "Paladin") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
... do stuff here
}
}
...
...
plugin::return_items(\%itemcount);
}
In my previous code, the test for the paladin would never be valid because the item will disappear of the list during the warrior's test. I m still not used to that new check_handin, sorry for the error 
|

04-24-2006, 05:20 AM
|
Discordant
|
|
Join Date: Jan 2005
Posts: 320
|
|
Thanks a lot guys, With the info you gave I'm sure I can get it working. 
|
 |
|
 |

04-24-2006, 06:18 AM
|
Discordant
|
|
Join Date: Jan 2005
Posts: 320
|
|
After updating my quest to what you guys suggested It still doesn't want to work. Any more suggestions? Or maybe I overloocked something.
Code:
sub EVENT_SAY {
if ($text=~/hail/i) {
quest::say("Hello $name , I am one of the finest weaponsmiths this land has ever seen. If you find me a mold I will craft you a weapon. However if it is armor you seek, my brother makes the best around."); }
}
sub EVENT_ITEM {
if ($class =="Warrior") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Paladin")
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Shadow Knight") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Berserker") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Monk") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(6611);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Beastlord") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(6611);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Druid") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Necromancer") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Wizard") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Magician") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Enchanter") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Shaman") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Cleric") {
if (plugin::check_handin(\%itemcount, 6164 => 1)) {
quest::summonitem(29442);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
else {
plugin::return_items(\%itemcount);
quest::say("These are not the pieces I need.");
}
}
|
 |
|
 |
 |
|
 |

04-24-2006, 06:58 AM
|
Hill Giant
|
|
Join Date: Aug 2005
Posts: 107
|
|
you were missing a bracket in the paladin's code
Code:
sub EVENT_SAY
{
if ($text=~/hail/i)
{
quest::say("Hello $name , I am one of the finest weaponsmiths this land has ever seen. If you find me a mold I will craft you a weapon. However if it is armor you seek, my brother makes the best around.");
}
}
sub EVENT_ITEM
{
if ($class =="Warrior")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Paladin")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Shadow Knight")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Berserker")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(62189);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Monk")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(6611);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Beastlord")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(6611);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Druid")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Necromancer")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Wizard")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Magician")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Enchanter")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Shaman")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(29422);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
if ($class == "Cleric")
{
if (plugin::check_handin(\%itemcount, 6164 => 1))
{
quest::summonitem(29442);
quest::exp(750);
quest::emote("smiles warmly as he hands you your weapon.");
quest::ding();
}
}
else
{
plugin::return_items(\%itemcount);
quest::say("These are not the pieces I need.");
}
}
You may try formatting your code like that as it can be a lot easier to keep track of brackets and code segments.
|
 |
|
 |

04-24-2006, 07:04 AM
|
Demi-God
|
|
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
|
|
Aren't you supposed to use the eq operator and not the == operator for strings?
if($class eq 'Warrior') { /* ... */ }
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.
|

04-24-2006, 08:12 AM
|
Dragon
|
|
Join Date: May 2003
Posts: 539
|
|
Using eq instead of == is a good idea, yes
About the else at the end of your code. It has no sense.
just add plugin::return_items(\%itemcount); without test.
check_handin verifies that you gave the right amount of items and removes them of the list of given items.
At the end of the quest, you call return_items to give back to the player each item that remains in the list. Don't include it in a test, just do it or don't do it.
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 12:36 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |