Advertisement
Guest User

Waypoint Code 1.3

a guest
Mar 30th, 2013
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 82.61 KB | None | 0 0
  1. #####################################################################################################################################################
  2. ### Quest               : player.pl (Waypoint) will be copied/moved to global_player.pl
  3. ### REQURIED PLUGIN 1   : globals.pl (plugin::var, plugin::val) for subs to get variable values. (Copy plugins to subs in player.pl ?)
  4. ### REQURIED PLUGIN 2   : check_hasitem.pl (plugin::check_hasitem) to determine prices via item
  5. ### QGLOBAL VARIABLE    : XXX = Instance ID, YYY = Auto Increment ID
  6. ### QGLOBAL SOLO        : $name_Solo_$zonesn_$zoneid
  7. ### QGLOBAL RAID        : $name_Raid_$zonesn_$zoneid, XXX_RaidI_Leader, XXX__RaidI_Time, XXX_RaidI_$zonesn_$zoneid, XXX_RaidI_Status_YYY
  8. ### QGLOBAL GUILD       : XXX_Guild_$zonesn_$zoneid, XXX_GuildI_Leader, XXX__GuildI_Time, XXX_GuildI_$zonesn_$zoneid, XXX_GuildI_Status_YYY
  9. ### Special Thanks      : Used code from Akkadius, Trevius, Natedog, Hateborne and a few other people.
  10. ###
  11. ### STUFF TO DO         : Edit: prices per zone in sub SOLO_COST(), RAID_COST(), GUILD_COST() -- DONE
  12. ###                       Edit: Instance Duration in Seconds -- DONE
  13. ###                       Edit: popup window info for enter Solo/Raid/Guild Instances
  14. ###                       Edit: syntax from Raid Join to RaidJoin (minor tweak)
  15. ###                       Add: $zoneid to $signal for players in different zones -- DONE
  16. ###                       Add: spam delay timer for create/delete in same zone
  17. ###                       Add: Join Guild <Player Name> or <Guild Name> in addition to Join Guild <number>
  18. ###                       Add: my $GuildName = $client->GuildID(); my $GuildName = quest::getguildnamebyid($guildID);
  19. ###                       Add: my $RaidGroup = $client->GetRaid(); my $raidID = $RaidGroup->GetID();
  20. ###                       Add: One command to port entire guild/raid into the instance, might require to be in same zone name though.
  21. ###
  22. ### OTHER NOTES         : This is done 100% without DBI, just qglobals. Using DBI would probably be
  23. ###                       more simple and shorter, but also could create more lag on the database.
  24. ### CHANGES             : 03/30/2013
  25. ###                         Changed menu system, put some commands under the "More Options" saylink to reduce menu size
  26. ###                         Changed instance durations from 14400 to 86400 (4 hrs to 24 hrs)
  27. ###                         Updated prices and per zone
  28. ###                         Created sub zone id to zone name (Hope I didn't re-create something that already exist lol)
  29. ###                         Added $zoneid to $zonesn in qglobal name and passed to $signal, telling players in a different zone which zone to be used
  30. ###                         $signal remove - greater than 1000000000 (1 billion) = remove player from instance
  31. ###                         $signal zone id - has $zoneid * 1000000 (1 million) for $zoneid to pass through signal via int ($signal / 1000000)
  32. ###                         $signal instance id - has instance id passed by int ($signal % 1000000) to get the value under 1 million for instance id
  33. ###                         Added / Updated signal to give message to player that was invited regardless of any status (pending, joined, removed)
  34. ###                         With the above update, players can re-invite players that did not receive the message or was zoning at the time, etc.
  35. ###                         Updated Popup window info when being invited, removed, or choosing to leave instance
  36. ###                         Decided to not "upgrade" solo instances to guild/raid that was suggested, for now.
  37. ###                         Decided not to use invite whole raid group or syntax join player/guild names, still need to use the ids provided.
  38. #####################################################################################################################################################
  39.  
  40. sub EVENT_SAY
  41. {
  42.     my $SoloStatus      = 1;
  43.     my $GuildStatus     = 1;
  44.     my $RaidStatus      = 1;
  45.     # my $GroupStatus       = 1;
  46.  
  47.     if ($text=~/^Instance$/i || $text=~/^Instances$/i)
  48.     {
  49.         my $freeinstance = plugin::check_hasitem($client, 120003);  #EDIT item ID for FREE instance item
  50.         my $paidinstance = plugin::check_hasitem($client, 119998);  #EDIT item ID for PAID instance item
  51.         $client->Message(315," ");
  52.         if ($freeinstance)
  53.         {
  54.             $client->Message(315,"Free Waypoint Menu");
  55.             $client->Message(315,"------------------------------");
  56.         }
  57.         elsif ($paidinstance)
  58.         {
  59.             $client->Message(315,"Reglar Waypoint Menu");
  60.             $client->Message(315,"---------------------------------");
  61.         }
  62.         else
  63.         {
  64.             $client->Message(315,"Non Discount Waypoint Menu");
  65.             $client->Message(315,"-------------------------------------------");
  66.         }
  67.     }
  68.  
  69.     ###############################################################################################
  70.     ### START SOLO INSTANCES ######################################################################
  71.     if ($SoloStatus == 1)
  72.     {
  73.         if ($text=~/^Instance$/i || $text=~/^Instances$/i)
  74.         {
  75.             my $SoloInstanceID  = "$name" . "_Solo_" . "$zonesn" . "_" . "$zoneid";
  76.             if (defined($qglobals{"$SoloInstanceID"}))
  77.             {
  78.                 my $EnterSoloInstance = quest::saylink("Enter Solo", 1);
  79.                 my $DeleteSoloInstance = quest::saylink("Delete Solo", 1);
  80.                 $client->Message(315,"[$EnterSoloInstance] [$DeleteSoloInstance]");
  81.             }
  82.             else
  83.             {
  84.                 my $SoloCreate = quest::saylink("Create Solo Instance", 1);
  85.                 my $SoloCost = SOLO_PRICE();
  86.                 $client->Message(315,"[$SoloCreate] : $SoloCost Platinum");
  87.             }
  88.             $qglobals{"$SoloInstanceID"} = undef;
  89.         }
  90.  
  91.         if($text=~/^Create Solo Instance$/i)
  92.         {
  93.             my $SoloInstanceID  = "$name" . "_Solo_" . "$zonesn" . "_" . "$zoneid";
  94.             if (defined($qglobals{"$SoloInstanceID"}))
  95.             {
  96.                 $client->Message(315,"You already have a solo instance for $zonesn.");
  97.             }
  98.             else
  99.             {
  100.                 my $accountid = $client->AccountID();
  101.                 my $bankcredit = $qglobals{"BankCredit_$accountid"};
  102.                 my $SoloCost = SOLO_PRICE();
  103.                 my $cost = $SoloCost;
  104.                 if ($bankcredit < $cost)
  105.                 {
  106.                     $client->Message(315,"You need ". ($cost - $bankcredit) . " more plat!");
  107.                 }
  108.                 else
  109.                 {
  110.                     PayInstance("BankCredit", $cost, "Solo Instance");
  111.                     my $InstVersion = 0;            # Must be 0 to load NPCs into an instance
  112.                     my $InstanceDuration = 86400;
  113.                     my $EnterSoloInstance = quest::saylink("Enter Solo", 1);
  114.                     my $InstID = quest::CreateInstance("$zonesn", $InstVersion, $InstanceDuration);
  115.                     quest::setglobal("$SoloInstanceID","$InstID","7","S$InstanceDuration");
  116.                     quest::AssignToInstance($InstID);
  117.                     # $client->Message(315," ");
  118.                     $client->Message(315,"You created a solo instance ($InstID) for $zonesn.");
  119.                     $client->Message(315,"Would you like to $EnterSoloInstance instance?");
  120.                 } # create instance then send
  121.             }
  122.             $qglobals{"$SoloInstanceID"} = undef;
  123.         }
  124.  
  125.         if($text=~/^Enter Solo$/i)
  126.         {
  127.             my $SoloInstanceID  = "$name" . "_Solo_" . "$zonesn" . "_" . "$zoneid";
  128.             if (defined($qglobals{"$SoloInstanceID"}))
  129.             {
  130.                 my $timestamp = localtime(time);
  131.                 my $InstID = $qglobals{"$SoloInstanceID"};
  132.                 my $Cx = $client->GetX();
  133.                 my $Cy = $client->GetY();
  134.                 my $Cz = $client->GetZ();
  135.                 quest::popup("ENTER SOLO INSTANCE","<br>
  136.                             <c \"#FE2E2E\">Moving you to SOLO instance!<br>
  137.                             <br>
  138.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  139.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  140.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  141.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">Solo<br>
  142.                             <br>
  143.                             <c \"#00BFFF\">ENJOY!<br>
  144.                             <br>
  145.                             <br>
  146.                             ",1050,0);
  147.                 $client->Message(315, " ");
  148.                 $client->Message(315, "Moving you to solo instance ($InstID) for $zonesn.");
  149.                 quest::MovePCInstance($zoneid, $InstID, $Cx, $Cy, $Cz);
  150.             }
  151.             else
  152.             {
  153.                 $client->Message(315,"You do not have a solo instance for $zonesn.");
  154.             } # create instance then send
  155.             $qglobals{"$SoloInstanceID"} = undef;
  156.         }
  157.  
  158.         if ($text=~/^Delete Solo$/i)
  159.         {
  160.             my $SoloInstanceID  = "$name" . "_Solo_" . "$zonesn" . "_" . "$zoneid";
  161.             if (defined($qglobals{"$SoloInstanceID"}))
  162.             {
  163.                 my $InstID = $qglobals{"$SoloInstanceID"};
  164.                 quest::DestroyInstance($InstID);
  165.                 quest::delglobal($SoloInstanceID);
  166.                 $client->Message(315, " ");
  167.                 $client->Message(315, "Solo Instance ($InstID) Deleted!");
  168.  
  169.             }
  170.             else
  171.             {
  172.                 $client->Message(315, "You do not have a solo instance to delete!");
  173.             }
  174.             $qglobals{"$SoloInstanceID"} = undef;
  175.         }
  176.     }
  177.     ###  END SOLO INSTANCES #######################################################################
  178.     ###############################################################################################
  179.  
  180.  
  181.     ###############################################################################################
  182.     ### START RAID INSTANCES #####################################################################
  183.     if ($RaidStatus == 1)
  184.     {
  185.         if ($text=~/^Instance$/i || $text=~/^Instances$/i)
  186.         {
  187.             my $RaidID = $name;
  188.             my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_" . "$zoneid";
  189.             if (defined($qglobals{"$RaidInstanceID"}))
  190.             {
  191.                 my $EnterRaidInstance       = quest::saylink("Enter Raid", 1);
  192.                 my $DeleteRaidInstance      = quest::saylink("Delete Raid", 1);
  193.                 my $RaidList                = quest::saylink("Raid List", 1);
  194.                 $client->Message(315,"[$EnterRaidInstance] [$DeleteRaidInstance] [$RaidList]");
  195.             }
  196.             else
  197.             {
  198.                 my $RaidCreate = quest::saylink("Create Raid Instance", 1);
  199.                 my $RaidCost = RAID_PRICE();
  200.                 $client->Message(315,"[$RaidCreate] : $RaidCost Platinum");
  201.             }
  202.             $qglobals{"$RaidInstanceID"} = undef;
  203.         }
  204.  
  205.         if($text=~/^Create Raid Instance$/i)
  206.         {
  207.             my $RaidID = $name;
  208.             my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_" . "$zoneid";
  209.             if (defined($qglobals{"$RaidInstanceID"}))
  210.             {
  211.                 $client->Message(315,"You already have a Raid Instance for $zonesn.");
  212.             }
  213.             else
  214.             {
  215.                 my $accountid = $client->AccountID();
  216.                 my $bankcredit = $qglobals{"BankCredit_$accountid"};
  217.                 my $RaidCost = RAID_PRICE();
  218.                 my $cost = $RaidCost;
  219.                 if ($bankcredit < $cost)
  220.                 {
  221.                     $client->Message(315,"You need ". ($cost - $bankcredit) . " more plat!");
  222.                 }
  223.                 else
  224.                 {
  225.                     PayInstance("BankCredit", $cost, "Raid Instance");
  226.                     my $InstVersion = 0; # Must be 0 to load NPCs in an instance
  227.                     my $InstanceDuration = 86400;
  228.                     my $EnterRaidInstance = quest::saylink("Enter Raid", 1);
  229.                     my $InstID = quest::CreateInstance("$zonesn", $InstVersion, $InstanceDuration);
  230.  
  231.                     my $LeaderZone = $InstID . "_RaidI_" . $zonesn . "_" . "$zoneid";               # Qglobal name for Raid Instance ID + zone to do raid invites
  232.                     quest::setglobal("$LeaderZone","$InstID","7","S$InstanceDuration");             # Qglobal name for Raid Instance ID + zone to do raid invites
  233.  
  234.                     my $LeaderName = $InstID . "_RaidI_Leader";                                     # Qglobal Instance/Zone ID to Leaders Name
  235.                     quest::setglobal("$LeaderName","$name","7","S$InstanceDuration");               # Qglobal Instance/Zone ID to Leaders Name
  236.  
  237.                     my $LeaderTime = $InstID . "_RaidI_Time";                                       # Qglobal Raid Instance Timer
  238.                     my $Expire_Time = time() + $InstanceDuration;                                   # Qglobal Raid Instance Timer
  239.                     quest::setglobal("$LeaderTime","$Expire_Time","7","S$InstanceDuration");        # Qglobal Raid Instance Timer
  240.  
  241.                     quest::setglobal("$RaidInstanceID","$InstID","7","S$InstanceDuration");         # Qglobal Set Raid Instance ID
  242.                     quest::AssignToInstance($InstID);
  243.                     # $client->Message(315," ");
  244.                     $client->Message(315,"You created a Raid Instance ($InstID) for $zonesn.");
  245.                     $client->Message(315,"Would you like to $EnterRaidInstance instance?");
  246.                     $qglobals{"$LeaderZone"} = undef;
  247.                     $qglobals{"$LeaderName"} = undef;
  248.                 } # create instance then send
  249.             }
  250.             $qglobals{"$RaidInstanceID"} = undef;
  251.         }
  252.  
  253.         if($text=~/^Enter Raid$/i)
  254.         {
  255.             my $RaidID = $name;
  256.             my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_" . "$zoneid";
  257.             if (defined($qglobals{"$RaidInstanceID"}))
  258.             {
  259.                 my $timestamp = localtime(time);
  260.                 my $InstID = $qglobals{"$RaidInstanceID"};
  261.                 my $Cx = $client->GetX();
  262.                 my $Cy = $client->GetY();
  263.                 my $Cz = $client->GetZ();
  264.                 quest::popup("ENTER RAID INSTANCE","<br>
  265.                             <c \"#FE2E2E\">Moving you to a RAID instance!<br>
  266.                             <br>
  267.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  268.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  269.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  270.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">Raid<br>
  271.                             <br>
  272.                             <c \"#00BFFF\">ENJOY!<br>
  273.                             <br>
  274.                             ",1050,0);
  275.                 $client->Message(315, " ");
  276.                 $client->Message(315, "Moving you to Raid Instance ($InstID) for $zonesn.");
  277.                 quest::AssignToInstance($InstID);
  278.                 quest::MovePCInstance($zoneid, $InstID, $Cx, $Cy, $Cz);
  279.             }
  280.             else
  281.             {
  282.                 $client->Message(315,"You do not have a Raid Instance for $zonesn.");
  283.             }   # create instance then send
  284.             $qglobals{"$RaidInstanceID"} = undef;
  285.         }
  286.  
  287.         if ($text=~/^Delete Raid$/i)
  288.         {
  289.             $client->Message(315, " ");
  290.             my $RaidID = $name;
  291.             my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_" . "$zoneid";
  292.             if (defined($qglobals{"$RaidInstanceID"}))
  293.             {
  294.                 my $InstID = $qglobals{"$RaidInstanceID"};
  295.                 my $LeaderZone = $InstID . "_RaidI_" . $zonesn . "_" . "$zoneid";       # Qglobal name for charid + zonesn to invite raid
  296.                 my $LeaderName = $InstID . "_RaidI_Leader";                             # Qglobal ID to Name
  297.                 my $LeaderTime = $InstID . "_RaidI_Time";                               # Qglobal Time
  298.  
  299.                 # DELETE Raid Player Invited List
  300.                 my $count = 1;
  301.                 my $raid_invite_name = $InstID . "_RaidI_Status_";
  302.                 my $temp_del = "";
  303.                 while ($count > 0)
  304.                 {
  305.                     if (defined($qglobals{"$raid_invite_name$count"}))
  306.                     {
  307.                         $temp_del = $raid_invite_name . $count;
  308.                         quest::delglobal($temp_del);
  309.                         $count ++;
  310.                     }
  311.                     else
  312.                     {
  313.                         $count = $count - 1;
  314.                         quest::gmsay("GM: Deleted $count Invited Players!", 18, 0);
  315.                         $count = 0;
  316.                     }
  317.                 }
  318.                 # END DELETE Raid Player Invited List
  319.  
  320.                 quest::DestroyInstance($InstID);
  321.                 quest::delglobal($RaidInstanceID);
  322.                 quest::delglobal($LeaderZone);
  323.                 quest::delglobal($LeaderName);
  324.                 quest::delglobal($LeaderTime);
  325.                 $client->Message(315, "Raid Instance ($InstID) Deleted!");
  326.                 $qglobals{"$LeaderZone"} = undef;
  327.                 $qglobals{"$LeaderName"} = undef;
  328.                 $qglobals{"$LeaderTime"} = undef;
  329.             }
  330.             else
  331.             {
  332.                 $client->Message(315, "You do not have a Raid Instance to delete!");
  333.             }
  334.             $qglobals{"$RaidInstanceID"} = undef;
  335.         }
  336.     }
  337.     ###  END RAID INSTANCES ######################################################################
  338.     ###############################################################################################
  339.  
  340.  
  341.     ###############################################################################################
  342.     ### START GUILD INSTANCES #####################################################################
  343.     if ($GuildStatus == 1)
  344.     {
  345.         if ($text=~/^Instance$/i || $text=~/^Instances$/i)
  346.         {
  347.             my $GuildID = $uguild_id;
  348.             my $GuildInstanceID = "$GuildID" . "_Guild_"  . "$zonesn" . "_" . "$zoneid";
  349.             if (defined($qglobals{"$GuildInstanceID"}))
  350.             {
  351.                 my $EnterGuildInstance      = quest::saylink("Enter Guild", 1);
  352.                 my $DeleteGuildInstance     = quest::saylink("Delete Guild", 1);
  353.                 my $GuildList               = quest::saylink("Guild List", 1);
  354.                 $client->Message(315,"[$EnterGuildInstance] [$DeleteGuildInstance] [$GuildList]");
  355.             }
  356.             else
  357.             {
  358.                 my $GuildCreate = quest::saylink("Create Guild Instance", 1);
  359.                 my $GuildCost = GUILD_PRICE();
  360.                 $client->Message(315,"[$GuildCreate] : $GuildCost Platinum");
  361.             }
  362.             $qglobals{"$GuildInstanceID"} = undef;
  363.         }
  364.  
  365.         if($text=~/^Create Guild Instance$/i)
  366.         {
  367.             my $GuildID = $uguild_id;
  368.             my $GuildInstanceID = "$GuildID" . "_Guild_"  . "$zonesn" . "_" . "$zoneid";
  369.             if (defined($qglobals{"$GuildInstanceID"}))
  370.             {
  371.                 $client->Message(315,"You already have a Guild Instance for $zonesn.");
  372.             }
  373.             else
  374.             {
  375.                 my $accountid = $client->AccountID();
  376.                 my $bankcredit = $qglobals{"BankCredit_$accountid"};
  377.                 my $GuildCost = GUILD_PRICE();
  378.                 my $cost = $GuildCost;
  379.                 if ($bankcredit < $cost)
  380.                 {
  381.                     $client->Message(315,"You need ". ($cost - $bankcredit) . " more plat!");
  382.                 }
  383.                 else
  384.                 {
  385.                     PayInstance("BankCredit", $cost, "Guild Instance");
  386.                     my $InstVersion = 0;            # MUST be 0 to load NPCs in an instance!
  387.                     my $InstanceDuration = 86400;
  388.                     my $EnterGuildInstance = quest::saylink("Enter Guild", 1);
  389.                     my $InstID = quest::CreateInstance("$zonesn", $InstVersion, $InstanceDuration);
  390.  
  391.                     my $LeaderZone = $InstID . "_GuildI_" . $zonesn . "_" . "$zoneid";              # Qglobal name for Guild Instance ID + zone to do guild invites
  392.                     quest::setglobal("$LeaderZone","$InstID","7","S$InstanceDuration");             # Qglobal name for Guild Instance ID + zone to do guild invites
  393.  
  394.                     my $LeaderName = $InstID . "_GuildI_Leader";                                    # Qglobal Instance/Zone ID to Leaders Name
  395.                     quest::setglobal("$LeaderName","$name","7","S$InstanceDuration");               # Qglobal Instance/Zone ID to Leaders Name
  396.  
  397.                     my $LeaderTime = $InstID . "_GuildI_Time";                                      # Qglobal Guild Instance Timer
  398.                     my $Expire_Time = time() + $InstanceDuration;                                   # Qglobal Guild Instance Timer
  399.                     quest::setglobal("$LeaderTime","$Expire_Time","7","S$InstanceDuration");        # Qglobal Guild Instance Timer
  400.  
  401.                     quest::setglobal("$GuildInstanceID","$InstID","7","S$InstanceDuration");        # Qglobal Set Guild Instance ID
  402.                     quest::AssignToInstance($InstID);
  403.                     # $client->Message(315," ");
  404.                     $client->Message(315,"You created a Guild Instance ($InstID) for $zonesn.");
  405.                     $client->Message(315,"Would you like to $EnterGuildInstance instance?");
  406.                     $qglobals{"$LeaderZone"} = undef;
  407.                     $qglobals{"$LeaderName"} = undef;
  408.                 } # create instance then send
  409.             }
  410.             $qglobals{"$GuildInstanceID"} = undef;
  411.         }
  412.  
  413.         if($text=~/^Enter Guild$/i)
  414.         {
  415.             my $GuildID = $uguild_id;
  416.             my $GuildInstanceID = "$GuildID" . "_Guild_"  . "$zonesn" . "_" . "$zoneid";
  417.             if (defined($qglobals{"$GuildInstanceID"}))
  418.             {
  419.                 my $timestamp = localtime(time);
  420.                 my $InstID = $qglobals{"$GuildInstanceID"};
  421.                 my $Cx = $client->GetX();
  422.                 my $Cy = $client->GetY();
  423.                 my $Cz = $client->GetZ();
  424.                 quest::popup("ENTER GUILD INSTANCE","<br>
  425.                             <c \"#FE2E2E\">Moving you to a GUILD instance!<br>
  426.                             <br>
  427.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  428.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  429.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  430.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">Guild<br>
  431.                             <br>
  432.                             <c \"#00BFFF\">ENJOY!<br>
  433.                             <br>
  434.                             ",1050,0);
  435.                 $client->Message(315, " ");
  436.                 $client->Message(315, "Moving you to Guild Instance ($InstID) for $zonesn.");
  437.                 quest::AssignToInstance($InstID);
  438.                 quest::MovePCInstance($zoneid, $InstID, $Cx, $Cy, $Cz);
  439.             }
  440.             else
  441.             {
  442.                 $client->Message(315,"You do not have a Guild Instance for $zonesn.");
  443.             }   # create instance then send
  444.             $qglobals{"$GuildInstanceID"} = undef;
  445.         }
  446.  
  447.         if ($text=~/^Delete Guild$/i)
  448.         {
  449.             $client->Message(315, " ");
  450.             my $GuildID = $uguild_id;
  451.             my $GuildInstanceID = "$GuildID" . "_Guild_"  . "$zonesn" . "_" . "$zoneid";
  452.             if (defined($qglobals{"$GuildInstanceID"}))
  453.             {
  454.                 my $InstID = $qglobals{"$GuildInstanceID"};
  455.                 my $LeaderZone = $InstID . "_GuildI_" . $zonesn . "_" . "$zoneid";
  456.                 my $LeaderName = $InstID . "_GuildI_Leader";
  457.                 my $LeaderTime = $InstID . "_GuildI_Time";
  458.                 # DELETE List of Players Invited to Guild Instance
  459.                 my $count = 1;
  460.                 my $guild_invite_name = $InstID . "_GuildI_Status_";
  461.                 my $temp_del = "";
  462.                 while ($count > 0)
  463.                 {
  464.                     if (defined($qglobals{"$guild_invite_name$count"}))
  465.                     {
  466.                         $temp_del = $guild_invite_name . $count;
  467.                         quest::delglobal($temp_del);
  468.                         $count ++;
  469.                     }
  470.                     else
  471.                     {
  472.                         $count = $count - 1;
  473.                         quest::gmsay("GM: Deleted $count Invited Players!", 18, 0);
  474.                         $count = 0;
  475.                     }
  476.                 }
  477.                 # END DELETE List of Players Invited to Guild Instance
  478.                 quest::DestroyInstance($InstID);
  479.                 quest::delglobal($GuildInstanceID);
  480.                 quest::delglobal($LeaderZone);
  481.                 quest::delglobal($LeaderName);
  482.                 quest::delglobal($LeaderTime);
  483.                 $client->Message(315, "Guild Instance ($InstID) Deleted!");
  484.  
  485.                 $qglobals{"$LeaderZone"} = undef;
  486.                 $qglobals{"$LeaderName"} = undef;
  487.                 $qglobals{"$LeaderTime"} = undef;
  488.             }
  489.             else
  490.             {
  491.                 $client->Message(315, "You do not have a Guild Instance to delete!");
  492.             }
  493.             $qglobals{"$GuildInstanceID"} = undef;
  494.         }
  495.     }
  496.     ###  END GUILD INSTANCES ######################################################################
  497.     ###############################################################################################
  498.  
  499.  
  500.     if ($text=~/^Instance$/i || $text=~/^Instances$/i)
  501.     {
  502.         my $LeaveInstance   = quest::saylink("Leave Instance", 1);
  503.         my $MoreOptions     = quest::saylink("More Options", 1);
  504.         $client->Message(315, "[$LeaveInstance] [$MoreOptions]");
  505.     }
  506.  
  507.  
  508.     if($text=~/^Guild Invite$/i)
  509.     {
  510.         $client->Message(315, " ");
  511.         $client->Message(315, "Syntax: guild invite <Player Name>");
  512.     }
  513.  
  514.  
  515.     if($text=~/^Raid Invite$/i)
  516.     {
  517.         $client->Message(315, " ");
  518.         $client->Message(315, "Syntax: raid invite <Player Name>");
  519.     }
  520.  
  521.  
  522.     # Invite Guild Member
  523.     if($text=~/^Guild Invite /i && $text ne "Guild Invite")
  524.     {
  525.         my $GuildID = $uguild_id;
  526.         my $GuildInstanceID = "$GuildID" . "_Guild_"  . "$zonesn" . "_" . "$zoneid";
  527.         if (defined($qglobals{"$GuildInstanceID"}))
  528.         {
  529.             my $GetFriendName = substr($text, 13);
  530.             my $Instance_Invite = 0 + $qglobals{"$GuildInstanceID"};
  531.             $client->Message(315, " ");
  532.             $client->Message(315, "You sent an invite to $GetFriendName to join Guild Instance ($Instance_Invite) in $zonesn.");
  533.             my $ZoneConvert = $zoneid * 1000000; # Include Zone ID in the Signal, multiple of 1 million (1-999 Million)
  534.             $Instance_Invite = $Instance_Invite + $ZoneConvert;
  535.             quest::crosszonesignalclientbyname($GetFriendName, $Instance_Invite);
  536.         }
  537.         else
  538.         {
  539.             $client->Message(315, " ");
  540.             $client->Message(315, "You do not have a Guild Instance for inviting.");
  541.         }
  542.         $qglobals{"$GuildInstanceID"} = undef;
  543.     }
  544.  
  545.  
  546.     # Invite Raid Member
  547.     if($text=~/^Raid Invite /i && $text ne "Raid Invite")
  548.     {
  549.         my $RaidID = $name;
  550.         my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_" . "$zoneid";
  551.         if (defined($qglobals{"$RaidInstanceID"}))
  552.         {
  553.             my $GetFriendName = substr($text, 12);
  554.             my $Instance_Invite = 0 + $qglobals{"$RaidInstanceID"};
  555.             $client->Message(315, " ");
  556.             $client->Message(315, "You sent an invite to $GetFriendName to join Raid Instance ($Instance_Invite) in $zonesn.");
  557.             my $ZoneConvert = $zoneid * 1000000; # Include Zone ID in the Signal, multiple of 1 million (1-999 Million)
  558.             $Instance_Invite = $Instance_Invite + $ZoneConvert;
  559.             quest::crosszonesignalclientbyname($GetFriendName, $Instance_Invite);      
  560.         }
  561.         else
  562.         {
  563.             $client->Message(315, " ");
  564.             $client->Message(315, "You do not have a Raid Instance for inviting.");
  565.         }
  566.         $qglobals{"$RaidInstanceID"} = undef;
  567.     }
  568.  
  569.  
  570.     # Invite Guild Member
  571.     if($text=~/^Guild Remove /i && $text ne "Guild Remove")
  572.     {
  573.         my $GuildID = $uguild_id;
  574.         my $GuildInstanceID = "$GuildID" . "_Guild_"  . "$zonesn" . "_" . "$zoneid";
  575.         if (defined($qglobals{"$GuildInstanceID"}))
  576.         {
  577.             my $GetFriendName = substr($text, 13);
  578.             my $Instance_Remove = 0 + $qglobals{"$GuildInstanceID"};
  579.             my $Instance_Remove2 =  $Instance_Remove + 1000000000; # 1,000,000,000
  580.             quest::crosszonesignalclientbyname($GetFriendName, $Instance_Remove2);
  581.             $client->Message(315, " ");
  582.             $client->Message(315, "You removed $GetFriendName from Guild Instance ($Instance_Remove) in $zonesn.");
  583.         }
  584.         else
  585.         {
  586.             $client->Message(315, " ");
  587.             $client->Message(315, "You do not have a Guild Instance for removing.");
  588.         }
  589.         $qglobals{"$GuildInstanceID"} = undef;
  590.     }
  591.  
  592.  
  593.     # Invite Raid Member
  594.     if($text=~/^Raid Remove /i && $text ne "Raid Remove")
  595.     {
  596.         my $RaidID = $name;
  597.         my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_" . "$zoneid";
  598.         if (defined($qglobals{"$RaidInstanceID"}))
  599.         {
  600.             my $GetFriendName = substr($text, 12);
  601.             my $Instance_Remove = 0 + $qglobals{"$RaidInstanceID"};
  602.             my $Instance_Remove2 =  $Instance_Remove + 1000000000; # 1,000,000,000
  603.             quest::crosszonesignalclientbyname($GetFriendName, $Instance_Remove2);
  604.             $client->Message(315, " ");
  605.             $client->Message(315, "You removed $GetFriendName from Raid Instance ($Instance_Remove) in $zonesn.");
  606.         }
  607.         else
  608.         {
  609.             $client->Message(315, " ");
  610.             $client->Message(315, "You do not have a Raid Instance for removing.");
  611.         }
  612.         $qglobals{"$RaidInstanceID"} = undef;
  613.     }
  614.  
  615.  
  616.     if($text=~/^guild join$/i)
  617.     {
  618.         $client->Message(315, " ");
  619.         $client->Message(315,"Syntax: guild join <number>");
  620.     }
  621.  
  622.  
  623.     if($text=~/^raid join$/i)
  624.     {
  625.         $client->Message(315, " ");
  626.         $client->Message(315,"Syntax: raid join <number>");
  627.     }
  628.  
  629.     if($text=~/^guild remove$/i)
  630.     {
  631.         $client->Message(315, " ");
  632.         $client->Message(315,"Syntax: guild remove <name>");
  633.     }
  634.  
  635.  
  636.     if($text=~/^raid remove$/i)
  637.     {
  638.         $client->Message(315, " ");
  639.         $client->Message(315,"Syntax: raid remove <name>");
  640.     }
  641.  
  642.  
  643.  
  644.     ###############################################################################################
  645.     ### JOIN JOIN GUILD INSTANCE ##################################################################
  646.     if($text=~/^guild join /i)
  647.     {
  648.         my $GetJoinID = substr($text, 11);
  649.         my $Check_G_Invite = $GetJoinID . "_GuildI_" . $zonesn . "_" . "$zoneid";
  650.         my $Check_G_Leader = $GetJoinID . "_GuildI_Leader";
  651.         if (defined($qglobals{"$Check_G_Invite"}))
  652.         {
  653.             # Find Player Qglobal to change status
  654.             my $count = 1;
  655.             my $guild_invite_name = $GetJoinID . "_GuildI_Status_";
  656.             my $guild_invite_pending = $name . "_pending";
  657.             my $guild_invite_joined = $name . "_joined";
  658.             my $compare_name = "";
  659.             while ($count > 0)
  660.             {
  661.                 if (defined($qglobals{"$guild_invite_name$count"}))
  662.                 {
  663.                     $compare_name = $qglobals{"$guild_invite_name$count"};
  664.                     if ($compare_name eq $guild_invite_pending || $compare_name eq $guild_invite_joined)
  665.                     {
  666.                         # When qglobal name found, change value from pending to joined, then enter.
  667.                         my $GetSeconds = GET_TIME_LEFT("GUILD", $GetJoinID);
  668.                         quest::setglobal("$guild_invite_name$count","$guild_invite_joined","7","S$GetSeconds");
  669.                         my $Leader = $qglobals{"$Check_G_Leader"};
  670.                         my $timestamp = localtime(time);
  671.                         my $Cx = $client->GetX();
  672.                         my $Cy = $client->GetY();
  673.                         my $Cz = $client->GetZ();
  674.                         quest::popup("ENTERING INVITED GUILD INSTANCE","<br>
  675.                             <c \"#FE2E2E\">Moving you to a INVITED Guild Instance ($GetJoinID)!<br>
  676.                             <br>
  677.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  678.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  679.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  680.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">$Leader Guild Instance<br>
  681.                             <br>
  682.                             <c \"#00BFFF\">ENJOY!<br>
  683.                             <br>
  684.                             ",1050,0);
  685.                         $client->Message(315, " ");
  686.                         $client->Message(315, "Moving you to $Leader Guild Instance ($GetJoinID) for $zonesn.");
  687.                         $qglobals{"$guild_invite_name"} = undef;
  688.                         quest::MovePCInstance($zoneid, $GetJoinID, $Cx, $Cy, $Cz);
  689.                         $count = 0;
  690.                     }
  691.                     else
  692.                     {
  693.                         $count ++;
  694.                     }
  695.                 }
  696.                 else
  697.                 {
  698.                     $client->Message(315,"You were not invited to Guild Instance $GetJoinID in $zonesn!");
  699.                     $count = 0;
  700.                 }
  701.             }
  702.         }
  703.         else
  704.         {
  705.             $client->Message(315,"Guild Instance $GetJoinID in $zonesn does not exist!");
  706.         }
  707.         $qglobals{"$Check_G_Invite"} = undef;
  708.         $qglobals{"$Check_G_Leader"} = undef;
  709.     }
  710.     ###  END JOIN GUILD INSTANCE ##################################################################
  711.     ###############################################################################################
  712.  
  713.  
  714.     ###############################################################################################
  715.     ### JOIN RAID INSTANCE ########################################################################
  716.     if($text=~/^raid join /i)
  717.     {
  718.         my $GetJoinID = substr($text, 10);
  719.         my $Check_R_Invite = $GetJoinID . "_RaidI_" . $zonesn . "_" . "$zoneid";
  720.         my $Check_R_Leader = $GetJoinID . "_RaidI_Leader";
  721.         if (defined($qglobals{"$Check_R_Invite"}))
  722.         {
  723.             # Find Player Qglobal to change status
  724.             my $count = 1;
  725.             my $raid_invite_name = $GetJoinID . "_RaidI_Status_";
  726.             my $raid_invite_pending = $name . "_pending";
  727.             my $raid_invite_joined = $name . "_joined";
  728.             my $compare_name = "";         
  729.             while ($count > 0)
  730.             {
  731.                 if (defined($qglobals{"$raid_invite_name$count"}))
  732.                 {
  733.                     $compare_name = $qglobals{"$raid_invite_name$count"};
  734.                     if ($compare_name eq $raid_invite_pending || $compare_name eq $raid_invite_joined)
  735.                     {
  736.                         # When qglobal name found, change value from pending to joined, then enter
  737.                         my $GetSeconds = GET_TIME_LEFT("RAID", $GetJoinID);
  738.                         quest::setglobal("$raid_invite_name$count","$raid_invite_joined","7","S$GetSeconds");
  739.                         my $Leader = $qglobals{"$Check_R_Leader"};
  740.                         my $timestamp = localtime(time);
  741.                         my $Cx = $client->GetX();
  742.                         my $Cy = $client->GetY();
  743.                         my $Cz = $client->GetZ();
  744.                         quest::popup("ENTERING INVITED RAID INSTANCE","<br>
  745.                             <c \"#FE2E2E\">Moving you to a INVITED Raid Instance ($GetJoinID)!<br>
  746.                             <br>
  747.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  748.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  749.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  750.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">$Leader Raid Instance<br>
  751.                             <br>
  752.                             <c \"#00BFFF\">ENJOY!<br>
  753.                             <br>
  754.                             ",1050,0);
  755.                         $client->Message(315, " ");
  756.                         $client->Message(315, "Moving you to $Leader Raid Instance ($GetJoinID) for $zonesn.");
  757.                         $qglobals{"$raid_invite_name"} = undef;
  758.                         quest::MovePCInstance($zoneid, $GetJoinID, $Cx, $Cy, $Cz);
  759.                         $count = 0;
  760.                     }
  761.                     else
  762.                     {
  763.                         $count ++;
  764.                     }
  765.                 }
  766.                 else
  767.                 {
  768.                     $client->Message(315,"You were not invited to Raid Instance $GetJoinID in $zonesn!");
  769.                     $count = 0;
  770.                 }
  771.             }
  772.         }
  773.         else
  774.         {
  775.             $client->Message(315,"Raid Instance $GetJoinID in $zonesn does not exist!");
  776.         }
  777.         $qglobals{"$Check_R_Invite"} = undef;
  778.         $qglobals{"$Check_R_Leader"} = undef;
  779.     }
  780.     ###  END JOIN RAID INSTANCE ###################################################################
  781.     ###############################################################################################
  782.  
  783.  
  784.     #################################################################################################################################################
  785.     # LIST of players invited/assigned to Guild Instance
  786.     if($text=~/^Guild List$/i)
  787.     {
  788.         my $timestamp = localtime(time);
  789.         $client->Message(315," ");
  790.         my $GuildID = $uguild_id;
  791.         my $GuildInstanceID = "$GuildID" . "_Guild_"  . "$zonesn" . "_" . "$zoneid";
  792.         if (defined($qglobals{"$GuildInstanceID"}))
  793.         {
  794.             my $Check_G_Invite = $qglobals{"$GuildInstanceID"} . "_GuildI_" . $zonesn . "_" . "$zoneid";
  795.             my $Check_G_Leader = $qglobals{"$GuildInstanceID"} . "_GuildI_Leader";
  796.             my $GID = $qglobals{"$GuildInstanceID"};
  797.  
  798.             # GET TIME LEFT UNTIL INSTANCE EXPIRES
  799.             my $LeaderTime  = $GID . "_GuildI_Time";
  800.             my $ExpireTime  = $qglobals{"$LeaderTime"};
  801.             my $TimeLeft    = $ExpireTime - time();
  802.             my $GetDays     = int($TimeLeft/(24*60*60));
  803.             my $GetHours    = ($TimeLeft/(60*60))%24;
  804.             my $GetMins     = ($TimeLeft/60)%60;
  805.             my $GetSecs     = $TimeLeft%60;
  806.  
  807.             $client->Message(315,"Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec");
  808.             $client->Message(315,"List of players in your Guild Instance ($GID) in $zonesn!");
  809.             my $names_list = "";
  810.             my $temp_name = "";
  811.             my $guild_invite_name = $GID . "_GuildI_Status_";
  812.             my $count = 1;
  813.             my $player_count = 0;
  814.             while ($count > 0)
  815.             {
  816.                 if (defined($qglobals{"$guild_invite_name$count"}))
  817.                 {
  818.                     $player_count = $count;
  819.                     $temp_name = $qglobals{"$guild_invite_name$count"};
  820.                     if ($temp_name=~/pending$/i)
  821.                     {
  822.                         my $player_name = $temp_name;
  823.                         $player_name =~ s/_pending//; # string substitute flag
  824.                         my $player_status = " - Pending";
  825.                         my $player_color_yellow = "<c \"#AEB404\">";
  826.                         my $player_color_white = "<c \"#FFFFFF\">";
  827.                         my $player_space = "&nbsp;";
  828.                         my $player_break = "<br>";
  829.                         my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
  830.                         $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_yellow . $player_status . $player_break;
  831.                     }
  832.                     elsif ($temp_name=~/joined$/i)
  833.                     {
  834.                         my $player_name = $temp_name;
  835.                         $player_name =~ s/_joined//;
  836.                         my $player_status = " - Joined";
  837.                         my $player_color_green = "<c \"#298A08\">";
  838.                         my $player_color_white = "<c \"#FFFFFF\">";
  839.                         my $player_space = "&nbsp;";
  840.                         my $player_break = "<br>";
  841.                         my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
  842.                         $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_green . $player_status . $player_break;
  843.                     }
  844.                     elsif ($temp_name=~/removed$/i)
  845.                     {
  846.                         my $player_name = $temp_name;
  847.                         $player_name =~ s/_removed//;
  848.                         my $player_status = " - Removed";
  849.                         my $player_color_red = "<c \"#FE2E2E\">";
  850.                         my $player_color_white = "<c \"#FFFFFF\">";
  851.                         my $player_space = "&nbsp;";
  852.                         my $player_break = "<br>";
  853.                         my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
  854.                         $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_red . $player_status . $player_break;
  855.                     }
  856.                     else
  857.                     {
  858.                         quest::gmsay("GM: GUILD LIST ADD NAME ERROR.", 18, 0);
  859.                     }
  860.                     # quest::gmsay("GM: $temp_name added to List", 18, 0);
  861.                     $count ++;
  862.                 }
  863.                 else
  864.                 {
  865.                     # quest::gmsay("GM: End of List", 18, 0);
  866.                     $count = 0;
  867.                 }
  868.             }
  869.             quest::popup("GUILD INSTANCE LIST","
  870.                             Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec <br>
  871.                             <c \"#FE2E2E\">List of ($player_count) players in Guild Instance ($GID) in $zonesn<br>
  872.                             &nbsp;<br>
  873.                             $names_list
  874.                             <br>
  875.                             ",1050,0);
  876.             $qglobals{"$Check_G_Invite"} = undef;
  877.             $qglobals{"$Check_G_Leader"} = undef;
  878.         }
  879.         else { $client->Message(315,"You do not have a Guild Instance in $zonesn!"); }
  880.         $qglobals{"$GuildInstanceID"} = undef;
  881.     }
  882.     # End Guild Instance LIST
  883.     #################################################################################################################################################
  884.  
  885.  
  886.     #################################################################################################################################################
  887.     # List of players invited/assigned to Raid Instance
  888.     if($text=~/^Raid List$/i)
  889.     {
  890.         # my $timestamp = localtime(time);
  891.         $client->Message(315," ");
  892.  
  893.         my $RaidID = $name;
  894.         my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_" . "$zoneid";
  895.         if (defined($qglobals{"$RaidInstanceID"}))
  896.         {
  897.             my $Check_G_Invite = $qglobals{"$RaidInstanceID"} . "_RaidI_" . $zonesn . "_" . "$zoneid";
  898.             my $Check_G_Leader = $qglobals{"$RaidInstanceID"} . "_RaidI_Leader";
  899.             my $GID = $qglobals{"$RaidInstanceID"};
  900.  
  901.             # GET TIME LEFT UNTIL INSTANCE EXPIRES
  902.             my $LeaderTime  = $GID . "_RaidI_Time";
  903.             my $ExpireTime  = $qglobals{"$LeaderTime"};
  904.             my $TimeLeft    = $ExpireTime - time();
  905.             my $GetDays     = int($TimeLeft/(24*60*60));
  906.             my $GetHours    = ($TimeLeft/(60*60))%24;
  907.             my $GetMins     = ($TimeLeft/60)%60;
  908.             my $GetSecs     = $TimeLeft%60;
  909.  
  910.             $client->Message(315,"Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec");
  911.             $client->Message(315,"List of players in your Raid Instance ($GID) in $zonesn!");
  912.             my $names_list = "";
  913.             my $temp_name = "";
  914.             my $raid_invite_name = $GID . "_RaidI_Status_";
  915.             my $count = 1;
  916.             my $player_count = 0;
  917.             while ($count > 0)
  918.             {
  919.                 if (defined($qglobals{"$raid_invite_name$count"}))
  920.                 {
  921.                     $player_count = $count;
  922.                     $temp_name = $qglobals{"$raid_invite_name$count"};
  923.                     if ($temp_name=~/pending$/i)
  924.                     {
  925.                         my $player_name = $temp_name;
  926.                         $player_name =~ s/_pending//; # string substitute flag
  927.                         my $player_status = " - Pending";
  928.                         my $player_color_yellow = "<c \"#AEB404\">";
  929.                         my $player_color_white = "<c \"#FFFFFF\">";
  930.                         my $player_space = "&nbsp;";
  931.                         my $player_break = "<br>";
  932.                         my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
  933.                         $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_yellow . $player_status . $player_break;
  934.                     }
  935.                     elsif ($temp_name=~/joined$/i)
  936.                     {
  937.  
  938.                         my $player_name = $temp_name;
  939.                         $player_name =~ s/_joined//;
  940.  
  941.                         my $player_status = " - Joined";
  942.                         my $player_color_green = "<c \"#298A08\">";
  943.                         my $player_color_white = "<c \"#FFFFFF\">";
  944.                         my $player_space = "&nbsp;";
  945.                         my $player_break = "<br>";
  946.                         my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
  947.                         $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_green . $player_status . $player_break;
  948.                     }
  949.                     elsif ($temp_name=~/removed$/i)
  950.                     {
  951.                         my $player_name = $temp_name;
  952.                         $player_name =~ s/_removed//;
  953.                         my $player_status = " - Removed";
  954.                         my $player_color_red = "<c \"#FE2E2E\">";
  955.                         my $player_color_white = "<c \"#FFFFFF\">";
  956.                         my $player_space = "&nbsp;";
  957.                         my $player_break = "<br>";
  958.                         my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
  959.                         $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_red . $player_status . $player_break;
  960.                     }
  961.                     else
  962.                     {
  963.                         quest::gmsay("GM: RAID LIST ADD NAME ERROR.", 18, 0);
  964.                     }
  965.                     # quest::gmsay("GM: $temp_name added to List", 18, 0);
  966.                     $count ++;
  967.                 }
  968.                 else
  969.                 {
  970.                     # quest::gmsay("GM: End of List", 18, 0);
  971.                     $count = 0;
  972.                 }
  973.             }
  974.             quest::popup("RAID INSTANCE LIST","
  975.                             Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec <br>
  976.                             <c \"#FE2E2E\">List of ($player_count) players in Raid Instance ($GID) in $zonesn<br>
  977.                             &nbsp;<br>
  978.                             $names_list
  979.                             <br>
  980.                             ",1050,0);
  981.             $qglobals{"$Check_G_Invite"} = undef;
  982.             $qglobals{"$Check_G_Leader"} = undef;
  983.         }
  984.         else { $client->Message(315,"You do not have a Raid Instance in $zonesn!"); }
  985.         $qglobals{"$RaidInstanceID"} = undef;
  986.     }
  987.     # End Raid Instance LIST
  988.     #################################################################################################################################################
  989.  
  990.  
  991.     if($text=~/^More Options$/i)
  992.     {
  993.         # $client->Message(315, " ");
  994.         my $GuildInvite     = quest::saylink("Guild Invite", 1);
  995.         my $GuildJoin       = quest::saylink("Guild Join", 1);
  996.         my $GuildRemove     = quest::saylink("Guild Remove", 1);
  997.         my $RaidInvite      = quest::saylink("Raid Invite", 1);
  998.         my $RaidJoin        = quest::saylink("Raid Join", 1);
  999.         my $RaidRemove      = quest::saylink("Raid Remove", 1);
  1000.         my $Deposit = quest::saylink("Deposit",1);
  1001.         my $Withdraw = quest::saylink("Withdraw",1);
  1002.         my $Balance = quest::saylink("Balance",1);
  1003.         $client->Message(315, "More Waypoint Options ...");
  1004.         $client->Message(315, "[$RaidInvite] [$RaidJoin] [$RaidRemove]");
  1005.         $client->Message(315, "[$GuildInvite] [$GuildJoin] [$GuildRemove]");
  1006.         $client->Message(315, "[$Balance] [$Deposit] [$Withdraw]");
  1007.     }
  1008.  
  1009.  
  1010.     if($text =~ /^Balance$/i)
  1011.     {
  1012.         # plugin::CreditStatusAccount("BankCredit");
  1013.         Check_Balance("BankCredit");
  1014.     }
  1015.  
  1016.  
  1017.     if($text =~ /^Deposit$/i)
  1018.     {
  1019.         $client->Message(315," ");
  1020.         $client->Message(315,"Just give a Waypoint any amount of platinum you'd like to deposit!");
  1021.     }
  1022.  
  1023.     if($text =~ /^Withdraw$/i)
  1024.     {
  1025.         $client->Message(315," ");
  1026.         $client->Message(315,"Withdraw not available.");
  1027.     }
  1028.  
  1029.  
  1030.     if($text=~/^Leave Instance$/i)
  1031.     {
  1032.         my $Cx = $client->GetX();
  1033.         my $Cy = $client->GetY();
  1034.         my $Cz = $client->GetZ();
  1035.         my $Ch = $client->GetHeading();
  1036.         my $timestamp = localtime(time);
  1037.         $client->Message(315," ");
  1038.         $client->Message(315,"Moving you back to public zone in $zonesn!");
  1039.         quest::popup("LEAVE INSTANCE","<br>
  1040.                             <c \"#FE2E2E\">You choose to leave instance.<br>
  1041.                             <c \"#FE2E2E\">Moving you to a PUBLIC zone!<br>
  1042.                             <br>
  1043.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  1044.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  1045.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  1046.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">Public<br>
  1047.                             <br>
  1048.                             <c \"#00BFFF\">ENJOY!<br>
  1049.                             <br>
  1050.                             ",1050,0);
  1051.         quest::movepc($zoneid, $Cx, $Cy, $Cz, $Ch);
  1052.     }
  1053.  
  1054.     # $qglobals{"$SoloInstanceID"} = undef;
  1055.     # $qglobals{"$GuildInstanceID"} = undef;
  1056.     # $qglobals{"$Check_G_Invite"}  = undef;
  1057.     # $qglobals{"$Check_G_Leader"}  = undef;
  1058.  
  1059. } # End EVENT_SAY
  1060.  
  1061.  
  1062. sub EVENT_SIGNAL
  1063. {
  1064.     # 1000000000 is to remove player from Guild and Raid Instances (1,000,000,000)
  1065.     my $signal_ID = 0;
  1066.     my $signal_zone_ID = 0;
  1067.     my $signal_instance_ID = 0;
  1068.     if ($signal > 1000000000)
  1069.     {
  1070.         $signal_ID = $signal - 1000000000;              # If remove flag, use signal - 1 million
  1071.     }
  1072.     else
  1073.     {
  1074.         $signal_ID = $signal;                           # else no remove flag, just use signal
  1075.     }
  1076.     $signal_zone_ID = int ($signal_ID / 1000000);       # $ZoneConvert = $zoneid * 1000000;
  1077.     $signal_instance_ID = int ($signal_ID % 1000000);
  1078.    
  1079.     my $Check_G_Invite = $signal_instance_ID . "_GuildI_" . $zonesn . "_" . "$zoneid";
  1080.     my $Check_G_Leader = $signal_instance_ID . "_GuildI_Leader";
  1081.     my $Check_R_Invite = $signal_instance_ID . "_RaidI_" . $zonesn . "_" . "$zoneid";
  1082.     my $Check_R_Leader = $signal_instance_ID . "_RaidI_Leader";
  1083.  
  1084.     # quest::gmsay("GM: signal_ID = $signal_ID / signal_zone_ID = $signal_zone_ID / signal_instance_ID = $signal_instance_ID", 18, 0);
  1085.  
  1086.     #############################################################################################################################
  1087.     # IF GUILD INVITE ###########################################################################################################
  1088.     if (defined($qglobals{"$Check_G_Invite"}))
  1089.     {
  1090.         my $Leader = $qglobals{"$Check_G_Leader"};
  1091.         quest::AssignToInstance($signal_instance_ID);
  1092.  
  1093.         # Create a qglobal list of players invited/assigned to Guild Instance
  1094.         my $count = 1;
  1095.         my $guild_invite_name       = $signal_instance_ID . "_GuildI_Status_";
  1096.         my $guild_invite_pending    = $name . "_pending";
  1097.         my $guild_invite_joined     = $name . "_joined";
  1098.         my $guild_invite_removed    = $name . "_removed";
  1099.         while ($count > 0)
  1100.         {
  1101.             if (defined($qglobals{"$guild_invite_name$count"}))
  1102.             {
  1103.                 if ($qglobals{"$guild_invite_name$count"} eq $guild_invite_pending ||
  1104.                     $qglobals{"$guild_invite_name$count"} eq $guild_invite_joined)
  1105.                 {
  1106.                     if ($signal > 1000000000)
  1107.                     {
  1108.                         my $Cx = $client->GetX();
  1109.                         my $Cy = $client->GetY();
  1110.                         my $Cz = $client->GetZ();
  1111.                         my $Ch = $client->GetHeading();
  1112.                         my $timestamp = localtime(time);
  1113.                         $client->Message(315," ");
  1114.                         $client->Message(315,"You have been removed from Guild Instance ($signal_instance_ID) in $zonesn!");
  1115.                         quest::popup("YOU HAVE BEEN REMOVED","<br>
  1116.                             <c \"#FE2E2E\">You have been removed from Guild Instance.<br>
  1117.                             <c \"#FE2E2E\">Moving you to a PUBLIC zone!<br>
  1118.                             <br>
  1119.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  1120.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  1121.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  1122.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">Public<br>
  1123.                             <br>
  1124.                             <c \"#00BFFF\">You have been removed from Guild Instance ($signal_instance_ID) in $zonesn!<br>
  1125.                             <br>
  1126.                             ",1050,0);
  1127.                         my $GetSeconds = GET_TIME_LEFT("GUILD", $signal_instance_ID);
  1128.                         quest::setglobal("$guild_invite_name$count","$guild_invite_removed","7","S$GetSeconds");
  1129.                         $count = 0;
  1130.                         quest::movepc($zoneid, $Cx, $Cy, $Cz, $Ch);
  1131.                     }
  1132.                     else
  1133.                     {
  1134.                         my $GetSeconds = GET_TIME_LEFT("GUILD", $signal_instance_ID);
  1135.                         my $correct_zone = GET_ZONE_NAME_BY_ID($signal_zone_ID);
  1136.                         quest::setglobal("$guild_invite_name$count","$guild_invite_pending","7","S$GetSeconds");
  1137.                         $client->Message(315," ");
  1138.                         $client->Message(315,"$Leader has re-invited you to join a Guild Instance in $correct_zone.");
  1139.                         $client->Message(315,"Type: guild join $signal_instance_ID (when you are in $correct_zone)");
  1140.                         quest::gmsay("GM: $signal_zone_ID = $correct_zone", 18, 0);            
  1141.                     }
  1142.                     $count = 0;
  1143.                 }
  1144.                 elsif ($qglobals{"$guild_invite_name$count"} eq $guild_invite_removed)
  1145.                 {
  1146.                     if ($signal < 1000000000)
  1147.                     {
  1148.                         my $GetSeconds = GET_TIME_LEFT("GUILD", $signal_instance_ID);
  1149.                         my $correct_zone = GET_ZONE_NAME_BY_ID($signal_zone_ID);
  1150.                         quest::setglobal("$guild_invite_name$count","$guild_invite_pending","7","S$GetSeconds");
  1151.                         $client->Message(315," ");
  1152.                         $client->Message(315,"$Leader has re-invited you to join a Guild Instance in $correct_zone.");
  1153.                         $client->Message(315,"Type: guild join $signal_instance_ID (when you are in $correct_zone)");
  1154.                         quest::gmsay("GM: $signal_zone_ID = $correct_zone", 18, 0);
  1155.                     }
  1156.                     $count = 0;
  1157.                 }
  1158.                 else
  1159.                 {
  1160.                     $count ++;
  1161.                 }
  1162.             }
  1163.             else
  1164.             {
  1165.                 ###############################################################################
  1166.                 my $GetSeconds = GET_TIME_LEFT("GUILD", $signal_instance_ID);
  1167.                 my $correct_zone = GET_ZONE_NAME_BY_ID($signal_zone_ID);
  1168.                 quest::setglobal("$guild_invite_name$count","$guild_invite_pending","7","S$GetSeconds");
  1169.                 $client->Message(315," ");
  1170.                 $client->Message(315,"$Leader has invited you to join a Guild Instance in $correct_zone.");
  1171.                 $client->Message(315,"Type: guild join $signal_instance_ID (when you are in $correct_zone)");
  1172.                 quest::gmsay("GM: $signal_zone_ID = $correct_zone", 18, 0);
  1173.                 $count = 0;
  1174.             }
  1175.         }
  1176.         $qglobals{"$Check_G_Invite"} = undef;
  1177.         $qglobals{"$Check_G_Leader"} = undef;
  1178.     }
  1179.     # END IF GUILD INVITE #######################################################################################################
  1180.     #############################################################################################################################
  1181.  
  1182.  
  1183.     #############################################################################################################################
  1184.     # IF RAID INVITE ############################################################################################################
  1185.     if (defined($qglobals{"$Check_R_Invite"}))
  1186.     {
  1187.         my $Leader = $qglobals{"$Check_R_Leader"};
  1188.         quest::AssignToInstance($signal_instance_ID);
  1189.  
  1190.         # Create a qglobal list of players invited/assigned to Raid Instance
  1191.         my $count = 1;
  1192.         my $raid_invite_name        = $signal_instance_ID . "_RaidI_Status_";
  1193.         my $raid_invite_pending     = $name . "_pending";
  1194.         my $raid_invite_joined      = $name . "_joined";
  1195.         my $raid_invite_removed     = $name . "_removed";
  1196.         while ($count > 0)
  1197.         {
  1198.             if (defined($qglobals{"$raid_invite_name$count"}))
  1199.             {
  1200.                 if ($qglobals{"$raid_invite_name$count"} eq $raid_invite_pending ||
  1201.                     $qglobals{"$raid_invite_name$count"} eq $raid_invite_joined)
  1202.                 {
  1203.                     if ($signal > 1000000000)
  1204.                     {
  1205.                         my $Cx = $client->GetX();
  1206.                         my $Cy = $client->GetY();
  1207.                         my $Cz = $client->GetZ();
  1208.                         my $Ch = $client->GetHeading();
  1209.                         my $timestamp = localtime(time);
  1210.                         $client->Message(315," ");
  1211.                         $client->Message(315,"You have been removed from Raid Instance ($signal_instance_ID) in $zonesn!");
  1212.                         quest::popup("YOU HAVE BEEN REMOVED","<br>
  1213.                             <c \"#FE2E2E\">You have been removed from Raid Instance.<br>
  1214.                             <c \"#FE2E2E\">Moving you to a PUBLIC zone!<br>
  1215.                             <br>
  1216.                             <c \"#FFFF49\">Time : &nbsp;&nbsp;&nbsp;<c \"#00FF00\">$timestamp<br>
  1217.                             <c \"#FFFF49\">Name : &nbsp; <c \"#00FF00\">$name<br>
  1218.                             <c \"#FFFF49\">Zone : &nbsp;&nbsp;&nbsp; <c \"#00FF00\">$zonesn<br>
  1219.                             <c \"#FFFF49\">Type : &nbsp;&nbsp;&nbsp;&nbsp; <c \"#00FF00\">Public<br>
  1220.                             <br>
  1221.                             <c \"#00BFFF\">You have been removed from Raid Instance ($signal_instance_ID) in $zonesn!<br>
  1222.                             <br>
  1223.                             ",1050,0);
  1224.                         my $GetSeconds = GET_TIME_LEFT("RAID", $signal_instance_ID);
  1225.                         quest::setglobal("$raid_invite_name$count","$raid_invite_removed","7","S$GetSeconds");
  1226.                         $count = 0;
  1227.                         quest::movepc($zoneid, $Cx, $Cy, $Cz, $Ch);
  1228.                     }
  1229.                     else
  1230.                     {
  1231.                         my $GetSeconds = GET_TIME_LEFT("RAID", $signal_instance_ID);
  1232.                         my $correct_zone = GET_ZONE_NAME_BY_ID($signal_zone_ID);
  1233.                         quest::setglobal("$raid_invite_name$count","$raid_invite_pending","7","S$GetSeconds");
  1234.                         $client->Message(315," ");
  1235.                         $client->Message(315,"$Leader has re-invited you to join a Raid Instance in $zonesn.");
  1236.                         $client->Message(315,"Type: raid join $signal_instance_ID (when you are in $correct_zone)");
  1237.                         quest::gmsay("GM: $signal_zone_ID = $correct_zone", 18, 0);
  1238.                     }                  
  1239.                     $count = 0;
  1240.                 }
  1241.                 elsif ($qglobals{"$raid_invite_name$count"} eq $raid_invite_removed)
  1242.                 {
  1243.                     if ($signal < 1000000000)
  1244.                     {
  1245.                         my $GetSeconds = GET_TIME_LEFT("RAID", $signal_instance_ID);
  1246.                         my $correct_zone = GET_ZONE_NAME_BY_ID($signal_zone_ID);
  1247.                         quest::setglobal("$raid_invite_name$count","$raid_invite_pending","7","S$GetSeconds");
  1248.                         $client->Message(315," ");
  1249.                         $client->Message(315,"$Leader has re-invited you to join a Raid Instance in $zonesn.");
  1250.                         $client->Message(315,"Type: raid join $signal_instance_ID (when you are in $correct_zone)");
  1251.                         quest::gmsay("GM: $signal_zone_ID = $correct_zone", 18, 0);
  1252.                     }
  1253.                     $count = 0;
  1254.                 }
  1255.                 else
  1256.                 {
  1257.                     $count ++;
  1258.                 }
  1259.             }
  1260.             else
  1261.             {
  1262.                 ###############################################################################
  1263.                 my $GetSeconds = GET_TIME_LEFT("RAID", $signal_instance_ID);
  1264.                 my $correct_zone = GET_ZONE_NAME_BY_ID($signal_zone_ID);
  1265.                 quest::setglobal("$raid_invite_name$count","$raid_invite_pending","7","S$GetSeconds");
  1266.                 $client->Message(315," ");
  1267.                 $client->Message(315,"$Leader has invited you to join a Raid Instance in $zonesn.");
  1268.                 $client->Message(315,"Type: raid join $signal_instance_ID (when you are in $correct_zone)");
  1269.                 quest::gmsay("GM: $signal_zone_ID = $correct_zone", 18, 0);
  1270.                 $count = 0;
  1271.             }
  1272.         }
  1273.         $qglobals{"$Check_R_Invite"} = undef;
  1274.         $qglobals{"$Check_R_Leader"} = undef;
  1275.     }
  1276.     # END IF RAID INVITE ########################################################################################################
  1277.     #############################################################################################################################
  1278.  
  1279. } # End EVENT_SIGNAL
  1280.  
  1281.  
  1282. #################################################################################################################################
  1283. ####   CUSTOM SUBS   ############################################################################################################
  1284. #################################################################################################################################
  1285.  
  1286.  
  1287. ### Usage: PayInstance("Creditname", Cost, "Solo/Guild/Raid");
  1288. ### This will take into account the whole account of the player
  1289. sub PayInstance
  1290. {
  1291.     my $CreditName = $_[0];
  1292.     my $Cost = $_[1];
  1293.     my $Instance_Type = $_[2]; # Solo, Guild, or Raid
  1294.     my $client = plugin::val('$client');
  1295.     my $name = plugin::val('$name');
  1296.     my $zonesn = plugin::val('$zonesn');
  1297.     my $qglobals = plugin::var('qglobals');
  1298.     my $space = "_";
  1299.     my $accountid = $client->AccountID();
  1300.     my $accountname = $client->AccountName();
  1301.     # my $CreditAmnt = $qglobals{"$CreditName$space$accountid"};
  1302.     my $CreditAmnt = $qglobals->{"$CreditName$space$accountid"};
  1303.     my $CreditAmnt2 = commify2($CreditAmnt - $Cost);
  1304.     my $CostCommify = commify2($Cost);
  1305.     if ($CreditAmnt < $Cost)
  1306.     {
  1307.         $client->Message(315,"Insuffient funds... You need " . ($Cost - $CreditAmnt) . " more Platinum pieces.");
  1308.     }
  1309.     else
  1310.     {
  1311.         $CreditAmnt -= $Cost;
  1312.         $client->SetGlobal("$CreditName$space$accountid", "$CreditAmnt", 7, 'F');
  1313.         $client->Message(315," ");
  1314.         $client->Message(315,"You now have $CreditAmnt2 platinum left.");
  1315.         my $ClientCheck = PlayerClientCheck();
  1316.         my $timestamp = localtime(time);
  1317.         quest::popup("Account Balance","
  1318.             <c \"#FFFF66\">Time : </c> $timestamp </c> <br>
  1319.             <c \"#FFFF66\">Client : </c> $ClientCheck </c> <br>
  1320.             <c \"#FFFF66\">Account : </c> $accountname <br>
  1321.             <c \"#FFFF66\">Character : </c>$name <br>
  1322.             <c \"#FFFF66\">Zone Name : </c>$zonesn <br>
  1323.             <c \"#FFFF66\">Instance Type : </c>$Instance_Type <br>
  1324.             <c \"#FFFF66\">Cost from Account : </c>  <c \"#FE2E2E</c> - $CostCommify </c> <br>
  1325.             <c \"#FFFF66\">Remaining Balance : </c> <c \"#33FF99\"> $CreditAmnt2 </c> <br>
  1326.             <br>
  1327.             <c \"#FE2E2E\">WARNING:  </c> Like other <c \"#FFFF66\">Qglobals</c>, sometimes the zone will bug out
  1328.             and not see the current values. If your balance or instance has disappeared, try going to a public zone
  1329.             or different zone to see if it gets refresh.
  1330.             We apologize for the inconvenience as it will reappear in time.
  1331.             ");
  1332.     }
  1333.     $qglobals{"$CreditName$space$accountid"} = undef;
  1334. } # End PayInstance
  1335.  
  1336.  
  1337. ### POP UP TO DISPLAY WAYPOINT BALANCE
  1338. sub Check_Balance
  1339. {
  1340.     my $CreditName = $_[0];
  1341.     my $client = plugin::val('$client');
  1342.     my $name = plugin::val('$name');
  1343.     my $zonesn = plugin::val('$zonesn');
  1344.     my $qglobals = plugin::var('qglobals');
  1345.     my $space = "_";
  1346.     my $accountid = $client->AccountID();
  1347.     my $accountname = $client->AccountName();
  1348.     # my $CreditAmnt = $qglobals{"$CreditName$space$accountid"};
  1349.     my $CreditAmnt = $qglobals->{"$CreditName$space$accountid"};
  1350.     my $CreditAmnt2 = commify2($CreditAmnt);
  1351.     # my $CreditAmnt2 = $CreditAmnt - $Cost;
  1352.     my $ClientCheck = PlayerClientCheck();
  1353.     my $timestamp = localtime(time);
  1354.     quest::popup("Account Balance","
  1355.             <c \"#FFFF66\">Time : </c> $timestamp </c> <br>
  1356.             <c \"#FFFF66\">Client : </c> $ClientCheck </c> <br>
  1357.             <c \"#FFFF66\">Account : </c> $accountname <br>
  1358.             <c \"#FFFF66\">Character : </c>$name <br>
  1359.             <c \"#FFFF66\">Zone Name : </c>$zonesn <br>
  1360.             <c \"#FFFF66\">Remaining Balance : </c> <c \"#33FF99\"> $CreditAmnt2 </c> <br>
  1361.             <br>
  1362.             <c \"#FE2E2E\">WARNING:  </c> Like other <c \"#FFFF66\">Qglobals</c> , sometimes the zone will bug out
  1363.             and not see the current values. If your balance or instance has disappeared, try going to a public zone
  1364.             or different zone to see if it gets refresh.
  1365.             We apologize for the inconvenience as it will reappear in time.
  1366.             ");
  1367.     $client->Message(315," ");
  1368.     $client->Message(315,"You now have $CreditAmnt2 platinum left.");
  1369.     $qglobals{"$CreditName$space$accountid"} = undef;
  1370. } # End Check_Balance
  1371.  
  1372.  
  1373. ### Check Expansion Name
  1374. sub PlayerClientCheck
  1375. {
  1376.     my $client = plugin::val('$client');
  1377.     my $clientver = $client->GetClientVersion();
  1378.     my $ShowClient = "";
  1379.     if      ($clientver == 2)   { $ShowClient = "Titanium"; }
  1380.     elsif   ($clientver == 3)   { $ShowClient = "Secrets of Faydwer"; }
  1381.     elsif   ($clientver == 4)   { $ShowClient = "Seeds of Destruction"; }
  1382.     elsif   ($clientver == 5)   { $ShowClient = "Underfoot"; }
  1383.     else                        { $ShowClient = "Other"; }
  1384.     return "$ShowClient";
  1385. }
  1386.  
  1387.  
  1388. ### Change 1000000 to 1,000,000
  1389. sub commify2
  1390. {
  1391.    local $_  = shift;
  1392.    s{(?<!\d|\.)(\d{4,})}
  1393.     {my $n = $1;
  1394.      $n=~s/(?<=.)(?=(?:.{3})+$)/,/g;
  1395.      $n;
  1396.     }eg;
  1397.    return $_;
  1398. }
  1399.  
  1400.  
  1401. sub SOLO_PRICE
  1402. {
  1403.     my $client = plugin::val('$client');
  1404.     my $freeinstance = plugin::check_hasitem($client, 120003);  #EDIT item ID for FREE instance item
  1405.     my $paidinstance = plugin::check_hasitem($client, 119998);  #EDIT item ID for PAID instance item
  1406.     my $new_price = 5000;
  1407.  
  1408.     if      ($freeinstance) { $new_price = 0; }
  1409.     elsif   ($paidinstance) {
  1410.                                 # $new_price = 1000;
  1411.                                 if ($zonesn eq "trakanon" ||
  1412.                                     $zonesn eq "permafrost" ||
  1413.                                     $zonesn eq "dalnir" ||
  1414.                                     $zonesn eq "velketor" ||
  1415.                                     $zonesn eq "eastkarana" ||
  1416.                                     $zonesn eq "highpasshold" ||
  1417.                                     $zonesn eq "highpass" ||
  1418.                                     $zonesn eq "unrest" ||
  1419.                                     $zonesn eq "crushbone" ||
  1420.                                     $zonesn eq "sebilis" ||
  1421.                                     $zonesn eq "lakerathe" ||
  1422.                                     $zonesn eq "soldungb" ||
  1423.                                     $zonesn eq "citymist" ||
  1424.                                     $zonesn eq "qeytoqrg" ||
  1425.                                     $zonesn eq "mistmoore" ||
  1426.                                     $zonesn eq "steamfont" ||
  1427.                                     $zonesn eq "gukbottom" ||
  1428.                                     $zonesn eq "oot" ||
  1429.                                     $zonesn eq "najena" ||
  1430.                                     $zonesn eq "befallen")
  1431.                                                                 { $new_price  = 25000; }
  1432.                                 if ($zonesn eq "postorms")      { $new_price  = 75000; }
  1433.                                 if ($zonesn eq "hohonora")      { $new_price  = 125000; }
  1434.                                 if ($zonesn eq "illsalin")      { $new_price  = 175000; }
  1435.                                 if ($zonesn eq "anguish")       { $new_price  = 275000; }
  1436.                                 if ($zonesn eq "lopingplains")  { $new_price  = 425000; }
  1437.                                 if ($zonesn eq "frozenshadow")  { $new_price  = 6000000; }
  1438.                             }
  1439.     else                    { $new_price = 50000000; } # 50 Million Plat for not having a 1 Million Plat Waypoint Clickie
  1440.  
  1441.     return $new_price;
  1442. }
  1443.  
  1444.  
  1445. sub GUILD_PRICE
  1446. {
  1447.     my $freeinstance = plugin::check_hasitem($client, 120003);  #EDIT item ID for FREE instance item
  1448.     my $paidinstance = plugin::check_hasitem($client, 119998);  #EDIT item ID for PAID instance item
  1449.     my $new_price = 20000;
  1450.  
  1451.     if      ($freeinstance) { $new_price = 0; }
  1452.     elsif   ($paidinstance) {
  1453.                                 # $new_price = 3000;
  1454.                                 if ($zonesn eq "trakanon" ||
  1455.                                     $zonesn eq "permafrost" ||
  1456.                                     $zonesn eq "dalnir" ||
  1457.                                     $zonesn eq "velketor" ||
  1458.                                     $zonesn eq "eastkarana" ||
  1459.                                     $zonesn eq "highpasshold" ||
  1460.                                     $zonesn eq "highpass" ||
  1461.                                     $zonesn eq "unrest" ||
  1462.                                     $zonesn eq "crushbone" ||
  1463.                                     $zonesn eq "sebilis" ||
  1464.                                     $zonesn eq "lakerathe" ||
  1465.                                     $zonesn eq "soldungb" ||
  1466.                                     $zonesn eq "citymist" ||
  1467.                                     $zonesn eq "qeytoqrg" ||
  1468.                                     $zonesn eq "mistmoore" ||
  1469.                                     $zonesn eq "steamfont" ||
  1470.                                     $zonesn eq "gukbottom" ||
  1471.                                     $zonesn eq "oot" ||
  1472.                                     $zonesn eq "najena" ||
  1473.                                     $zonesn eq "befallen")
  1474.                                                                 { $new_price  = 25000; }
  1475.                                 if ($zonesn eq "postorms")      { $new_price  = 100000; }
  1476.                                 if ($zonesn eq "hohonora")      { $new_price  = 150000; }
  1477.                                 if ($zonesn eq "illsalin")      { $new_price  = 250000; }
  1478.                                 if ($zonesn eq "anguish")       { $new_price  = 350000; }
  1479.                                 if ($zonesn eq "lopingplains")  { $new_price  = 500000; }
  1480.                                 if ($zonesn eq "frozenshadow")  { $new_price  = 9000000; }
  1481.                             }
  1482.     else                    { $new_price = 50000000; } # 50 Million Plat for not having a 1 Million Plat Waypoint Clickie
  1483.  
  1484.     return $new_price;
  1485. }
  1486.  
  1487.  
  1488. sub RAID_PRICE
  1489. {
  1490.     my $freeinstance = plugin::check_hasitem($client, 120003);  #EDIT item ID for FREE instance item
  1491.     my $paidinstance = plugin::check_hasitem($client, 119998);  #EDIT item ID for PAID instance item
  1492.     my $new_price = 20000;
  1493.  
  1494.     if      ($freeinstance) { $new_price = 0; }
  1495.     elsif   ($paidinstance) {
  1496.                                 # $new_price = 5000;
  1497.                                 if ($zonesn eq "trakanon" ||
  1498.                                     $zonesn eq "permafrost" ||
  1499.                                     $zonesn eq "dalnir" ||
  1500.                                     $zonesn eq "velketor" ||
  1501.                                     $zonesn eq "eastkarana" ||
  1502.                                     $zonesn eq "highpasshold" ||
  1503.                                     $zonesn eq "highpass" ||
  1504.                                     $zonesn eq "unrest" ||
  1505.                                     $zonesn eq "crushbone" ||
  1506.                                     $zonesn eq "sebilis" ||
  1507.                                     $zonesn eq "lakerathe" ||
  1508.                                     $zonesn eq "soldungb" ||
  1509.                                     $zonesn eq "citymist" ||
  1510.                                     $zonesn eq "qeytoqrg" ||
  1511.                                     $zonesn eq "mistmoore" ||
  1512.                                     $zonesn eq "steamfont" ||
  1513.                                     $zonesn eq "gukbottom" ||
  1514.                                     $zonesn eq "oot" ||
  1515.                                     $zonesn eq "najena" ||
  1516.                                     $zonesn eq "befallen")
  1517.                                                                 { $new_price  = 25000; }
  1518.                                 if ($zonesn eq "postorms")      { $new_price  = 100000; }
  1519.                                 if ($zonesn eq "hohonora")      { $new_price  = 150000; }
  1520.                                 if ($zonesn eq "illsalin")      { $new_price  = 250000; }
  1521.                                 if ($zonesn eq "anguish")       { $new_price  = 350000; }
  1522.                                 if ($zonesn eq "lopingplains")  { $new_price  = 500000; }
  1523.                                 if ($zonesn eq "frozenshadow")  { $new_price  = 9000000; }
  1524.                             }
  1525.     else                    { $new_price = 50000000; } # 50 Million Plat for not having a 1 Million Plat Waypoint Clickie
  1526.  
  1527.     return $new_price;
  1528. }
  1529.  
  1530.  
  1531. ### Gets the amount of time left for the instance so we can sync/set qglobal expire times
  1532. ### for invited player (on list) qglobal and leader created instance qglobal to expire at same time
  1533. sub GET_TIME_LEFT
  1534. {
  1535.     my $instance_type   = $_[0]; # GUILD / RAID
  1536.     my $InstID          = $_[1]; # ID OF INSTANCE
  1537.     my $TimeName    = "";
  1538.     my $qglobals = plugin::var('qglobals');
  1539.     my $LeaderTime  = "";
  1540.     my $ExpireTime  = 0;
  1541.     my $TimeLeft    = 0;
  1542.  
  1543.     if ($instance_type eq "RAID")   { $TimeName = "_RaidI_Time"; }
  1544.     if ($instance_type eq "GUILD")  { $TimeName = "_GuildI_Time"; }
  1545.     $LeaderTime = $InstID . $TimeName;
  1546.     if (defined($qglobals{"$LeaderTime"}))
  1547.     {
  1548.         $ExpireTime = $qglobals{"$LeaderTime"};
  1549.         $TimeLeft = $ExpireTime - time();
  1550.     }
  1551.  
  1552.     return $TimeLeft
  1553. }
  1554.  
  1555.  
  1556. sub GET_ZONE_NAME_BY_ID
  1557. {
  1558.     if ($_[0] == 0) { return("Invalid Zone"); }
  1559.     elsif ($_[0] == 1) { return("qeynos"); }
  1560.     elsif ($_[0] == 2) { return("qeynos2"); }
  1561.     elsif ($_[0] == 3) { return("qrg"); }
  1562.     elsif ($_[0] == 4) { return("qeytoqrg"); }
  1563.     elsif ($_[0] == 5) { return("highpass"); }
  1564.     elsif ($_[0] == 6) { return("highkeep"); }
  1565.     elsif ($_[0] == 8) { return("freportn"); }
  1566.     elsif ($_[0] == 9) { return("freportw"); }
  1567.     elsif ($_[0] == 10) { return("freporte"); }
  1568.     elsif ($_[0] == 11) { return("runnyeye"); }
  1569.     elsif ($_[0] == 12) { return("qey2hh1"); }
  1570.     elsif ($_[0] == 13) { return("northkarana"); }
  1571.     elsif ($_[0] == 14) { return("southkarana"); }
  1572.     elsif ($_[0] == 15) { return("eastkarana"); }
  1573.     elsif ($_[0] == 16) { return("beholder"); }
  1574.     elsif ($_[0] == 17) { return("blackburrow"); }
  1575.     elsif ($_[0] == 18) { return("paw"); }
  1576.     elsif ($_[0] == 19) { return("rivervale"); }
  1577.     elsif ($_[0] == 20) { return("kithicor"); }
  1578.     elsif ($_[0] == 21) { return("commons"); }
  1579.     elsif ($_[0] == 22) { return("ecommons"); }
  1580.     elsif ($_[0] == 23) { return("erudnint"); }
  1581.     elsif ($_[0] == 24) { return("erudnext"); }
  1582.     elsif ($_[0] == 25) { return("nektulos"); }
  1583.     elsif ($_[0] == 25) { return("nektulos"); }
  1584.     elsif ($_[0] == 26) { return("cshome"); }
  1585.     elsif ($_[0] == 27) { return("lavastorm"); }
  1586.     elsif ($_[0] == 28) { return("nektropos"); }
  1587.     elsif ($_[0] == 29) { return("halas"); }
  1588.     elsif ($_[0] == 30) { return("everfrost"); }
  1589.     elsif ($_[0] == 31) { return("soldunga"); }
  1590.     elsif ($_[0] == 32) { return("soldungb"); }
  1591.     elsif ($_[0] == 33) { return("misty"); }
  1592.     elsif ($_[0] == 34) { return("nro"); }
  1593.     elsif ($_[0] == 35) { return("sro"); }
  1594.     elsif ($_[0] == 36) { return("befallen"); }
  1595.     elsif ($_[0] == 37) { return("oasis"); }
  1596.     elsif ($_[0] == 38) { return("tox"); }
  1597.     elsif ($_[0] == 39) { return("hole"); }
  1598.     elsif ($_[0] == 40) { return("neriaka"); }
  1599.     elsif ($_[0] == 41) { return("neriakb"); }
  1600.     elsif ($_[0] == 42) { return("neriakc"); }
  1601.     elsif ($_[0] == 43) { return("neriakd"); }
  1602.     elsif ($_[0] == 44) { return("najena"); }
  1603.     elsif ($_[0] == 45) { return("qcat"); }
  1604.     elsif ($_[0] == 46) { return("innothule"); }
  1605.     elsif ($_[0] == 47) { return("feerrott"); }
  1606.     elsif ($_[0] == 48) { return("cazicthule"); }
  1607.     elsif ($_[0] == 49) { return("oggok"); }
  1608.     elsif ($_[0] == 50) { return("rathemtn"); }
  1609.     elsif ($_[0] == 51) { return("lakerathe"); }
  1610.     elsif ($_[0] == 52) { return("grobb"); }
  1611.     elsif ($_[0] == 53) { return("aviak"); }
  1612.     elsif ($_[0] == 54) { return("gfaydark"); }
  1613.     elsif ($_[0] == 55) { return("akanon"); }
  1614.     elsif ($_[0] == 56) { return("steamfont"); }
  1615.     elsif ($_[0] == 57) { return("lfaydark"); }
  1616.     elsif ($_[0] == 58) { return("crushbone"); }
  1617.     elsif ($_[0] == 59) { return("mistmoore"); }
  1618.     elsif ($_[0] == 60) { return("kaladima"); }
  1619.     elsif ($_[0] == 61) { return("felwithea"); }
  1620.     elsif ($_[0] == 62) { return("felwitheb"); }
  1621.     elsif ($_[0] == 63) { return("unrest"); }
  1622.     elsif ($_[0] == 64) { return("kedge"); }
  1623.     elsif ($_[0] == 65) { return("guktop"); }
  1624.     elsif ($_[0] == 66) { return("gukbottom"); }
  1625.     elsif ($_[0] == 67) { return("kaladimb"); }
  1626.     elsif ($_[0] == 68) { return("butcher"); }
  1627.     elsif ($_[0] == 69) { return("oot"); }
  1628.     elsif ($_[0] == 70) { return("cauldron"); }
  1629.     elsif ($_[0] == 71) { return("airplane"); }
  1630.     elsif ($_[0] == 72) { return("fearplane"); }
  1631.     elsif ($_[0] == 73) { return("permafrost"); }
  1632.     elsif ($_[0] == 74) { return("kerraridge"); }
  1633.     elsif ($_[0] == 75) { return("paineel"); }
  1634.     elsif ($_[0] == 76) { return("hateplane"); }
  1635.     elsif ($_[0] == 77) { return("arena"); }
  1636.     elsif ($_[0] == 78) { return("fieldofbone"); }
  1637.     elsif ($_[0] == 79) { return("warslikswood"); }
  1638.     elsif ($_[0] == 80) { return("soltemple"); }
  1639.     elsif ($_[0] == 81) { return("droga"); }
  1640.     elsif ($_[0] == 82) { return("cabwest"); }
  1641.     elsif ($_[0] == 83) { return("swampofnohope"); }
  1642.     elsif ($_[0] == 84) { return("firiona"); }
  1643.     elsif ($_[0] == 85) { return("lakeofillomen"); }
  1644.     elsif ($_[0] == 86) { return("dreadlands"); }
  1645.     elsif ($_[0] == 87) { return("burningwood"); }
  1646.     elsif ($_[0] == 88) { return("kaesora"); }
  1647.     elsif ($_[0] == 89) { return("sebilis"); }
  1648.     elsif ($_[0] == 90) { return("citymist"); }
  1649.     elsif ($_[0] == 91) { return("skyfire"); }
  1650.     elsif ($_[0] == 92) { return("frontiermtns"); }
  1651.     elsif ($_[0] == 93) { return("overthere"); }
  1652.     elsif ($_[0] == 94) { return("emeraldjungle"); }
  1653.     elsif ($_[0] == 95) { return("trakanon"); }
  1654.     elsif ($_[0] == 96) { return("timorous"); }
  1655.     elsif ($_[0] == 97) { return("kurn"); }
  1656.     elsif ($_[0] == 98) { return("erudsxing"); }
  1657.     elsif ($_[0] == 100) { return("stonebrunt"); }
  1658.     elsif ($_[0] == 101) { return("warrens"); }
  1659.     elsif ($_[0] == 102) { return("karnor"); }
  1660.     elsif ($_[0] == 103) { return("chardok"); }
  1661.     elsif ($_[0] == 104) { return("dalnir"); }
  1662.     elsif ($_[0] == 105) { return("charasis"); }
  1663.     elsif ($_[0] == 106) { return("cabeast"); }
  1664.     elsif ($_[0] == 107) { return("nurga"); }
  1665.     elsif ($_[0] == 108) { return("veeshan"); }
  1666.     elsif ($_[0] == 109) { return("veksar"); }
  1667.     elsif ($_[0] == 110) { return("iceclad"); }
  1668.     elsif ($_[0] == 111) { return("frozenshadow"); }
  1669.     elsif ($_[0] == 112) { return("velketor"); }
  1670.     elsif ($_[0] == 113) { return("kael"); }
  1671.     elsif ($_[0] == 114) { return("skyshrine"); }
  1672.     elsif ($_[0] == 114) { return("skyshrine"); }
  1673.     elsif ($_[0] == 115) { return("thurgadina"); }
  1674.     elsif ($_[0] == 116) { return("eastwastes"); }
  1675.     elsif ($_[0] == 117) { return("cobaltscar"); }
  1676.     elsif ($_[0] == 118) { return("greatdivide"); }
  1677.     elsif ($_[0] == 119) { return("wakening"); }
  1678.     elsif ($_[0] == 120) { return("westwastes"); }
  1679.     elsif ($_[0] == 121) { return("crystal"); }
  1680.     elsif ($_[0] == 123) { return("necropolis"); }
  1681.     elsif ($_[0] == 124) { return("templeveeshan"); }
  1682.     elsif ($_[0] == 125) { return("sirens"); }
  1683.     elsif ($_[0] == 126) { return("mischiefplane"); }
  1684.     elsif ($_[0] == 127) { return("growthplane"); }
  1685.     elsif ($_[0] == 128) { return("sleeper"); }
  1686.     elsif ($_[0] == 129) { return("thurgadinb"); }
  1687.     elsif ($_[0] == 130) { return("erudsxing2"); }
  1688.     elsif ($_[0] == 150) { return("shadowhaven"); }
  1689.     elsif ($_[0] == 151) { return("bazaar"); }
  1690.     elsif ($_[0] == 151) { return("bazaar"); }
  1691.     elsif ($_[0] == 152) { return("nexus"); }
  1692.     elsif ($_[0] == 153) { return("echo"); }
  1693.     elsif ($_[0] == 154) { return("acrylia"); }
  1694.     elsif ($_[0] == 155) { return("sharvahl"); }
  1695.     elsif ($_[0] == 156) { return("paludal"); }
  1696.     elsif ($_[0] == 157) { return("fungusgrove"); }
  1697.     elsif ($_[0] == 158) { return("vexthal"); }
  1698.     elsif ($_[0] == 159) { return("sseru"); }
  1699.     elsif ($_[0] == 160) { return("katta"); }
  1700.     elsif ($_[0] == 161) { return("netherbian"); }
  1701.     elsif ($_[0] == 162) { return("ssratemple"); }
  1702.     elsif ($_[0] == 163) { return("griegsend"); }
  1703.     elsif ($_[0] == 164) { return("thedeep"); }
  1704.     elsif ($_[0] == 165) { return("shadeweaver"); }
  1705.     elsif ($_[0] == 166) { return("hollowshade"); }
  1706.     elsif ($_[0] == 167) { return("grimling"); }
  1707.     elsif ($_[0] == 168) { return("mseru"); }
  1708.     elsif ($_[0] == 169) { return("letalis"); }
  1709.     elsif ($_[0] == 170) { return("twilight"); }
  1710.     elsif ($_[0] == 171) { return("thegrey"); }
  1711.     elsif ($_[0] == 172) { return("tenebrous"); }
  1712.     elsif ($_[0] == 173) { return("maiden"); }
  1713.     elsif ($_[0] == 174) { return("dawnshroud"); }
  1714.     elsif ($_[0] == 175) { return("scarlet"); }
  1715.     elsif ($_[0] == 176) { return("umbral"); }
  1716.     elsif ($_[0] == 179) { return("akheva"); }
  1717.     elsif ($_[0] == 180) { return("arena2"); }
  1718.     elsif ($_[0] == 181) { return("jaggedpine"); }
  1719.     elsif ($_[0] == 182) { return("nedaria"); }
  1720.     elsif ($_[0] == 183) { return("tutorial"); }
  1721.     elsif ($_[0] == 184) { return("load"); }
  1722.     elsif ($_[0] == 185) { return("load2"); }
  1723.     elsif ($_[0] == 186) { return("hateplaneb"); }
  1724.     elsif ($_[0] == 187) { return("shadowrest"); }
  1725.     elsif ($_[0] == 188) { return("tutoriala"); }
  1726.     elsif ($_[0] == 189) { return("tutorialb"); }
  1727.     elsif ($_[0] == 190) { return("clz"); }
  1728.     elsif ($_[0] == 200) { return("codecay"); }
  1729.     elsif ($_[0] == 201) { return("pojustice"); }
  1730.     elsif ($_[0] == 202) { return("poknowledge"); }
  1731.     elsif ($_[0] == 203) { return("potranquility"); }
  1732.     elsif ($_[0] == 204) { return("ponightmare"); }
  1733.     elsif ($_[0] == 205) { return("podisease"); }
  1734.     elsif ($_[0] == 206) { return("poinnovation"); }
  1735.     elsif ($_[0] == 207) { return("potorment"); }
  1736.     elsif ($_[0] == 208) { return("povalor"); }
  1737.     elsif ($_[0] == 209) { return("bothunder"); }
  1738.     elsif ($_[0] == 210) { return("postorms"); }
  1739.     elsif ($_[0] == 211) { return("hohonora"); }
  1740.     elsif ($_[0] == 212) { return("solrotower"); }
  1741.     elsif ($_[0] == 213) { return("powar"); }
  1742.     elsif ($_[0] == 214) { return("potactics"); }
  1743.     elsif ($_[0] == 215) { return("poair"); }
  1744.     elsif ($_[0] == 216) { return("powater"); }
  1745.     elsif ($_[0] == 217) { return("pofire"); }
  1746.     elsif ($_[0] == 218) { return("poeartha"); }
  1747.     elsif ($_[0] == 219) { return("potimea"); }
  1748.     elsif ($_[0] == 220) { return("hohonorb"); }
  1749.     elsif ($_[0] == 221) { return("nightmareb"); }
  1750.     elsif ($_[0] == 222) { return("poearthb"); }
  1751.     elsif ($_[0] == 223) { return("potimeb"); }
  1752.     elsif ($_[0] == 224) { return("gunthak"); }
  1753.     elsif ($_[0] == 225) { return("dulak"); }
  1754.     elsif ($_[0] == 226) { return("torgiran"); }
  1755.     elsif ($_[0] == 227) { return("nadox"); }
  1756.     elsif ($_[0] == 228) { return("hatesfury"); }
  1757.     elsif ($_[0] == 229) { return("guka"); }
  1758.     elsif ($_[0] == 230) { return("ruja"); }
  1759.     elsif ($_[0] == 231) { return("taka"); }
  1760.     elsif ($_[0] == 232) { return("mira"); }
  1761.     elsif ($_[0] == 233) { return("mmca"); }
  1762.     elsif ($_[0] == 234) { return("gukb"); }
  1763.     elsif ($_[0] == 235) { return("rujb"); }
  1764.     elsif ($_[0] == 236) { return("takb"); }
  1765.     elsif ($_[0] == 237) { return("mirb"); }
  1766.     elsif ($_[0] == 238) { return("mmcb"); }
  1767.     elsif ($_[0] == 239) { return("gukc"); }
  1768.     elsif ($_[0] == 240) { return("rujc"); }
  1769.     elsif ($_[0] == 241) { return("takc"); }
  1770.     elsif ($_[0] == 242) { return("mirc"); }
  1771.     elsif ($_[0] == 243) { return("mmcc"); }
  1772.     elsif ($_[0] == 244) { return("gukd"); }
  1773.     elsif ($_[0] == 245) { return("rujd"); }
  1774.     elsif ($_[0] == 246) { return("takd"); }
  1775.     elsif ($_[0] == 247) { return("mird"); }
  1776.     elsif ($_[0] == 248) { return("mmcd"); }
  1777.     elsif ($_[0] == 249) { return("guke"); }
  1778.     elsif ($_[0] == 250) { return("ruje"); }
  1779.     elsif ($_[0] == 251) { return("take"); }
  1780.     elsif ($_[0] == 252) { return("mire"); }
  1781.     elsif ($_[0] == 253) { return("mmce"); }
  1782.     elsif ($_[0] == 254) { return("gukf"); }
  1783.     elsif ($_[0] == 255) { return("rujf"); }
  1784.     elsif ($_[0] == 256) { return("takf"); }
  1785.     elsif ($_[0] == 257) { return("mirf"); }
  1786.     elsif ($_[0] == 258) { return("mmcf"); }
  1787.     elsif ($_[0] == 259) { return("gukg"); }
  1788.     elsif ($_[0] == 260) { return("rujg"); }
  1789.     elsif ($_[0] == 261) { return("takg"); }
  1790.     elsif ($_[0] == 262) { return("mirg"); }
  1791.     elsif ($_[0] == 263) { return("mmcg"); }
  1792.     elsif ($_[0] == 264) { return("gukh"); }
  1793.     elsif ($_[0] == 265) { return("rujh"); }
  1794.     elsif ($_[0] == 266) { return("takh"); }
  1795.     elsif ($_[0] == 267) { return("mirh"); }
  1796.     elsif ($_[0] == 268) { return("mmch"); }
  1797.     elsif ($_[0] == 269) { return("ruji"); }
  1798.     elsif ($_[0] == 270) { return("taki"); }
  1799.     elsif ($_[0] == 271) { return("miri"); }
  1800.     elsif ($_[0] == 272) { return("mmci"); }
  1801.     elsif ($_[0] == 273) { return("rujj"); }
  1802.     elsif ($_[0] == 274) { return("takj"); }
  1803.     elsif ($_[0] == 275) { return("mirj"); }
  1804.     elsif ($_[0] == 276) { return("mmcj"); }
  1805.     elsif ($_[0] == 277) { return("chardokb"); }
  1806.     elsif ($_[0] == 278) { return("soldungc"); }
  1807.     elsif ($_[0] == 279) { return("abysmal"); }
  1808.     elsif ($_[0] == 280) { return("natimbi"); }
  1809.     elsif ($_[0] == 281) { return("qinimi"); }
  1810.     elsif ($_[0] == 282) { return("riwwi"); }
  1811.     elsif ($_[0] == 283) { return("barindu"); }
  1812.     elsif ($_[0] == 284) { return("ferubi"); }
  1813.     elsif ($_[0] == 285) { return("snpool"); }
  1814.     elsif ($_[0] == 286) { return("snlair"); }
  1815.     elsif ($_[0] == 287) { return("snplant"); }
  1816.     elsif ($_[0] == 288) { return("sncrematory"); }
  1817.     elsif ($_[0] == 289) { return("tipt"); }
  1818.     elsif ($_[0] == 290) { return("vxed"); }
  1819.     elsif ($_[0] == 291) { return("yxtta"); }
  1820.     elsif ($_[0] == 292) { return("uqua"); }
  1821.     elsif ($_[0] == 293) { return("kodtaz"); }
  1822.     elsif ($_[0] == 294) { return("ikkinz"); }
  1823.     elsif ($_[0] == 295) { return("qvic"); }
  1824.     elsif ($_[0] == 296) { return("inktuta"); }
  1825.     elsif ($_[0] == 297) { return("txevu"); }
  1826.     elsif ($_[0] == 298) { return("tacvi"); }
  1827.     elsif ($_[0] == 299) { return("qvicb"); }
  1828.     elsif ($_[0] == 300) { return("wallofslaughter"); }
  1829.     elsif ($_[0] == 301) { return("bloodfields"); }
  1830.     elsif ($_[0] == 302) { return("draniksscar"); }
  1831.     elsif ($_[0] == 303) { return("causeway"); }
  1832.     elsif ($_[0] == 304) { return("chambersa"); }
  1833.     elsif ($_[0] == 305) { return("chambersb"); }
  1834.     elsif ($_[0] == 306) { return("chambersc"); }
  1835.     elsif ($_[0] == 307) { return("chambersd"); }
  1836.     elsif ($_[0] == 308) { return("chamberse"); }
  1837.     elsif ($_[0] == 309) { return("chambersf"); }
  1838.     elsif ($_[0] == 316) { return("provinggrounds"); }
  1839.     elsif ($_[0] == 317) { return("anguish"); }
  1840.     elsif ($_[0] == 318) { return("dranikhollowsa"); }
  1841.     elsif ($_[0] == 319) { return("dranikhollowsb"); }
  1842.     elsif ($_[0] == 320) { return("dranikhollowsc"); }
  1843.     elsif ($_[0] == 328) { return("dranikcatacombsa"); }
  1844.     elsif ($_[0] == 329) { return("dranikcatacombsb"); }
  1845.     elsif ($_[0] == 330) { return("dranikcatacombsc"); }
  1846.     elsif ($_[0] == 331) { return("draniksewersa"); }
  1847.     elsif ($_[0] == 332) { return("draniksewersb"); }
  1848.     elsif ($_[0] == 333) { return("draniksewersc"); }
  1849.     elsif ($_[0] == 334) { return("riftseekers"); }
  1850.     elsif ($_[0] == 335) { return("harbingers"); }
  1851.     elsif ($_[0] == 336) { return("dranik"); }
  1852.     elsif ($_[0] == 337) { return("broodlands"); }
  1853.     elsif ($_[0] == 338) { return("stillmoona"); }
  1854.     elsif ($_[0] == 339) { return("stillmoonb"); }
  1855.     elsif ($_[0] == 340) { return("thundercrest"); }
  1856.     elsif ($_[0] == 341) { return("delvea"); }
  1857.     elsif ($_[0] == 342) { return("delveb"); }
  1858.     elsif ($_[0] == 343) { return("thenest"); }
  1859.     elsif ($_[0] == 344) { return("guildlobby"); }
  1860.     elsif ($_[0] == 345) { return("guildhall"); }
  1861.     elsif ($_[0] == 346) { return("barter"); }
  1862.     elsif ($_[0] == 347) { return("illsalin"); }
  1863.     elsif ($_[0] == 348) { return("illsalina"); }
  1864.     elsif ($_[0] == 349) { return("illsalinb"); }
  1865.     elsif ($_[0] == 350) { return("illsalinc"); }
  1866.     elsif ($_[0] == 351) { return("dreadspire"); }
  1867.     elsif ($_[0] == 354) { return("drachnidhive"); }
  1868.     elsif ($_[0] == 355) { return("drachnidhivea"); }
  1869.     elsif ($_[0] == 356) { return("drachnidhiveb"); }
  1870.     elsif ($_[0] == 357) { return("drachnidhivec"); }
  1871.     elsif ($_[0] == 358) { return("westkorlach"); }
  1872.     elsif ($_[0] == 359) { return("westkorlacha"); }
  1873.     elsif ($_[0] == 360) { return("westkorlachb"); }
  1874.     elsif ($_[0] == 361) { return("westkorlachc"); }
  1875.     elsif ($_[0] == 362) { return("eastkorlach"); }
  1876.     elsif ($_[0] == 363) { return("eastkorlacha"); }
  1877.     elsif ($_[0] == 364) { return("shadowspine"); }
  1878.     elsif ($_[0] == 365) { return("corathus"); }
  1879.     elsif ($_[0] == 366) { return("corathusa"); }
  1880.     elsif ($_[0] == 367) { return("corathusb"); }
  1881.     elsif ($_[0] == 368) { return("nektulosa"); }
  1882.     elsif ($_[0] == 369) { return("arcstone"); }
  1883.     elsif ($_[0] == 370) { return("relic"); }
  1884.     elsif ($_[0] == 371) { return("skylance"); }
  1885.     elsif ($_[0] == 372) { return("devastation"); }
  1886.     elsif ($_[0] == 373) { return("devastationa"); }
  1887.     elsif ($_[0] == 374) { return("rage"); }
  1888.     elsif ($_[0] == 375) { return("ragea"); }
  1889.     elsif ($_[0] == 376) { return("takishruins"); }
  1890.     elsif ($_[0] == 377) { return("takishruinsa"); }
  1891.     elsif ($_[0] == 378) { return("elddar"); }
  1892.     elsif ($_[0] == 379) { return("elddara"); }
  1893.     elsif ($_[0] == 380) { return("theater"); }
  1894.     elsif ($_[0] == 381) { return("theatera"); }
  1895.     elsif ($_[0] == 382) { return("freeporteast"); }
  1896.     elsif ($_[0] == 383) { return("freeportwest"); }
  1897.     elsif ($_[0] == 384) { return("freeportsewers"); }
  1898.     elsif ($_[0] == 385) { return("freeportacademy"); }
  1899.     elsif ($_[0] == 386) { return("freeporttemple"); }
  1900.     elsif ($_[0] == 387) { return("freeportmilitia"); }
  1901.     elsif ($_[0] == 388) { return("freeportarena"); }
  1902.     elsif ($_[0] == 389) { return("freeportcityhall"); }
  1903.     elsif ($_[0] == 390) { return("freeporttheater"); }
  1904.     elsif ($_[0] == 391) { return("freeporthall"); }
  1905.     elsif ($_[0] == 392) { return("northro"); }
  1906.     elsif ($_[0] == 393) { return("southro"); }
  1907.     elsif ($_[0] == 394) { return("crescent"); }
  1908.     elsif ($_[0] == 395) { return("moors"); }
  1909.     elsif ($_[0] == 396) { return("stonehive"); }
  1910.     elsif ($_[0] == 397) { return("mesa"); }
  1911.     elsif ($_[0] == 398) { return("roost"); }
  1912.     elsif ($_[0] == 399) { return("steppes"); }
  1913.     elsif ($_[0] == 400) { return("icefall"); }
  1914.     elsif ($_[0] == 401) { return("valdeholm"); }
  1915.     elsif ($_[0] == 402) { return("frostcrypt"); }
  1916.     elsif ($_[0] == 403) { return("sunderock"); }
  1917.     elsif ($_[0] == 404) { return("vergalid"); }
  1918.     elsif ($_[0] == 405) { return("direwind"); }
  1919.     elsif ($_[0] == 406) { return("ashengate"); }
  1920.     elsif ($_[0] == 407) { return("highpasshold"); }
  1921.     elsif ($_[0] == 408) { return("commonlands"); }
  1922.     elsif ($_[0] == 409) { return("oceanoftears"); }
  1923.     elsif ($_[0] == 410) { return("kithforest"); }
  1924.     elsif ($_[0] == 411) { return("befallenb"); }
  1925.     elsif ($_[0] == 412) { return("highpasskeep"); }
  1926.     elsif ($_[0] == 413) { return("innothuleb"); }
  1927.     elsif ($_[0] == 414) { return("toxxulia"); }
  1928.     elsif ($_[0] == 415) { return("mistythicket"); }
  1929.     elsif ($_[0] == 416) { return("kattacastrum"); }
  1930.     elsif ($_[0] == 417) { return("thalassius"); }
  1931.     elsif ($_[0] == 418) { return("atiiki"); }
  1932.     elsif ($_[0] == 419) { return("zhisza"); }
  1933.     elsif ($_[0] == 420) { return("silyssar"); }
  1934.     elsif ($_[0] == 421) { return("solteris"); }
  1935.     elsif ($_[0] == 422) { return("barren"); }
  1936.     elsif ($_[0] == 423) { return("buriedsea"); }
  1937.     elsif ($_[0] == 424) { return("jardelshook"); }
  1938.     elsif ($_[0] == 425) { return("monkeyrock"); }
  1939.     elsif ($_[0] == 426) { return("suncrest"); }
  1940.     elsif ($_[0] == 427) { return("deadbone"); }
  1941.     elsif ($_[0] == 428) { return("blacksail"); }
  1942.     elsif ($_[0] == 429) { return("maidensgrave"); }
  1943.     elsif ($_[0] == 430) { return("redfeather"); }
  1944.     elsif ($_[0] == 431) { return("shipmvp"); }
  1945.     elsif ($_[0] == 432) { return("shipmvu"); }
  1946.     elsif ($_[0] == 433) { return("shippvu"); }
  1947.     elsif ($_[0] == 434) { return("shipuvu"); }
  1948.     elsif ($_[0] == 435) { return("shipmvm"); }
  1949.     elsif ($_[0] == 436) { return("mechanotus"); }
  1950.     elsif ($_[0] == 437) { return("mansion"); }
  1951.     elsif ($_[0] == 438) { return("steamfactory"); }
  1952.     elsif ($_[0] == 439) { return("shipworkshop"); }
  1953.     elsif ($_[0] == 440) { return("gyrospireb"); }
  1954.     elsif ($_[0] == 441) { return("gyrospirez"); }
  1955.     elsif ($_[0] == 442) { return("dragonscale"); }
  1956.     elsif ($_[0] == 443) { return("lopingplains"); }
  1957.     elsif ($_[0] == 444) { return("hillsofshade"); }
  1958.     elsif ($_[0] == 445) { return("bloodmoon"); }
  1959.     elsif ($_[0] == 446) { return("crystallos"); }
  1960.     elsif ($_[0] == 447) { return("guardian"); }
  1961.     elsif ($_[0] == 448) { return("steamfontmts"); }
  1962.     elsif ($_[0] == 449) { return("cryptofshade"); }
  1963.     elsif ($_[0] == 451) { return("dragonscaleb"); }
  1964.     elsif ($_[0] == 452) { return("oldfieldofbone"); }
  1965.     elsif ($_[0] == 453) { return("oldkaesoraa"); }
  1966.     elsif ($_[0] == 454) { return("oldkaesorab"); }
  1967.     elsif ($_[0] == 455) { return("oldkurn"); }
  1968.     elsif ($_[0] == 456) { return("oldkithicor"); }
  1969.     elsif ($_[0] == 457) { return("oldcommons"); }
  1970.     elsif ($_[0] == 458) { return("oldhighpass"); }
  1971.     elsif ($_[0] == 459) { return("thevoida"); }
  1972.     elsif ($_[0] == 460) { return("thevoidb"); }
  1973.     elsif ($_[0] == 461) { return("thevoidc"); }
  1974.     elsif ($_[0] == 462) { return("thevoidd"); }
  1975.     elsif ($_[0] == 463) { return("thevoide"); }
  1976.     elsif ($_[0] == 464) { return("thevoidf"); }
  1977.     elsif ($_[0] == 465) { return("thevoidg"); }
  1978.     elsif ($_[0] == 466) { return("oceangreenhills"); }
  1979.     elsif ($_[0] == 467) { return("oceangreenvillage"); }
  1980.     elsif ($_[0] == 468) { return("oldblackburrow"); }
  1981.     elsif ($_[0] == 469) { return("bertoxtemple"); }
  1982.     elsif ($_[0] == 470) { return("discord"); }
  1983.     elsif ($_[0] == 471) { return("discordtower"); }
  1984.     elsif ($_[0] == 472) { return("oldbloodfield"); }
  1985.     elsif ($_[0] == 473) { return("precipiceofwar"); }
  1986.     elsif ($_[0] == 474) { return("olddranik"); }
  1987.     elsif ($_[0] == 475) { return("toskirakk"); }
  1988.     elsif ($_[0] == 476) { return("korascian"); }
  1989.     elsif ($_[0] == 477) { return("rathechamber"); }
  1990.     elsif ($_[0] == 480) { return("brellsrest"); }
  1991.     elsif ($_[0] == 481) { return("fungalforest"); }
  1992.     elsif ($_[0] == 482) { return("underquarry"); }
  1993.     elsif ($_[0] == 483) { return("coolingchamber"); }
  1994.     elsif ($_[0] == 484) { return("shiningcity"); }
  1995.     elsif ($_[0] == 485) { return("arthicrex"); }
  1996.     elsif ($_[0] == 486) { return("foundation"); }
  1997.     elsif ($_[0] == 487) { return("lichencreep"); }
  1998.     elsif ($_[0] == 488) { return("pellucid"); }
  1999.     elsif ($_[0] == 489) { return("stonesnake"); }
  2000.     elsif ($_[0] == 490) { return("brellstemple"); }
  2001.     elsif ($_[0] == 491) { return("convorteum"); }
  2002.     elsif ($_[0] == 492) { return("brellsarena"); }
  2003.     elsif ($_[0] == 493) { return("weddingchapel"); }
  2004.     elsif ($_[0] == 494) { return("weddingchapeldark"); }
  2005.     elsif ($_[0] == 495) { return("dragoncrypt"); }
  2006.     elsif ($_[0] == 700) { return("feerrott2"); }
  2007.     elsif ($_[0] == 701) { return("thulehouse1"); }
  2008.     elsif ($_[0] == 702) { return("thulehouse2"); }
  2009.     elsif ($_[0] == 703) { return("housegarden"); }
  2010.     elsif ($_[0] == 704) { return("thulelibrary"); }
  2011.     elsif ($_[0] == 705) { return("well"); }
  2012.     elsif ($_[0] == 706) { return("fallen"); }
  2013.     elsif ($_[0] == 707) { return("morellcastle"); }
  2014.     elsif ($_[0] == 708) { return("somnium"); }
  2015.     elsif ($_[0] == 709) { return("alkabormare"); }
  2016.     elsif ($_[0] == 710) { return("miragulmare"); }
  2017.     elsif ($_[0] == 711) { return("thuledream"); }
  2018.     elsif ($_[0] == 712) { return("neighborhood"); }
  2019.     elsif ($_[0] == 724) { return("argath"); }
  2020.     elsif ($_[0] == 725) { return("arelis"); }
  2021.     elsif ($_[0] == 726) { return("sarithcity"); }
  2022.     elsif ($_[0] == 727) { return("rubak"); }
  2023.     elsif ($_[0] == 728) { return("beastdomain"); }
  2024.     elsif ($_[0] == 729) { return("resplendent"); }
  2025.     elsif ($_[0] == 730) { return("pillarsalra"); }
  2026.     elsif ($_[0] == 731) { return("windsong"); }
  2027.     elsif ($_[0] == 732) { return("cityofbronze"); }
  2028.     elsif ($_[0] == 733) { return("sepulcher"); }
  2029.     elsif ($_[0] == 734) { return("eastsepulcher"); }
  2030.     elsif ($_[0] == 735) { return("westsepulcher"); }
  2031.     elsif ($_[0] == 996) { return("arttest"); }
  2032.     elsif ($_[0] == 998) { return("fhalls"); }
  2033.     elsif ($_[0] == 999) { return("apprentice"); }
  2034.     else { return("ELSE ERROR ZONE ID TO NAME"); }
  2035. } # End GET_ZONE_NAME_BY_ID()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement