View Single Post
  #5  
Old 07-23-2008, 03:31 PM
So_1337
Dragon
 
Join Date: May 2006
Location: Cincinnati, OH
Posts: 689
Default

As for the spell scribing script, figured I'd share. This is the script I use on our server. Some of it pertains to only us, but I commented a few of the lines and you're welcome to use whatever you'd like.

Two things that might need explained -- I use custom hails for certain characters to get a personal response. So the hail check checks for character names and gives a special response if the character name matches =)

The second thing is that every class (except mages) can have their spells scribed up through 51. Mages are the exception because I didn't want them getting a free epic. As you can see in the script, she points mages to Progression Status when they hit 45. He's a custom NPC I use so players can check what landmarks for progression to the next expansion have been unlocked and which remain. In addition, he's been flagged as a vendor with mage spells on him from 45-51. If you don't mind mages having a free epic, you can take out the exceptions that I put in place.

Hopefully you find some use for either parts or all of this =)

Code:
sub EVENT_SAY {
 if($text =~ /hail/i && $name =~ /Greenmist/) {
  quest::say("I love you! <3");
 }
 elsif($text =~ /hail/i && $name =~ /Tissirja/) {
  quest::say("My favorite cleric! <3");
 }
 elsif($text =~ /hail/i && $name =~ /Chinc/) {
  quest::say("Haha. You're hung like a five year old. Go back to playing Starcraft, we all hate you.");
 }
 elsif($text =~ /hail/i && $name =~ /Arcite/) {
  quest::say("Fall to the ground and stay there forever. Please. What, you gonna cry about it? Go worsen your wounds, emo monk.");
 }
 elsif($text =~ /hail/i) {
  quest::say("Welcome to the Order of Hasson server, how can I help you today? Would you like me to help you [scribe] your spells? Or maybe [heal] your wounds? Or maybe you'd like me to [bind] your soul?");
 }
 elsif ($text =~ /scribe/i && $ulevel <= 51 && $class ne Magician) {
  quest::say("Very well, here you are $name!");
  quest::scribespells();
 }
 elsif($text =~ /scribe/i && $ulevel <= 44 && $class == Magician) {
  quest::say("Very well, here you are $name!");
  quest::scribespells();
 }
 elsif($text =~ /scribe/i && $ulevel >= 45 && $class == Magician) {
  quest::say("Sorry, $name.  You are too high to have any spells scribed! Progression Status over there should have your spells from 45-51, though!");
  quest::emote("waves at Progression Status.");
 }
 elsif ($text =~ /scribe/i && $ulevel >= 52) {
  quest::say("Sorry, $name.  You are too high to have any spells scribed!");
 }
 elsif($text =~ /heal/i) { #Fully heals mana and health
  quest::say("Let me fix that for you!");
  quest::selfcast(13);
  quest::selfcast(999);
 }
 elsif($text =~ /bind/i) { #Binds players
  quest::say("Binding your soul!");
  quest::selfcast(35);
 }
 elsif($text =~ /retard/i) { #Fixes common tongue for lizards
  quest::say("Yes, I'm sure you're tired of being a retard who can't speak proper English. Have a lesson!");
  quest::setlanguage(0,100);
 }
}

sub EVENT_ITEM { #This portion allows her to cast GM haste on players who give her 1 platinum, 3 gold, 3 silver, and 7 copper. However, she has a 10% chance to DT players who do so and shout their name across all zones.
 if(($platinum==1) && ($gold==3) && ($silver==3) && ($copper==7)) {
 my $Chance = quest::ChooseRandom(1,2,3,4,5,6,7,8,9,10);
 if ($Chance == '1') {
  $client->Damage($npc, 1000000, SPELL_UNKNOWN, 2);
  quest::shout2("$name!");
 }
  quest::selfcast(6593);
  quest::say("Hehe, enjoy!");
 }
else{
  quest::say("What the hell am I supposed to do with that? Take it back. And get away from me, freak!");
  plugin::return_items(\%itemcount);
 }
}

#Submitted by Jim Mills
Reply With Quote