EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Spell Scriber Quest (https://www.eqemulator.org/forums/showthread.php?t=29781)

reddogut 10-12-2009 10:22 PM

Spell Scriber Quest
 
I am trying to create a quest that will scribe spells for a level 10 or under Ranger only. I want the NPC to turn away any other class and any Rangers over level 10.

This is what I have so far, but I can't even get the npc to reply.

Code:

sub EVENT_SAY {

  if ($text=~/hail/i) {
    quest::say ("Good day to you, $name. For free I will teach all Rangers level 10 and under all of your [spells] up to level 10. After that it will cost you, although not much."); }
  if ($text=~/spells/i && $class != "Ranger") {
    quest::say ("I am sorry $class, but I cannot help you"); }
  elseif ($text=~/spells/i && $class == "Ranger" && $ulevel >=11) {
    quest::say ("Yes, you are a Ranger, but your level is too high for me. Go see NAME."); }
  elseif ($text=~/spells/i && $class == "Ranger" && $ulevel <= 10) {
    quest::say ("Good, stand where you are while I begin your lessons");
    quest::scribespells($ulevel); }

}


trevius 10-12-2009 10:40 PM

Give this a try and see if it works for you:

Code:

sub EVENT_SAY {

        my $spells = quest::saylink("Please teach me all of my spells up to $ulevel.", 0, "spells");

        if ($text=~/hail/i)
        {
                if ($class eq "Ranger")
                {
                        if ($ulevel <= 10)
                        {
                                quest::say ("Good day to you, $name. For free I will teach all Rangers level 10 and under all of your [$spells] up to level 10. After that it will cost you, although not much.");
                        }
                        else
                        {
                                quest::say ("Yes, you are a Ranger, but your level is too high for me. Go see NAME.");
                        }
                }
                else
                {
                        quest::say ("I am sorry $class, but I cannot help you");
                }
        }
       
        if ($text=~/spells/i && $class eq "Ranger" && $ulevel <= 10)
        {
                quest::say ("Good, stand where you are while I begin your lessons");
                quest::scribespells($ulevel);
        }

}

If that doesn't work, you may need to replace the double quotes (") around "Ranger" with single quotes (') like this:

Code:

$class eq 'Ranger'
I forget which one it needs or if it even matters in this case.

reddogut 10-12-2009 10:52 PM

It worked perfectly Trevius. You rock!

-Mike


All times are GMT -4. The time now is 05:44 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.