View Single Post
  #1  
Old 01-16-2008, 07:08 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default Armor Quest for all Classes and Teleporter

This is an armor quest for all classes. The quest will also teleport the player to a zone (crushbone in this example).


The player gets drops from a zone that are notes, molds, instructions, or whatever you want to name them. An example of the items I created for this quest are "Boot Instructions". Any class can turn in those boot instructions and get boots specific to their class, and the same goes for all of the other instructions for the rest of the armor set (7 total different pieces). All you need to do is create the 7 different custom note drops, and add them to the quest, and then either find pre-existing class specific armor sets or make your own custom ones and add them to the quest. It is pretty straight foward.

In the code below, I have PoH/PoF armor already in for the pure melee classes. So, you can try it out easily just by making your custom notes and plugging the ID into the check_handin. I have tested this quest and it works 100% on my server.

You will need to edit the npc text to reflect what you want/need.

Code:
#############
#Quest Name: An Armor Quest for all Classes and Teleporter
#Author: Trevius
#NPCs Involved: The quest giver NPC can have any name you want.
#Items Involved: 7 notes made custom, and any class specific armor sets.
#################
sub EVENT_SAY
{
if ($text =~/Hail/i)
 {
quest::say ("Hey there, $name. I can send you to [crusbone] if ya want.  That area is best suited for players of 1 to 20 season.  And if you do head that way, please see if you can find any of their instructions for [armor] crafting.  What say you?");
 }
if ($text =~/armor/i)
 {
quest::say ("Yes, it is said that some of the Orcs of Crushbone hold instructions for basic armor crafting.  I think they sound perfect for a novice crafter such as myself.  Would you like to hear more [rumors] about the instructions? ");
 }
 if ($text =~/rumors/i)
 {
quest::say ("I hear the easier parts to make are kept by the common Orcs you will find there, but the harder leggings and chest instructions are only to be had by Emperor Crush himself, and his Ambassador.");
 }
if ($text =~/crushbone/i)
 {
quest::say ("Off ya go!");
quest::emote ("fumbles about trying to cast a spell.  Let's hope you arrive where you were heading safely...");
quest::movepc(58, 158,-644,4);
 }
}

sub EVENT_ITEM {
if ($class == 'Warrior' || $class == 'Rogue' || $class == 'Monk' || $class == 'Berserker' || $class == 'Shadowkight' || $class == 'Paladin' || $class == 'Ranger' || $class == 'Bard' || $class == 'Beastlord' || $class == 'Cleric' || $class == 'Druid' || $class == 'Shaman' || $class == 'Wizard' || $class == 'Mage' || $class == 'Enchanter' || $class == 'Necromancer') {
  if (plugin::check_handin(\%itemcount, 1319 => 1)) {
    my %rewards = (
"Warrior" => 4917, "Rogue" => 4907, "Monk" => 1206, "Berserker" => 55607, "Shadowknight" => 9829, "Paladin" => 9829, "Ranger" => 9829, "Bard" => 9829, "Beastlord" => 9829, "Cleric" => 9829, "Druid" => 9829, "Shaman" => 9829, "Wizard" => 9829, "Mage" => 9829, "Enchanter" => 9829, "Necromancer" => 9829
    );

    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.");
    }
}
  if (plugin::check_handin(\%itemcount, 1323 => 1)) {
    my %rewards = (
"Warrior" => 4915, "Rogue" => 4905, "Monk" => 1204, "Berserker" => 55605, "Shadowknight" => 9829, "Paladin" => 9829, "Ranger" => 9829, "Bard" => 9829, "Beastlord" => 9829, "Cleric" => 9829, "Druid" => 9829, "Shaman" => 9829, "Wizard" => 9829, "Mage" => 9829, "Enchanter" => 9829, "Necromancer" => 9829
    );

    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.");
    }
}
  if (plugin::check_handin(\%itemcount, 1353 => 1)) {
    my %rewards = (
"Warrior" => 4913, "Rogue" => 4903, "Monk" => 1202, "Berserker" => 55603, "Shadowknight" => 9829, "Paladin" => 9829, "Ranger" => 9829, "Bard" => 9829, "Beastlord" => 9829, "Cleric" => 9829, "Druid" => 9829, "Shaman" => 9829, "Wizard" => 9829, "Mage" => 9829, "Enchanter" => 9829, "Necromancer" => 9829
    );

    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.");
    }
}
  if (plugin::check_handin(\%itemcount, 1372 => 1)) {
    my %rewards = (
"Warrior" => 4911, "Rogue" => 4901, "Monk" => 1378, "Berserker" => 55601, "Shadowknight" => 9829, "Paladin" => 9829, "Ranger" => 9829, "Bard" => 9829, "Beastlord" => 9829, "Cleric" => 9829, "Druid" => 9829, "Shaman" => 9829, "Wizard" => 9829, "Mage" => 9829, "Enchanter" => 9829, "Necromancer" => 9829
    );

    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.");
    }
}
  if (plugin::check_handin(\%itemcount, 1373 => 1)) {
    my %rewards = (
"Warrior" => 4914, "Rogue" => 4904, "Monk" => 1203, "Berserker" => 55604, "Shadowknight" => 9829, "Paladin" => 9829, "Ranger" => 9829, "Bard" => 9829, "Beastlord" => 9829, "Cleric" => 9829, "Druid" => 9829, "Shaman" => 9829, "Wizard" => 9829, "Mage" => 9829, "Enchanter" => 9829, "Necromancer" => 9829
    );

    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.");
    }
}
  if (plugin::check_handin(\%itemcount, 1375 => 1)) {
    my %rewards = (
"Warrior" => 4916, "Rogue" => 4906, "Monk" => 1205, "Berserker" => 55606, "Shadowknight" => 9829, "Paladin" => 9829, "Ranger" => 9829, "Bard" => 9829, "Beastlord" => 9829, "Cleric" => 9829, "Druid" => 9829, "Shaman" => 9829, "Wizard" => 9829, "Mage" => 9829, "Enchanter" => 9829, "Necromancer" => 9829
    );

    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.");
    }
}
  if (plugin::check_handin(\%itemcount, 1377 => 1)) {
    my %rewards = (
"Warrior" => 4912, "Rogue" => 4902, "Monk" => 1201, "Berserker" => 55602, "Shadowknight" => 9829, "Paladin" => 9829, "Ranger" => 9829, "Bard" => 9829, "Beastlord" => 9829, "Cleric" => 9829, "Druid" => 9829, "Shaman" => 9829, "Wizard" => 9829, "Mage" => 9829, "Enchanter" => 9829, "Necromancer" => 9829
    );

    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.");
	}  
}
}
Reply With Quote