superpally1 |
09-25-2018 06:40 PM |
Ok here it is with the added teleporter code. I also added options to view/edit hotzone bonus value
Code:
#
#
# Can be used for an NPC that will only list current hot zones to players with status < 150
#
#
# Must have status > 150 to change server settings.
#
#
# To change hotzones type: /say add hotzone zonesn or /say remove hotzone zonesn.
# Example: /say add hotzone nro
# This would add nro to the hotzone list.
# Example: /say remove hotzone nro
# This would remove nro from the hotzone list.
#
#
# To set the Hot Zone Bonus value, type /say set hotzonebonus value
# Example : /say set hotzonebonus 1.50
# This would set the Hot Zone Bonus to double the default setting. (default = 0.75)
#
#
# To set the AA XP Modifier value, type /say set aaxpmod value
# Example : /say set aaxpmod 1.50
# This would set the AA XP Modifier to double the default setting. (default = 0.75)
#
#
# To set the EXP Modifier value, type /say set expmod value
# Example : /say set expmod 1.50
# This would set the EXP Modifier to double the default setting. (default = 0.75)
#
#
# To set the Group EXP Modifier value, type /say set groupexpmod value
# Example : /say set groupexpmod 1.20
# This would set the Group EXP Modifier to double the default setting. (default = 0.60)
#
#
# To set the Global Loot Multiplier value, type /say set lootmod value
# Example : /say set lootmod 2
# This would set the Global Loot Multiplier to double the default setting. (default = 1)
#
#
sub EVENT_SAY {
@args = split(' ', $text);
my @zone_array = plugin::NonCustomZoneArray();
my $count = 0;
if ($text=~/hail/i) {
$client->Message(15,"Tell me the short name of a zone and I will see if I have a spell to send you there.");
$client->Message(15,"I will " . quest::saylink("display", 1) . " zone names if you like.");
$client->Message(15,"I can also list the" . quest::saylink("Current hotzones", 1) . ".");
$client->Message(15,"And I can" . quest::saylink("bind you here", 1) . ".");
if($status > 150) {
$client->Message(15,"" .quest::saylink("Server Settings", 1)."");
}
}
if($text=~/Current hotzones/i) {
$client->Message(15,"Current hotzones are : ");
my $connect = plugin::LoadMysql();
my $found_zone = 0;
my $sql_query = ("SELECT short_name FROM zone WHERE hotzone=1");
my $sql_handler = $connect->prepare($sql_query);
$sql_handler->execute();
while (@zone_row = $sql_handler->fetchrow_array()) {
$found_zone++;
$say_links = quest::saylink("$zone_row[0]", 1);
$client->Message(15,"$say_links.");
$connect->disconnect();
}
if($status > 150) {
$client->Message(12,"To change hotzones type: /say add hotzone zonesn or /say remove hotzone zonesn.");
$client->Message(12,"Example: /say add hotzone nro");
$client->Message(12,"This would add nro to the hotzone list.");
$client->Message(12,"Example: /say remove hotzone nro");
$client->Message(12,"This would remove nro from the hotzone list.");
}
}
if($status > 150) {
if($text=~/add hotzone/i) {
my $connect = plugin::LoadMysql();
$query = ("UPDATE zone SET hotzone = 1 WHERE short_name = '$args[2]'");
$client->Message(14,"$args[2], added to hotzone list.");
$query_handle = $connect->prepare($query);
$query_handle->execute();
$connect->disconnect;
}
if($text=~/remove hotzone/i) {
my $connect = plugin::LoadMysql();
$query = ("UPDATE zone SET hotzone = 0 WHERE short_name = '$args[2]'");
$client->Message(13,"$args[2], removed from hotzone list.");
$query_handle = $connect->prepare($query);
$query_handle->execute();
$connect->disconnect;
}
if($text=~/Server Settings/i) {
$client->Message(15,"Display_" . quest::saylink("HOTZONE Bonus", 1) . ".");
$client->Message(15,"Display_" . quest::saylink("AA XP Modifier", 1) . ".");
$client->Message(15,"Display_" . quest::saylink("EXP Modifier", 1) . ".");
$client->Message(15,"Display_" . quest::saylink("Group EXP Modifier", 1) . ".");
$client->Message(15,"Display_" . quest::saylink("LOOT Multiplier", 1) . ".");
}
if($text=~/HOTZONE Bonus/i) {
$client->Message(15,"Current Hot Zone bonus is : ");
my $connect = plugin::LoadMysql();
my $sql_query = ("SELECT rule_value FROM rule_values WHERE rule_name='Zone:HotZoneBonus'");
my $sql_handler = $connect->prepare($sql_query);
$sql_handler->execute();
@data_found = $sql_handler->fetchrow_array();
$client->Message(15,"$data_found[0].");
$connect->disconnect();
$client->Message(12,"Default value is 0.75");
$client->Message(12,"To set the Hot Zone Bonus value, type /say set hotzonebonus value");
$client->Message(12,"Example : /say set hotzonebonus 1.50");
$client->Message(12,"This would set the Hot Zone Bonus to double the default setting.");
}
if($text=~/set hotzonebonus/i) {
my $connect = plugin::LoadMysql();
$query = ("UPDATE rule_values SET rule_value='$args[2]' WHERE rule_name='Zone:HotZoneBonus'");
$query_handle = $connect->prepare($query);
$query_handle->execute();
$connect->disconnect;
$client->Message(14,"Hot Zone Bonus set to : $args[2].");
}
if($text=~/AA XP Modifier/i) {
$client->Message(15,"Current AA XP Modifier is : ");
my $connect = plugin::LoadMysql();
my $sql_query = ("SELECT value FROM variables WHERE varname='AAXPMod'");
my $sql_handler = $connect->prepare($sql_query);
$sql_handler->execute();
@data_found = $sql_handler->fetchrow_array();
$client->Message(15,"$data_found[0].");
$connect->disconnect();
$client->Message(12,"Default value is 0.75");
$client->Message(12,"To set the AA XP Modifier value, type /say set aaxpmod value");
$client->Message(12,"Example : /say set aaxpmod 1.50");
$client->Message(12,"This would set the AA XP Modifier to double the default setting.");
}
if($text=~/set aaxpmod/i) {
my $connect = plugin::LoadMysql();
$query = ("UPDATE variables SET value='$args[2]' WHERE varname='AAXPMod'");
$query_handle = $connect->prepare($query);
$query_handle->execute();
$connect->disconnect;
$client->Message(14,"AA XP Modifier set to : $args[2].");
}
if($text=~/EXP Modifier/i) {
$client->Message(15,"Current EXP Modifier is : ");
my $connect = plugin::LoadMysql();
my $sql_query = ("SELECT value FROM variables WHERE varname='EXPMod'");
my $sql_handler = $connect->prepare($sql_query);
$sql_handler->execute();
@data_found = $sql_handler->fetchrow_array();
$client->Message(15,"$data_found[0].");
$connect->disconnect();
$client->Message(12,"Default value is 0.75");
$client->Message(12,"To set the EXP Modifier value, type /say set expmod value");
$client->Message(12,"Example : /say set expmod 1.50");
$client->Message(12,"This would set the EXP Modifier to double the default setting.");
}
if($text=~/set expmod/i) {
my $connect = plugin::LoadMysql();
$query = ("UPDATE variables SET value='$args[2]' WHERE varname='EXPMod'");
$query_handle = $connect->prepare($query);
$query_handle->execute();
$connect->disconnect;
$client->Message(14,"EXP Modifier set to : $args[2].");
}
if($text=~/Group EXP Modifier/i) {
$client->Message(15,"Current Group EXP Modifier is : ");
my $connect = plugin::LoadMysql();
my $sql_query = ("SELECT value FROM variables WHERE varname='GroupEXPBonus'");
my $sql_handler = $connect->prepare($sql_query);
$sql_handler->execute();
@data_found = $sql_handler->fetchrow_array();
$client->Message(15,"$data_found[0].");
$connect->disconnect();
$client->Message(12,"Default value is 0.60");
$client->Message(12,"To set the Group EXP Modifier value, type /say set groupexpmod value");
$client->Message(12,"Example : /say set groupexpmod 1.20");
$client->Message(12,"This would set the Group EXP Modifier to double the default setting.");
}
if($text=~/set groupexpmod/i) {
my $connect = plugin::LoadMysql();
$query = ("UPDATE variables SET value='$args[2]' WHERE varname='GroupEXPBonus'");
$query_handle = $connect->prepare($query);
$query_handle->execute();
$connect->disconnect;
$client->Message(14,"Group EXP Modifier set to : $args[2].");
}
if($text=~/LOOT Multiplier/i) {
$client->Message(15,"Current Global Loot Multiplier is : ");
my $connect = plugin::LoadMysql();
my $sql_query = ("SELECT rule_value FROM rule_values WHERE rule_name='Zone:GlobalLootMultiplier'");
my $sql_handler = $connect->prepare($sql_query);
$sql_handler->execute();
@data_found = $sql_handler->fetchrow_array();
$client->Message(15,"$data_found[0].");
$connect->disconnect();
$client->Message(12,"Default value is 1");
$client->Message(12,"To set the Global Loot Multiplier value, type /say set lootmod value");
$client->Message(12,"Example : /say set lootmod 2");
$client->Message(12,"This would set the Global Loot Multiplier to double the default setting. (Double Loot)");
}
if($text=~/set lootmod/i) {
my $connect = plugin::LoadMysql();
$query = ("UPDATE rule_values SET rule_value='$args[2]' WHERE rule_name='Zone:GlobalLootMultiplier'");
$query_handle = $connect->prepare($query);
$query_handle->execute();
$connect->disconnect;
$client->Message(14,"Global Loot Multiplier set to : $args[2].");
}
}
if($text=~/bind you here/i) {
quest::say("Binding your soul. You will return here when you die.");
quest::selfcast(2049);
}
if($text=~/display/i) {
plugin::Whisper("I may list them alphabetically, just say a letter from 'A' to 'Z'.");
}
if($text=~/[a-zA-Z]/ && length($text) == 1) {
foreach $zone (@zone_array) {
if(substr($zone, 0, 1)=~/$text/i) {
$count++;
plugin::Message("$count: " . quest::saylink($zone, 1, plugin::Zone("SN", "LN", $zone)));
}
}
plugin::Message("There are $count zones that begin with $text!");
}
if($text!~/[a-zA-Z]/) {
plugin::Whisper("You must search with alphabetic characters, try again.");
}
if($text!~/hail/i && $text!~/list/i && $text!~/bind you here/i && $text!~/Current hotzones/i
&& $text!~/add hotzone/i && $text!~/remove hotzone/i && $text!~/Server Settings/i && $text!~/AA XP Modifier/i
&& $text!~/set aaxpmod/i && $text!~/EXP Modifier/i && $text!~/set expmod/i && $text!~/Group EXP Modifier/i
&& $text!~/set groupexpmod/i && $text!~/LOOT Multiplier/i && $text!~/set lootmod/i
&& $text!~/HOTZONE Bonus/i && $text!~/set hotzonebonus/i && length($text) != 1) {
foreach $zone (@zone_array)
{
if($text eq $zone) {
quest::zone($text);
}
}
}
}
|