PDA

View Full Version : Translocator Quest To Many Common Zones


trevius
04-17-2008, 03:07 AM
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.


#############
#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!


#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/showthread.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.


#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
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

#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:

#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++;
}
}
}

Cruzer
08-11-2009, 01:24 PM
thanks trev

Lillu
08-30-2009, 02:43 PM
Thanks for sharing this Trev. My players found a minor 'issue' if you have time to adress it. When you misstype a short zonename, the NPC will respond with a "-" (instead of telling you that you can't type :)).

trevius
08-30-2009, 06:11 PM
I haven't tried this yet, but I think this might do what you are wanting:

#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 $MatchCheck = 0;
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");
$MatchCheck++;
}
#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]");
$MatchCheck++;
}
$n++;
$count++;
}
#If there are no matches found, let the player know it.
if ($MatchCheck == 0)
{
$client->Message(315, "$NPCName whispers to you, 'Sorry, $name, I was unable to find a match for '$text'.");
}
}
}

Lillu
08-30-2009, 08:08 PM
yep, and once again thanks Trev!

chrsschb
02-02-2012, 11:18 PM
I'm looking for a way to take this script and add more text to the responses. Like if a person is flagged for the zone, the level range/requirement, etc. The flagged portion could be green if flagged, red if not, the level range could be colored similar to cons, depending on how you rate compared to the zone.

Like right now the responses (when pressing [all]) looks like:

Surefall Glade: [qrg]
West Freeport: [freportw]

I want it to look like this:

[Level 50-60] [Not Flagged] Plane of Awesome: [awesomeplane]


Can it be done?

sorvani
02-03-2012, 01:18 AM
Sure, just have to check all the quest globals that lock you out of said zone, and level bypass, etc, etc.
Huge amount of work depending on your server.

chrsschb
02-03-2012, 01:24 AM
Well I figured as much. Looking for a little more guidance. Pretty new these things.