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

Quests::Custom Custom Quests here

Reply
 
Thread Tools Display Modes
  #1  
Old 08-12-2017, 05:38 PM
The_Beast
Hill Giant
 
Join Date: May 2016
Location: Under a rock
Posts: 205
Default Simple Instance Zone Script

This is not intended as an uber custom script, it's just for "noobs" who are learning
and this is something simple they can start with to create an instance of any zone.
I am using this on my own server for some customization I am doing and thought I would
share it with people who could use the help getting started with some basic instancing.
Many people have a lot more advanced perl knowledge on this site, than I do, but I am
not interested (yet), in poking around with learning lua, lol. Someday maybe.

In this sample, it sends the player to an instance version of Forgotten Halls, but it
could be used on any zone. Where you see the expression "fhalls", that is just the phrase
I chose to use. It could be anything you want, as long as it is in place where you see
it (in red).
Everything you see in red is what you would need to edit to your own preferences for the
zone you are using. (plus the "say" text, level, etc.) In this example, the player needs
to be level 14 to get the instance from the NPC that you put this script on.
The MovePCInstance "998" is the zone ID number, then the x,y,z coords.
Where you see "14400", that is the timer (in seconds) for the instance to expire.
Just put something like this on an NPC script (whatever_name.pl) and if you're testing
in-game type #reloadquest everytime you edit a quest script.
For anyone who hasn't visited the perl reference wiki yet, tons of help on there.
http://wiki.eqemulator.org/p?Ultimat...rence&frm=Main

Code:
my @players = ();
my $group;
my $instance;

sub EVENT_SAY {

	if (($text =~/hail/i) && ($ulevel > 14)) {
			quest::say("Greetings $name, Are you interested in exploring the Forgotten [Halls] ?");
	}
	elsif ($text =~/halls/i && ($ulevel < 14)) {
			quest::say("Go away $name I am too busy for you right now.");
	}
	elsif ($text =~/halls/i && ($ulevel > 14)) {
			quest::say("Ok $name just let me know when you are [ready] and I will send you there.");
	}
	elsif (($text =~/ready/i) && ($ulevel > 14)) {
					
		if (defined($qglobals{"fhallsInsta1"})) {
										$fhallsInst1 = $qglobals{"fhallsInsta1"};
										quest::setglobal("fhalls", 1, 5, "D1");
										quest::AssignToInstance($fhallsInst1);
										quest::MovePCInstance(998, $fhallsInst1, -58.63, -880.25, -12.81);
										quest::say("Ok $name Away you go to Forgotten Halls.");
									}
									else {
										$fhallsInst1 = quest::CreateInstance("fhalls", 0, 14400);
										quest::AssignToInstance($fhallsInst1); 
										quest::setglobal("fhallsInsta1",$fhallsInst1,365,"D1");
										quest::MovePCInstance(998, $fhallsInst1, -58.63, -880.25, -12.81);
										quest::say("Ok $name Away you go to Forgotten Halls.");
									}	
							
		}
}
Reply With Quote
  #2  
Old 08-13-2017, 03:42 AM
Kingly_Krab's Avatar
Kingly_Krab
Developer
 
Join Date: May 2013
Location: United States
Posts: 1,375
Default



/10char
__________________
For Project 1999 related issues, check here.

Click here for the EQEmulator Wiki.

If you would like my personal assistance, feel free to private message me.
Reply With Quote
Reply

Thread Tools
Display Modes

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 11:00 AM.


 

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 - 2017, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3