Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Custom

Quests::Custom Custom Quests here

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #4  
Old 09-25-2018, 06:40 PM
superpally1
Sarnak
 
Join Date: Jul 2018
Location: Tennessee
Posts: 33
Default

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);
		    }
		}
	}
}
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 05:59 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3