EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Custom (https://www.eqemulator.org/forums/forumdisplay.php?f=671)
-   -   Translocator Quest To Many Common Zones (https://www.eqemulator.org/forums/showthread.php?t=25015)

trevius 04-17-2008 03:07 AM

Translocator Quest To Many Common Zones
 
I made this a while back and I figured it might come in handy for others looking for a quick solution to give access to popular zones. It is just a teleporter with many common and popular zones. It definitely isn't all of them, but it is a start. You can easily use notepad to do replaces on the text throughout the quest to change wording or NPC name or whatever.

Code:

#############
#Quest Name: Translocator
#Author: Trevius of Storm Haven
#############

sub EVENT_SAY
{
if ($text =~/Hail/i)
 {
quest::say ("Hey there, $name. If you know the shortname of the zone you would like to go to, just tell me and I will see if I have a spell to send you there.");
 }
if ($text =~/crushbone/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(58, 158,-644,4); }
if ($text =~/cazicthule/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(48, -80,80,5.5); }
if ($text =~/akanon/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(55, -35,47,4); }
if ($text =~/bothunder/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(209, 207,178,-1620); }
if ($text =~/befallen/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(36, 35.22,-75.27,2.19); }
if ($text =~/blackburrow/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(17, 38.92,-158.97,3.75); }
if ($text =~/cabeast/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(106, -416,1343,4); }
if ($text =~/cabwest/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(82, 790,165,3.75); }
if ($text =~/mistmoore/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(59, 123,-295,-177); }
if ($text =~/chardok/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(103, 859,119,106); }
if ($text =~/thurgadina/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(115, 0,-1222,0); }
if ($text =~/veksar/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(109, -1,-514.5,49); }
if ($text =~/cobaltscar/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(117, 895,-939,318); }
if ($text =~/crystal/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(121, 303,487,-74); }
if ($text =~/dalnir/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(104, 90,8,3.75); }
if ($text =~/necropolis/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(123, 2000,-100,5); }
if ($text =~/dreadlands/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(86, 9565.05,2806.04,1045.2); }
if ($text =~/dulak/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(225, 438,548,4); }
if ($text =~/freporte/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(10, -648,-1097,-52.2); }
if ($text =~/echo/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(153, -800,840,-25); }
if ($text =~/erudnext/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(24, -309.75,109.64,23.75); }
if ($text =~/unrest/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(63, 52,-38,3.75); }
if ($text =~/everfrost/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(30, 682.74,3139.01,-60.16); }
if ($text =~/fieldofbone/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(78, 1617,-1684,-54.78); }
if ($text =~/fungusgrove/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(157, -1005,-2140,-308); }
if ($text =~/greatdivide/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(118, -965,-7720,-557); }
if ($text =~/grobb/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(52, 0,-100,4); }
if ($text =~/guktop/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(65, 7,-36,4); }
if ($text =~/halas/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(29, 0,0,3.75); }
if ($text =~/highkeep/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(6, 88,-16,4); }
if ($text =~/charasis/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(105, 0,0,-4.25); }
if ($text =~/paw/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(18, -7.9,-79.3,4); }
if ($text =~/kael/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(113, -633,-47,128); }
if ($text =~/kaesora/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(88, 40,370,99.72); }
if ($text =~/karnor/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(102, 0,0,4); }
if ($text =~/kurn/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(97, 77.72,-277.64,3.75); }
if ($text =~/lakeofillomen/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(85, -5383.07,5747.14,68.27); }
if ($text =~/nurga/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(107, 150,-1062,-107); }
if ($text =~/soldungb/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(32, -262.7,-423.99,-108.22); }
if ($text =~/najena/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(44, -22.6,229.1,-41.8); }
if ($text =~/nexus/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(152, 0,0,-28); }
if ($text =~/freportn/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(8, 211,-296,4); }
if ($text =~/nro/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(34, 299.12,3537.9,-24.5); }
if ($text =~/oggok/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(49, -99,-345,4); }
if ($text =~/sebilis/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(89, 0,235,40); }
if ($text =~/permafrost/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(73, 0,0,3.75); }
if ($text =~/airplane/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(71, 542.45,1384.6,-650); }
if ($text =~/fearplane/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(72, 1282.09,-1139.03,1.67); }
if ($text =~/growthplane/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(127, 3016,-2522,-19); }
if ($text =~/^hateplane$/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(76, -353.08,-374.8,3.75); }
if ($text =~/poinnovation/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(206, 241,509,-52.8); }
if ($text =~/poknowledge/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(202, -55.82,43.93,-158.81); }
if ($text =~/mischiefplane/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(126, -395,-1410,115); }
if ($text =~/ponightmare/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(204, 1668,282,210.4); }
if ($text =~/postorms/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(210, -1755.7,-2001.1,-463.8); }
if ($text =~/povalor/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(208, 207.4,-1615.1,77.9); }
if ($text =~/qeytoqrg/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(4, 196.7,5100.9,-1); }
if ($text =~/rivervale/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(19, 45.3,1.6,3.8); }
if ($text =~/runnyeye/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(11, -21.85,-108.88,3.75); }
if ($text =~/shadowhaven/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(150, 190,-982,-28); }
if ($text =~/skyshrine/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(114, -730,-210,0); }
if ($text =~/soldunga/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(31, -485.77,-476.04,73.72); }
if ($text =~/sro/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(35, 286,1265,79); }
if ($text =~/felwitheb/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(62, -790,320,-10.25); }
if ($text =~/ssratemple/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(162, 0,0,4); }
if ($text =~/qrg/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(3, 136.9,-65.9,4); }
if ($text =~/acrylia/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(154, -664,10,3.2); }
if ($text =~/arena/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(77, 460.9,-41.4,-7.38); }
if ($text =~/burningwood/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(87, -820,-4942,200.31); }
if ($text =~/citymist/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(90, -734,28,3.75); }
if ($text =~/sharvahl/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(155, 85,-1135,-188); }
if ($text =~/nadox/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(227, -643.06,-1349.17,-40.87); }
if ($text =~/dawnshroud/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(174, 2085,0,89); }
if ($text =~/thegrey/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(171, 349,-1994,-26); }
if ($text =~/gunthak/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(224, -938.34,1644.83,25.94); }
if ($text =~/hole/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(39, -1049.98,640.04,-77.22); }
if ($text =~/jaggedpine/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(181, 1800,1319,-13); }
if ($text =~/maiden/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(173, 1905,940,-150); }
if ($text =~/overthere/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(93, -4263,-241,235); }
if ($text =~/paludal/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(156, -241,-3721,195); }
if ($text =~/podisease/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(205, -1750,-1243,-56); }
if ($text =~/hateplaneb/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(186, -392.7,629.44,3.75); }
if ($text =~/pojustice/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(201, -61,58,5); }
if ($text =~/scarlet/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(175, -1678,-1054,-98); }
if ($text =~/umbral/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(176, 1900,-474,23); }
if ($text =~/frozenshadow/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(111, 200,120,0); }
if ($text =~/poeartha/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(218, 0,0,0); }
if ($text =~/velketor/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(112, -65,581,-152); }
if ($text =~/vexthal/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(158, -1400,343,-40.4); }
if ($text =~/warrens/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(101, -930,748,-37.22); }
if ($text =~/warslikswood/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(79, -467.95,-1428.95,197.31); }
if ($text =~/freportw/i)
 {
quest::say ("Enjoy your adventure!");
$client->Message(6, "Linnya Sennu casts a spell to translocate you to another place.");
quest::movepc(9, 181,335,-24); }

}


trevius 04-17-2008 03:09 AM

And here is the list of zones with short names included in this quest. You can post these on your website or forums so you players can easily reference the list to see what is available:

Zone Name - Short Name
Accursed Temple of Cazic-Thule - cazicthule
Ak'Anon - akanon
Bastion of Thunder - bothunder
Befallen - befallen
Blackburrow - blackburrow
Cabilis East - cabeast
Cabilis West - cabwest
Castle Mistmoore - mistmoore
Chardok - chardok
City of Thurgadin - thurgadina
City of veksar - veksar
Cobalt Scar - cobaltscar
Crystal Caverns - crystal
Dalnir - dalnir
Dragon Necropolis - necropolis
Dreadlands - dreadlands
Dulak's Harbor - dulak
East Freeport - freporte
Echo Caverns - echo
Erudin - erudnext
Estate of Unrest - unrest
Everfrost - everfrost
Field of Bone - fieldofbone
Fungus Grove - fungusgrove
Great Divide - greatdivide
Grobb - grobb
Guk - guktop
Halas - halas
High Keep - highkeep
Howling stones - charasis
Infected Paw - paw
Kael Drakael - kael
Kaesora - kaesora
Karnor's Castle - karnor
Kurn's Tower - kurn
Lake of Ill Omen - lakeofillomen
Mines of Nurga - nurga
Nagafen's Lair - soldungb
Najena - najena
Nexus - nexus
North Freeport - freportn
Northern Desert of Ro - nro
Oggok - oggok
Old Sebilis - sebilis
Permafrost Caverns - permafrost
Plane of Air - airplane
Plane of Fear - fearplane
Plane of Growth - growthplane
Plane of Hate - hateplane
Plane of Innovation - poinnovation
Plane of Knowledge - poknowledge
Plane of Mischief - mischiefplane
Plane of Nightmare - ponightmare
Plane of Storms - postorms
Plane of Valor - povalor
Qeynos Hills - qeytoqrg
Rivervale - rivervale
Runnyeye Citadel - runnyeye
Shadow Haven - shadowhaven
Skyshrine - skyshrine
Solusek's Eye - soldunga
Southern Desert of Ro - sro
Southern Felwithe - felwitheb
Ssraeshza Temple - ssratemple
Surefall Glade - qrg
The Acrylia Caverns - acrylia
The Arena - arena
The Burning Wood - burningwood
The City of Mist - citymist
The City of Shar Vahl - sharvahl
The Crypt of Nadox - nadox
The Dawnshroud Peaks - dawnshroud
The Grey - thegrey
The Gulf of Gunthak - gunthak
The Hole - hole
The Jaggedpine Forest - jaggedpine
The Maiden's Eye - maiden
The Overthere - overthere
The Paludal Caverns - paludal
The Plane of Disease - podisease
The Plane of Hate - hateplaneb
The Plane of Justice - pojustice
The Scarlet Desert - scarlet
The Umbral Plains - umbral
Tower of Frozen Shadow - frozenshadow
Vegarlson, The Earthen Badlands - poeartha
Velketor's Labrynth - velketor
Vex Thal - vexthal
Warrens - warrens
Warsliks Woods - warslikswood
West Freeport - freportw

seridium 02-15-2009 05:42 AM

Thank you very much works great!

banchicawawo 02-20-2009 02:01 AM

I started running my own server recently, and this script saved me a ton of time! I used a find/replace to change the text the NPC says, but this works great and saved me a ton of time from manually adding these in while looking up the safe coords in the DB. Thanks, Trevius!

trevius 07-22-2009 10:04 AM

I have updated this script to make quite an improvement to it. Now, players can search for zones in their NPC's list by partial name, or request the full list. This script requires that your server is running R803 or later of the Google SVN Binaries or Source Code.

Some notable changes and updates for this script:
1. Makes full use of Saylinks. All Saylinks are currently set to be Silent.
2. Players can now search for zones to be transported to by partial name, and click the saylink for the result if they find the zone they were looking for.
3. Players can now list all zones that this NPC can send them to.
4. Messages are now only sent to the client and are color coded in Tan to be easy to read, but still easy to tell that that they aren't seen by other players.
5. Spacer added between each text message to make them easier to read since the saylinks are silent.
6. Because of note 3 and 4, these quests are 100% spam free not counting the initial hail!


Code:

#Translocator for Multiple Zones

#Array for all available zones to be sent to
@ZoneList = qw(
        cazicthule
        akanon
        bothunder
        befallen
        blackburrow
        cabeast
        cabwest
        mistmoore
        chardok
        thurgadina
        veksar
        cobaltscar
        crystal
        dalnir
        necropolis
        dreadlands
        dulak
        freporte
        echo
        erudnext
        unrest
        everfrost
        fieldofbone
        fungusgrove
        greatdivide
        grobb
        guktop
        halas
        highkeep
        charasis
        paw
        kael
        kaesora
        karnor
        kurn
        lakeofillomen
        nurga
        soldungb
        najena
        nexus
        freportn
        nro
        oggok
        sebilis
        permafrost
        airplane
        fearplane
        growthplane
        ^hateplane$
        poinnovation
        poknowledge
        mischiefplane
        ponightmare
        postorms
        povalor
        qeytoqrg
        rivervale
        runnyeye
        shadowhaven
        skyshrine
        soldunga
        sro
        felwitheb
        ssratemple
        qrg
        acrylia
        arena
        burningwood
        citymist
        sharvahl
        nadox
        dawnshroud
        thegrey
        gunthak
        hole
        jaggedpine
        maiden
        overthere
        paludal
        podisease
        hateplaneb
        pojustice
        scarlet
        umbral
        frozenshadow
        poeartha
        velketor
        vexthal
        warrens
        warslikswood
        freportw
);

sub EVENT_SAY{

        my $all = quest::saylink("All", 1);

        #Spacer between Text messages to make them easier to read
        $client->Message(7, "-");
        my $NPCName = $npc->GetCleanName();

        if ($text =~/Hail/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'If there is a zone you would like to go to, just tell me the short name of it and I will see if I have a spell to send you there. If you do not know the full name, just type part of the name to search my list of possible zones.  Or, I can list [$all] of them if you like.'");
        }

        #Counts each row for the While
        my $count = 1;

        #Counts each element in the Array for the While
        my $n = 0;

       
        if ($text !~ /Hail/i)
        {
                #Use scalar form of Array
                while ($ZoneList[$n])
                {
                        #If the zone name contains part of the text said, or if the player wants to list all possible zones
                        if (($ZoneList[$n] =~ $text && $ZoneList[$n] ne $text) || ($text =~ /^All$/i))
                        {
                                my $ZoneName = quest::saylink($ZoneList[$n], 1);
                                $client->Message(315, "$NPCName whispers to you, 'Possible match is: $ZoneName'");
                        }
                        $n++;
                        $count++;
                }
        }

        if ($text =~/crushbone/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(58, 158,-644,4);
        }
        if ($text =~/cazicthule/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(48, -80,80,5.5);
        }
        if ($text =~/akanon/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(55, -35,47,4);
        }
        if ($text =~/bothunder/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(209, 207,178,-1620);
        }
        if ($text =~/befallen/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(36, 35.22,-75.27,2.19);
        }
        if ($text =~/blackburrow/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(17, 38.92,-158.97,3.75);
        }
        if ($text =~/cabeast/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(106, -416,1343,4);
        }
        if ($text =~/cabwest/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(82, 790,165,3.75);
        }
        if ($text =~/mistmoore/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(59, 123,-295,-177);
        }
        if ($text =~/chardok/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(103, 859,119,106);
        }
        if ($text =~/thurgadina/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(115, 0,-1222,0);
        }
        if ($text =~/veksar/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(109, -1,-514.5,49);
        }
        if ($text =~/cobaltscar/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(117, 895,-939,318);
        }
        if ($text =~/crystal/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(121, 303,487,-74);
        }
        if ($text =~/dalnir/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(104, 90,8,3.75);
        }
        if ($text =~/necropolis/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(123, 2000,-100,5);
        }
        if ($text =~/dreadlands/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(86, 9565.05,2806.04,1045.2);
        }
        if ($text =~/dulak/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(225, 438,548,4);
        }
        if ($text =~/freporte/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(10, -648,-1097,-52.2);
        }
        if ($text =~/echo/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(153, -800,840,-25);
        }
        if ($text =~/erudnext/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(24, -309.75,109.64,23.75);
        }
        if ($text =~/unrest/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(63, 52,-38,3.75);
        }
        if ($text =~/everfrost/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(30, 682.74,3139.01,-60.16);
        }
        if ($text =~/fieldofbone/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(78, 1617,-1684,-54.78);
        }
        if ($text =~/fungusgrove/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(157, -1005,-2140,-308);
        }
        if ($text =~/greatdivide/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(118, -965,-7720,-557);
        }
        if ($text =~/grobb/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(52, 0,-100,4);
        }
        if ($text =~/guktop/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(65, 7,-36,4);
        }
        if ($text =~/halas/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(29, 0,0,3.75);
        }
        if ($text =~/highkeep/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(6, 88,-16,4);
        }
        if ($text =~/charasis/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(105, 0,0,-4.25);
        }
        if ($text =~/paw/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(18, -7.9,-79.3,4);
        }
        if ($text =~/kael/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(113, -633,-47,128);
        }
        if ($text =~/kaesora/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(88, 40,370,99.72);
        }
        if ($text =~/karnor/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(102, 0,0,4);
        }
        if ($text =~/kurn/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(97, 77.72,-277.64,3.75);
        }
        if ($text =~/lakeofillomen/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(85, -5383.07,5747.14,68.27);
        }
        if ($text =~/nurga/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(107, 150,-1062,-107);
        }
        if ($text =~/soldungb/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(32, -262.7,-423.99,-108.22);
        }
        if ($text =~/najena/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(44, -22.6,229.1,-41.8);
        }
        if ($text =~/nexus/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(152, 0,0,-28);
        }
        if ($text =~/freportn/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(8, 211,-296,4);
        }
        if ($text =~/nro/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(34, 299.12,3537.9,-24.5);
        }
        if ($text =~/oggok/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(49, -99,-345,4);
        }
        if ($text =~/sebilis/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(89, 0,235,40);
        }
        if ($text =~/permafrost/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(73, 0,0,3.75);
        }
        if ($text =~/airplane/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(71, 542.45,1384.6,-650);
        }
        if ($text =~/fearplane/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(72, 1282.09,-1139.03,1.67);
        }
        if ($text =~/growthplane/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(127, 3016,-2522,-19);
        }
        if ($text =~/^hateplane$/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(76, -353.08,-374.8,3.75);
        }
        if ($text =~/poinnovation/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(206, 241,509,-52.8);
        }
        if ($text =~/poknowledge/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(202, -55.82,43.93,-158.81);
        }
        if ($text =~/mischiefplane/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(126, -395,-1410,115);
        }
        if ($text =~/ponightmare/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(204, 1668,282,210.4);
        }
        if ($text =~/postorms/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(210, -1755.7,-2001.1,-463.8);
        }
        if ($text =~/povalor/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(208, 207.4,-1615.1,77.9);
        }
        if ($text =~/qeytoqrg/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(4, 196.7,5100.9,-1);
        }
        if ($text =~/rivervale/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(19, 45.3,1.6,3.8);
        }
        if ($text =~/runnyeye/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(11, -21.85,-108.88,3.75);
        }
        if ($text =~/shadowhaven/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(150, 190,-982,-28);
        }
        if ($text =~/skyshrine/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(114, -730,-210,0);
        }
        if ($text =~/soldunga/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(31, -485.77,-476.04,73.72);
        }
        if ($text =~/sro/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(35, 286,1265,79);
        }
        if ($text =~/felwitheb/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(62, -790,320,-10.25);
        }
        if ($text =~/ssratemple/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(162, 0,0,4);
        }
        if ($text =~/qrg/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(3, 136.9,-65.9,4);
        }
        if ($text =~/acrylia/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(154, -664,10,3.2);
        }
        if ($text =~/arena/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(77, 460.9,-41.4,-7.38);
        }
        if ($text =~/burningwood/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(87, -820,-4942,200.31);
        }
        if ($text =~/citymist/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(90, -734,28,3.75);
        }
        if ($text =~/sharvahl/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(155, 85,-1135,-188);
        }
        if ($text =~/nadox/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(227, -643.06,-1349.17,-40.87);
        }
        if ($text =~/dawnshroud/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(174, 2085,0,89);
        }
        if ($text =~/thegrey/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(171, 349,-1994,-26);
        }
        if ($text =~/gunthak/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(224, -938.34,1644.83,25.94);
        }
        if ($text =~/hole/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(39, -1049.98,640.04,-77.22);
        }
        if ($text =~/jaggedpine/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(181, 1800,1319,-13);
        }
        if ($text =~/maiden/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(173, 1905,940,-150);
        }
        if ($text =~/overthere/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(93, -4263,-241,235);
        }
        if ($text =~/paludal/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(156, -241,-3721,195);
        }
        if ($text =~/podisease/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(205, -1750,-1243,-56);
        }
        if ($text =~/hateplaneb/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(186, -392.7,629.44,3.75);
        }
        if ($text =~/pojustice/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(201, -61,58,5);
        }
        if ($text =~/scarlet/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(175, -1678,-1054,-98);
        }
        if ($text =~/umbral/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(176, 1900,-474,23);
        }
        if ($text =~/frozenshadow/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(111, 200,120,0);
        }
        if ($text =~/poeartha/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(218, 0,0,0);
        }
        if ($text =~/velketor/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(112, -65,581,-152);
        }
        if ($text =~/vexthal/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(158, -1400,343,-40.4);
        }
        if ($text =~/warrens/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(101, -930,748,-37.22);
        }
        if ($text =~/warslikswood/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(79, -467.95,-1428.95,197.31);
        }
        if ($text =~/freportw/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(9, 181,335,-24);
        }

        if ($text =~/neriaka/i){
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(40, 156.92,-2.94,31.75);
        }

        if ($text =~/hollowshade/i){
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(166, 2680,1221,139);
        }

        if ($text =~/griegsend/i){
                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                quest::movepc(163, 3461,-19,-5);
        }

}


acepanther 07-22-2009 10:18 PM

Per my message in the bugs forum:

http://www.eqemulator.net/forums/sho...d.php?p=175045

The Mistmoore translocate puts me on top of Mistmoore castle, rather than at the zone entrance. Does it do the same for anyone else?

eqwarrior 07-22-2009 11:05 PM

Off Topic: I've just started editing all my custom quest NPC's to no longer "say" anything, and use the "$client->Message" instead since starter cities get too much spam from the NPCs. Then I found this thread and smiled. Looks like someone else thought of the same thing.

trevius 07-22-2009 11:25 PM

Nice, eqwarrior. Now, you just need to start using the new silent saylinks, and you won't see any spam at all other than the initial hail. Then, almost all text you see will be from actual players. I think it does make the game lose a little something, but IMO, the benefit is well worth it.

pfyon 07-23-2009 12:50 AM

Don't suppose there'd be a way to add to the quest class (object?) something like the #zone command, would eliminate the huge block of if statements and replace with just like quest::zone($text);

trevius 07-23-2009 03:40 AM

I put a little more work into this to trim it up a bit more. Now, you no longer need to do ifs for each zone, you just add them to the array. I am using quest::zone() to send them to the safe loc of the zone requested. If needed, you could either adjust the safe loc in the zone table, or you could probably add in some more ifs for specific zones.

This makes the script much easier to manage and tons easier to add more new zones to it. No more need to find a loc to send them to and add in another if statement.

Code:

#Translocator for Multiple Zones

#Array for all available zones to be sent to
@ZoneList = qw(
        cazicthule
        akanon
        bothunder
        befallen
        blackburrow
        cabeast
        cabwest
        mistmoore
        chardok
        thurgadina
        veksar
        cobaltscar
        crystal
        dalnir
        necropolis
        dreadlands
        dulak
        freporte
        echo
        erudnext
        unrest
        everfrost
        fieldofbone
        fungusgrove
        greatdivide
        grobb
        guktop
        halas
        highkeep
        charasis
        paw
        kael
        kaesora
        karnor
        kurn
        lakeofillomen
        nurga
        soldungb
        najena
        nexus
        freportn
        nro
        oggok
        sebilis
        permafrost
        airplane
        fearplane
        growthplane
        hateplane
        poinnovation
        poknowledge
        mischiefplane
        ponightmare
        postorms
        povalor
        qeytoqrg
        rivervale
        runnyeye
        shadowhaven
        skyshrine
        soldunga
        sro
        felwitheb
        ssratemple
        qrg
        acrylia
        arena
        burningwood
        citymist
        sharvahl
        nadox
        dawnshroud
        thegrey
        gunthak
        hole
        jaggedpine
        maiden
        overthere
        paludal
        podisease
        hateplaneb
        pojustice
        scarlet
        umbral
        frozenshadow
        poeartha
        velketor
        vexthal
        warrens
        warslikswood
        freportw
);

sub EVENT_SAY{

        my $all = quest::saylink("All", 1);

        #Spacer between Text messages to make them easier to read
        $client->Message(7, "-");
        my $NPCName = $npc->GetCleanName();

        if ($text =~/Hail/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'If there is a zone you would like to go to, just tell me the short name of it and I will see if I have a spell to send you there. If you do not know the full name, just type part of the name to search my list of possible zones.  Or, I can list [$all] of them if you like.'");
        }

        #Counts each row for the While
        my $count = 1;

        #Counts each element in the Array for the While
        my $n = 0;

       
        if ($text !~ /Hail/i)
        {
                #Use scalar form of Array
                while ($ZoneList[$n])
                {
                        #This uses the lc() function in perl to convert anything typed into all lowercase, since that is what the zone list is
                        #If the zone name contains part of the text said, or if the player wants to list all possible zones we list them
                        if (($ZoneList[$n] =~ lc($text) && $ZoneList[$n] ne lc($text)) || ($text =~ /^All$/i))
                        {
                                my $ZoneName = quest::saylink($ZoneList[$n]);
                                $client->Message(315, "$NPCName whispers to you, 'Possible match is: $ZoneName");
                        }
                        #If they say the full name of one of the zones in the Array, or click one of the saylinks, port them to the safe loc there
                        if ($ZoneList[$n] eq lc($text) && $text !~ /^All$/i)
                        {
                                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                                quest::zone("$ZoneList[$n]");
                        }
                        $n++;
                        $count++;
                }
        }
}

Thanks, pfyon, for the idea. I was just being lazy to not put too much time into this simple script :P

pfyon 07-23-2009 11:42 AM

Makes sense. Would still need if/else statements if you wanted to move the pc to a location that was not the safe point in a zone anyway.

eqwarrior 07-23-2009 06:23 PM

Quote:

Originally Posted by trevius (Post 175049)
Nice, eqwarrior. Now, you just need to start using the new silent saylinks, and you won't see any spam at all other than the initial hail. Then, almost all text you see will be from actual players. I think it does make the game lose a little something, but IMO, the benefit is well worth it.

I need to install new source this weekend to get the extra 2 parameters in saylink. You have some good and helpful ideas. Thanks :)

drzoyburg 07-24-2009 11:46 AM

Ok Im a complete Noob when it comes to EQ editing and creating, good at wow crap, but for some reason not geeting the hang of this.
Tried to use Dieffer_wolfhugger for my translocator, used the above script created a .pl for him in the POK quest folder which looks like this

Code:

#Translocator for Multiple Zones

#Array for all available zones to be sent to
@ZoneList = qw(
        cazicthule
        akanon
        bothunder
        befallen
        blackburrow
        cabeast
        cabwest
        mistmoore
        chardok
        thurgadina
        veksar
        cobaltscar
        crystal
        dalnir
        necropolis
        dreadlands
        dulak
        freporte
        echo
        erudnext
        unrest
        everfrost
        fieldofbone
        fungusgrove
        greatdivide
        grobb
        guktop
        halas
        highkeep
        charasis
        paw
        kael
        kaesora
        karnor
        kurn
        lakeofillomen
        nurga
        soldungb
        najena
        nexus
        freportn
        nro
        oggok
        sebilis
        permafrost
        airplane
        fearplane
        growthplane
        hateplane
        poinnovation
        poknowledge
        mischiefplane
        ponightmare
        postorms
        povalor
        qeytoqrg
        rivervale
        runnyeye
        shadowhaven
        skyshrine
        soldunga
        sro
        felwitheb
        ssratemple
        qrg
        acrylia
        arena
        burningwood
        citymist
        sharvahl
        nadox
        dawnshroud
        thegrey
        gunthak
        hole
        jaggedpine
        maiden
        overthere
        paludal
        podisease
        hateplaneb
        pojustice
        scarlet
        umbral
        frozenshadow
        poeartha
        velketor
        vexthal
        warrens
        warslikswood
        freportw
);

sub EVENT_SAY{

        my $all = quest::saylink("All", 1);

        #Spacer between Text messages to make them easier to read
        $client->Message(7, "-");
        my $NPCName = $npc->GetCleanName();

        if ($text =~/Hail/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'If there is a zone you would like to go to, just tell me the short name of it and I will see if I have a spell to send you there. If you do not know the full name, just type part of the name to search my list of possible zones.  Or, I can list [$all] of them if you like.'");
        }

        #Counts each row for the While
        my $count = 1;

        #Counts each element in the Array for the While
        my $n = 0;

       
        if ($text !~ /Hail/i)
        {
                #Use scalar form of Array
                while ($ZoneList[$n])
                {
                        #This uses the lc() function in perl to convert anything typed into all lowercase, since that is what the zone list is
                        #If the zone name contains part of the text said, or if the player wants to list all possible zones we list them
                        if (($ZoneList[$n] =~ lc($text) && $ZoneList[$n] ne lc($text)) || ($text =~ /^All$/i))
                        {
                                my $ZoneName = quest::saylink($ZoneList[$n]);
                                $client->Message(315, "$NPCName whispers to you, 'Possible match is: $ZoneName");
                        }
                        #If they say the full name of one of the zones in the Array, or click one of the saylinks, port them to the safe loc there
                        if ($ZoneList[$n] eq lc($text) && $text !~ /^All$/i)
                        {
                                #my $PortZone = $ZoneList[$n];
                                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                                quest::zone("$ZoneList[$n]");
                        }
                        $n++;
                        $count++;
                }
        }
}

#END of FILE Zone:poknowledge  ID:202363 -- Dieffer_wolfhugger

Restarted the server and he does nothing, Please help, as I love this idea and want to get it going on my server.

Doc

drzoyburg 07-26-2009 03:29 PM

Well I also tried to put the .pl in the templates folder as well and nothing happens, changed the npc to one of the guards at the pok bank, since he did not have any quests on him, renamed him teleporter and ran the old script, works great, player just needs to know the short name.

Then I tried to run the newer script and nothing seems to work on him now. added in the saylink table and still nothing. Could this be due to the emu? think im running 6.4.0 or something to that nature.

Doc

trevius 07-26-2009 05:13 PM

As I mentioned above, you have to be running R803 or later from the SVN here:

http://code.google.com/p/projecteqemu/source/list

If you are running EQEmu version 6.4 something, that is ancient! You will need a huge amount of updating to get to the current code and database schema if that is the case. If you don't want to update, you could modify this script to work without using the saylinks. The Saylinks just work really well with this script. It is a good example of just how nice they can be :)

Since it was a quick edit, here is the script without Saylinks:

Code:

#Translocator for Multiple Zones

#Array for all available zones to be sent to
@ZoneList = qw(
        cazicthule
        akanon
        bothunder
        befallen
        blackburrow
        cabeast
        cabwest
        mistmoore
        chardok
        thurgadina
        veksar
        cobaltscar
        crystal
        dalnir
        necropolis
        dreadlands
        dulak
        freporte
        echo
        erudnext
        unrest
        everfrost
        fieldofbone
        fungusgrove
        greatdivide
        grobb
        guktop
        halas
        highkeep
        charasis
        paw
        kael
        kaesora
        karnor
        kurn
        lakeofillomen
        nurga
        soldungb
        najena
        nexus
        freportn
        nro
        oggok
        sebilis
        permafrost
        airplane
        fearplane
        growthplane
        hateplane
        poinnovation
        poknowledge
        mischiefplane
        ponightmare
        postorms
        povalor
        qeytoqrg
        rivervale
        runnyeye
        shadowhaven
        skyshrine
        soldunga
        sro
        felwitheb
        ssratemple
        qrg
        acrylia
        arena
        burningwood
        citymist
        sharvahl
        nadox
        dawnshroud
        thegrey
        gunthak
        hole
        jaggedpine
        maiden
        overthere
        paludal
        podisease
        hateplaneb
        pojustice
        scarlet
        umbral
        frozenshadow
        poeartha
        velketor
        vexthal
        warrens
        warslikswood
        freportw
);

sub EVENT_SAY{

        #Spacer between Text messages to make them easier to read
        $client->Message(7, "-");
        my $NPCName = $npc->GetCleanName();

        if ($text =~/Hail/i)
        {
                $client->Message(315, "$NPCName whispers to you, 'If there is a zone you would like to go to, just tell me the short name of it and I will see if I have a spell to send you there. If you do not know the full name, just type part of the name to search my list of possible zones.  Or, I can list [all] of them if you like.'");
        }

        #Counts each row for the While
        my $count = 1;

        #Counts each element in the Array for the While
        my $n = 0;

       
        if ($text !~ /Hail/i)
        {
                #Use scalar form of Array
                while ($ZoneList[$n])
                {
                        #This uses the lc() function in perl to convert anything typed into all lowercase, since that is what the zone list is
                        #If the zone name contains part of the text said, or if the player wants to list all possible zones we list them
                        if (($ZoneList[$n] =~ lc($text) && $ZoneList[$n] ne lc($text)) || ($text =~ /^All$/i))
                        {
                                my $ZoneName = $ZoneList[$n];
                                $client->Message(315, "$NPCName whispers to you, 'Possible match is: $ZoneName");
                        }
                        #If they say the full name of one of the zones in the Array, or click one of the saylinks, port them to the safe loc there
                        if ($ZoneList[$n] eq lc($text) && $text !~ /^All$/i)
                        {
                                $client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
                                $client->Message(6, "$NPCName casts a spell to translocate you to another place.");
                                quest::zone("$ZoneList[$n]");
                        }
                        $n++;
                        $count++;
                }
        }
}



All times are GMT -4. The time now is 08:48 AM.

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