EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Custom (https://www.eqemulator.org/forums/forumdisplay.php?f=671)
-   -   Simple Translocator (https://www.eqemulator.org/forums/showthread.php?t=29903)

Vexyl 11-01-2009 02:14 PM

Simple Translocator
 
Started up my server recently and am doing a lot of quest/database/code testing. Here is just a simple translocator I use for my Master Translocator NPC:

Note: The "training" option is for a not yet implemented wizard quest. PoKnowledge is blocked in the quest for my server. The #zonestart command is a custom command I added to teleport back to the start area. The translocator will teleport you to any valid short name zone you give it except PoKnowledge/Sunset Home (Which can be changed, of course.). There are no error checking in this version. Here it is:

Code:


sub EVENT_SAY {

        if ($text=~/hail/i) {
       
        if ($class =~ Wizard) {
       
                quest::say("Greetings $name, do you seek [training] to become a High $class? Or just need to be [translocated] somewhere?");
               
        }
       
        else {
       
        quest::say("Hello mortal. Do you seek to be [translocated] somewhere?");
       
        }
       
        }
       
        elsif ($text=~/training/i) {
       
        if ($class =~ Wizard) {
       
        quest::say("I have no tasks for you today to become a High $class.");
       
        }
       
        }
       
        elsif ($text=~/translocated/i) {
       
                quest::say("State the short name of the zone you wish to go.");
                $port0 = 1;
                $teleName = $name;
               
        }
       
        else {
       
        if ($port0 =~ 1) {
       
                $portApproved = 1;
               
        if ($text =~ poknowledge || $text =~ cshome) {
       
                $portApproved = 0;
                       
        }
       
        if ($portApproved =~ 1) {
       
        if ($teleName =~ $name) {
       
                quest::say("$name has been approved for translocation to $text.");
                quest::say("Attempting to teleport $name to $text.");
                quest::say("Remember, to teleport back to Crushbone say #zonestart.");
                quest::zone($text);
               
        }
       
        }
       
        else {
       
                quest::say("Translocation to $text is not possible, $name.");
               
        }
       
                $port0 = 0;
                $teleName = "";
               
        }
       
        }
       
        }
       
}

sub EVENT_ATTACK {

                quest::emote("laughs at you.");
                quest::say("None shall defeat the mighty Elite Squads.");
               
}


sub EVENT_DEATH {

                quest::say("This...is...impossi--");
                quest::me("You hear Solusek Ro's name chanted quietly, as High Wizard Vivi's remains disappears.);

}


sub EVENT_SLAY {

                quest::say("None shall fight the High Wizard Council and live to tell the tale!");
               
}

Hope it helps!


All times are GMT -4. The time now is 01:54 PM.

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