|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Quests::Custom Custom Quests here |
 |
|
 |

06-03-2009, 06:13 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Technically, it should have been "$class eq 'Warrior'", not "$class == 'Warrior'", but I could never get it to work that way for some reason. My best guess is that it is automatically replacing the class name with the number. If so, then I don't see any reason why using the numbers wouldn't work. It might be a bit harder to reference what is going on in your scripts though if you do.
The reason I mentioned the new code I am using is because checking for which class it is should not have to be done with an array, since $class already does that. You just have to do things in the right order for them to work properly. It can make scripts much easier to manage. I am probably going to try to work up some more similar variations to the script above that I just posted. I will try to get one up that also has arrays for turn ins. It should make dealing with armor quests or epic quests considerably cleaner and much less scripting.
|
 |
|
 |

06-03-2009, 06:19 PM
|
Dragon
|
|
Join Date: Feb 2007
Posts: 659
|
|
Actually, it should be $class eq "Warrior" with double quotes. Using single quotes is an array of char's, while double quotes is used for strings. Maybe why it didn't work. I like the way you do it now with the hashes. That's pretty slick. I love perl.
|

06-17-2009, 01:50 PM
|
Hill Giant
|
|
Join Date: Sep 2008
Posts: 204
|
|
[QUOTE=Andrew80k;171254]Actually, it should be $class eq "Warrior" with double quotes. Using single quotes is an array of char's, while double quotes is used for strings.QUOTE]
This solved another problem of mine. Thanks Andrew80K.
|

06-17-2009, 01:51 PM
|
Hill Giant
|
|
Join Date: Sep 2008
Posts: 204
|
|
no idea how, but double post.. sry ><
|
 |
|
 |

09-03-2009, 12:57 PM
|
Fire Beetle
|
|
Join Date: Jul 2004
Posts: 11
|
|
Thanks for the quest trev. I have edited the quest some but every time I turn in an item the NPC always says "I have no use for this item NAME, take it back". He says it whether I give him the right item, or if I give him a wrong item. He also never gives any item back. Here is the code im using:
Code:
sub EVENT_SAY
{
my $armor = quest::saylink("Armor");
my $rumor = quest::saylink("Rumors");
if ($text =~/Hail/i)
{
quest::say ("Hey there, $name. As you know chaos has taken our land, and this is the only safehaven left for us. The minions of chaos have started their infiltration into our palace here, and we need your help! If you head into the castle, please see if you can find any of their instructions for [$armor] crafting. That way I can aid you in your fight against Chaos.");
}
if ($text =~/armor/i)
{
quest::say ("Yes, it is said that some of the minions inside the castle hold instructions for basic armor crafting. I think they sound perfect for a novice crafter such as myself. Would you like to hear more [$rumor] about the instructions? ");
}
if ($text =~/rumors/i)
{
quest::say ("I hear the easier parts to make are kept by the common minions you will find there, but the harder leggings and chest instructions are only to be had by the leaders.");
}
}
sub EVENT_ITEM {
if ($class == 'Warrior' || $class == 'Rogue' || $class == 'Monk' || $class == 'Shadowkight' || $class ==
'Paladin' || $class == 'Ranger' || $class == 'Bard' || $class == 'Cleric' || $class == 'Druid' || $class ==
'Shaman' || $class == 'Wizard' || $class == 'Magician' || $class == 'Enchanter' || $class == 'Necromancer') {
#Gloves
if (plugin::check_handin(\%itemcount, 1119 => 1)) {
my %rewards = (
"Warrior" => 27583, "Rogue" => 22690, "Monk" => 1319, "Shadowknight" => 19892, "Paladin" => 61149, "Ranger" => 27514,
"Bard" => 27528, "Cleric" => 20313, "Druid" => 19682, "Shaman" => 55122, "Wizard" => 63032, "Magician" => 27384, "Enchanter"
=> 20327, "Necromancer" => 22595
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Bracer
if (plugin::check_handin(\%itemcount, 1261 => 1)) {
my %rewards = (
"Warrior" => 27579, "Rogue" => 22686, "Monk" => 1323, "Shadowknight" => 19891, "Paladin" => 61145, "Ranger" => 27510,
"Bard" => 27524, "Cleric" => 20309, "Druid" => 19681, "Shaman" => 55121, "Wizard" => 63087, "Magician" => 27380, "Enchanter"
=> 20323, "Necromancer" => 22591
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Arms
if (plugin::check_handin(\%itemcount, 1264 => 1)) {
my %rewards = (
"Warrior" => 27580, "Rogue" => 22687, "Monk" => 1352, "Shadowknight" => 19890, "Paladin" => 61146, "Ranger" => 27511,
"Bard" => 27525, "Cleric" => 20310, "Druid" => 19680, "Shaman" => 55120, "Wizard" => 63077, "Magician" => 27381, "Enchanter"
=> 20324, "Necromancer" => 22593
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Helm
if (plugin::check_handin(\%itemcount, 1265 => 1)) {
my %rewards = (
"Warrior" => 27578, "Rogue" => 22685, "Monk" => 1353, "Shadowknight" => 19888, "Paladin" => 61144, "Ranger" => 27509,
"Bard" => 27523, "Cleric" => 20308, "Druid" => 19678, "Shaman" => 55119, "Wizard" => 63034, "Magician" => 27379, "Enchanter"
=> 20322, "Necromancer" => 22590
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Boots
if (plugin::check_handin(\%itemcount, 1266 => 1)) {
my %rewards = (
"Warrior" => 27581, "Rogue" => 22688, "Monk" => 1372, "Shadowknight" => 19894, "Paladin" => 61147, "Ranger" => 27512,
"Bard" => 27526, "Cleric" => 20311, "Druid" => 19684, "Shaman" => 55123, "Wizard" => 63033, "Magician" => 27382, "Enchanter"
=> 20325, "Necromancer" => 22592
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Legs
if (plugin::check_handin(\%itemcount, 1267 => 1)) {
my %rewards = (
"Warrior" => 27582, "Rogue" => 22689, "Monk" => 1373, "Shadowknight" => 19893, "Paladin" => 61148, "Ranger" => 27513,
"Bard" => 27527, "Cleric" => 20312, "Druid" => 19683, "Shaman" => 55124, "Wizard" => 63078, "Magician" => 27383, "Enchanter"
=> 20326, "Necromancer" => 22594
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Breastplate
if (plugin::check_handin(\%itemcount, 1270 => 1)) {
my %rewards = (
"Warrior" => 27584, "Rogue" => 22692, "Monk" => 1374, "Shadowknight" => 19889, "Paladin" => 61150, "Ranger" => 27515,
"Bard" => 27529, "Cleric" => 20314, "Druid" => 19679, "Shaman" => 55125, "Wizard" => 63040, "Magician" => 27385, "Enchanter"
=> 20328, "Necromancer" => 22596
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
else {
plugin::return_items(\%itemcount);
quest::say("I have no use for this item, $name. Take it back.");
}
}
}
|
 |
|
 |
 |
|
 |

09-03-2009, 01:41 PM
|
Hill Giant
|
|
Join Date: Sep 2008
Posts: 204
|
|
I think just some "if" should be "elsif", see below (cant test it atm though, but should work).
Code:
sub EVENT_SAY
{
my $armor = quest::saylink("Armor");
my $rumor = quest::saylink("Rumors");
if ($text =~/Hail/i)
{
quest::say ("Hey there, $name. As you know chaos has taken our land, and this is the only safehaven left for us. The minions of chaos have started their infiltration into our palace here, and we need your help! If you head into the castle, please see if you can find any of their instructions for [$armor] crafting. That way I can aid you in your fight against Chaos.");
}
if ($text =~/armor/i)
{
quest::say ("Yes, it is said that some of the minions inside the castle hold instructions for basic armor crafting. I think they sound perfect for a novice crafter such as myself. Would you like to hear more [$rumor] about the instructions? ");
}
if ($text =~/rumors/i)
{
quest::say ("I hear the easier parts to make are kept by the common minions you will find there, but the harder leggings and chest instructions are only to be had by the leaders.");
}
}
sub EVENT_ITEM {
if ($class == 'Warrior' || $class == 'Rogue' || $class == 'Monk' || $class == 'Shadowkight' || $class ==
'Paladin' || $class == 'Ranger' || $class == 'Bard' || $class == 'Cleric' || $class == 'Druid' || $class ==
'Shaman' || $class == 'Wizard' || $class == 'Magician' || $class == 'Enchanter' || $class == 'Necromancer') {
#Gloves
if (plugin::check_handin(\%itemcount, 1119 => 1)) {
my %rewards = (
"Warrior" => 27583, "Rogue" => 22690, "Monk" => 1319, "Shadowknight" => 19892, "Paladin" => 61149, "Ranger" => 27514,
"Bard" => 27528, "Cleric" => 20313, "Druid" => 19682, "Shaman" => 55122, "Wizard" => 63032, "Magician" => 27384, "Enchanter"
=> 20327, "Necromancer" => 22595
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Bracer
elsif (plugin::check_handin(\%itemcount, 1261 => 1)) {
my %rewards = (
"Warrior" => 27579, "Rogue" => 22686, "Monk" => 1323, "Shadowknight" => 19891, "Paladin" => 61145, "Ranger" => 27510,
"Bard" => 27524, "Cleric" => 20309, "Druid" => 19681, "Shaman" => 55121, "Wizard" => 63087, "Magician" => 27380, "Enchanter"
=> 20323, "Necromancer" => 22591
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Arms
elsif (plugin::check_handin(\%itemcount, 1264 => 1)) {
my %rewards = (
"Warrior" => 27580, "Rogue" => 22687, "Monk" => 1352, "Shadowknight" => 19890, "Paladin" => 61146, "Ranger" => 27511,
"Bard" => 27525, "Cleric" => 20310, "Druid" => 19680, "Shaman" => 55120, "Wizard" => 63077, "Magician" => 27381, "Enchanter"
=> 20324, "Necromancer" => 22593
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Helm
elsif (plugin::check_handin(\%itemcount, 1265 => 1)) {
my %rewards = (
"Warrior" => 27578, "Rogue" => 22685, "Monk" => 1353, "Shadowknight" => 19888, "Paladin" => 61144, "Ranger" => 27509,
"Bard" => 27523, "Cleric" => 20308, "Druid" => 19678, "Shaman" => 55119, "Wizard" => 63034, "Magician" => 27379, "Enchanter"
=> 20322, "Necromancer" => 22590
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Boots
elsif (plugin::check_handin(\%itemcount, 1266 => 1)) {
my %rewards = (
"Warrior" => 27581, "Rogue" => 22688, "Monk" => 1372, "Shadowknight" => 19894, "Paladin" => 61147, "Ranger" => 27512,
"Bard" => 27526, "Cleric" => 20311, "Druid" => 19684, "Shaman" => 55123, "Wizard" => 63033, "Magician" => 27382, "Enchanter"
=> 20325, "Necromancer" => 22592
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Legs
elsif (plugin::check_handin(\%itemcount, 1267 => 1)) {
my %rewards = (
"Warrior" => 27582, "Rogue" => 22689, "Monk" => 1373, "Shadowknight" => 19893, "Paladin" => 61148, "Ranger" => 27513,
"Bard" => 27527, "Cleric" => 20312, "Druid" => 19683, "Shaman" => 55124, "Wizard" => 63078, "Magician" => 27383, "Enchanter"
=> 20326, "Necromancer" => 22594
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
#Breastplate
elsif (plugin::check_handin(\%itemcount, 1270 => 1)) {
my %rewards = (
"Warrior" => 27584, "Rogue" => 22692, "Monk" => 1374, "Shadowknight" => 19889, "Paladin" => 61150, "Ranger" => 27515,
"Bard" => 27529, "Cleric" => 20314, "Druid" => 19679, "Shaman" => 55125, "Wizard" => 63040, "Magician" => 27385, "Enchanter"
=> 20328, "Necromancer" => 22596
);
if(defined($rewards{$class})) {
quest::summonitem($rewards{$class});
quest::emote("Works to make a piece of armor from the instructions you provided to him." );
quest::say ("Here you go $name.");
}
}
else {
plugin::return_items(\%itemcount);
quest::say("I have no use for this item, $name. Take it back.");
}
}
}
__________________
|
 |
|
 |

09-03-2009, 01:49 PM
|
Fire Beetle
|
|
Join Date: Jul 2004
Posts: 11
|
|
Thanks so much for your help Lillu, I will test this when I am at home from work 
|
Thread Tools |
|
Display Modes |
Hybrid Mode
|
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 01:36 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |