Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 01-13-2012, 07:21 PM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default A little help with customizing my server.

I'm look for help with the following.

You can send me to a post with help or wiki, or type it in here on how to do it.
But here my list of things i would like to know how to do.
  1. How to change the starting zone
  2. How to change npc spawn locations
  3. how to fully edit the spells, Such as adding new spells, and changing the effect of spells.
  4. Where to download and how to implant the way point.
  5. How to add the pop up window like in akka's fun house and EZ server.
  6. How to set the way point in other zones and how to set up instances
  7. How to add the lotto bot
  8. How to add zone portals, like what was in BoTA when he was using The forgotten Halls. or when in the SoD hub on Storm Haven.

That all atm. I have the PEQ database editor but I can't figure out how to do any of that. But if some one can teach me I'll be good. Also if any requires me to download something please give me a link. (Save so much time.) Also sorry if this is in the wrong section.
Reply With Quote
  #2  
Old 01-13-2012, 09:52 PM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

Will answer a few questions for you.

1. The start_zones table of the database. Use Navicat or a similar program to view it.

2. The spawn2 table of the database and here again use Navicat or a similar program to view it.

6. For zone instancing read this
Code:
http://eqemulator.org/forums/showthread.php?t=32609
Reply With Quote
  #3  
Old 01-13-2012, 10:11 PM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default

Ok thank you.
Reply With Quote
  #4  
Old 01-13-2012, 11:35 PM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default

Um for some reason it wont take effect i have it set to 118 for the Forgotten halls but it keeps taking me to Crescent reach or the Tutorials. Why?

ok now its taking me to South Qeynos. still set to 118.

Ok had to set startzone in the variables to fhalls but it kicked my toon to the arena so need help fixing that.

fixed it.
Reply With Quote
  #5  
Old 01-14-2012, 05:56 AM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default

Ok now time to update what i want help with doing XDD.
  1. how to fully edit the spells, Such as adding new spells, and changing the effect of spells.
  2. Where to download and how to implant the way point
  3. how to add the pop up windo like in akka's fun house and EZ server
  4. How to add the lotto bot
  5. How to add zone portals, like what was in BoTA when he was using The forgotten Halls. or when in the SoD hub on Storm Haven.
  6. How to add text to npcs
  7. how to add a tele bot
  8. how to add a buff bot.


Please and thanks
Reply With Quote
  #6  
Old 01-14-2012, 05:02 PM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

What exactly do you mean by way point? Creating the .path files for each zone or just creating pathing for individual mobs?

5. zone portals

Zone portals can literally be just about any object or door in any given zone. All you have to do is find the correct object or door in there respective tables in the database then add the destination coordinates, heading, target zone name(zone short name) and maybe click type.

6. Adding text to npc's.

You have to create scripts to add text to npc's. Here is an example of an npc responding to a hail.

RandomNPC.pl
Code:
sub EVENT_SAY {
    if($text=~/Hail/i) {
    quest::say("Hello, Welcome to my shop. If you bought an item that is part of my exchange program then let me know.");
    }
}

7. Teleport bot example.

Translocator.pl
Code:
#Translocator for Multiple Zones

#Array for all available zones to be sent to
@ZoneList = qw(
	lopingplains
	emeraldjungle
	frontiermtns
	rathemtn
	westwastes
	eastwastes
	southkarana
	cazicthule
	akanon
	befallen
	blackburrow
	cabeast
	cabwest
	mistmoore
	chardok
	thurgadina
	veksar
	cobaltscar
	crystal
	dalnir
	necropolis
	dreadlands
	dulak
	freporte
	echo
	erudnext
	unrest
	everfrost
	fieldofbone
	fungusgrove
	greatdivide
	grobb
	guktop
	halas
	highkeep
	charasis
	paw
	kael
	kaesora
	karnor
	kurn
	lakeofillomen
	nurga
	soldungb
	najena
	nexus
	freportn
	nro
	oggok
	sebilis
	permafrost
	airplane
	fearplane
	growthplane
	hateplane
	mischiefplane
	qeytoqrg
	rivervale
	runnyeye
	shadowhaven
	skyshrine
	soldunga
	sro
	felwitheb
	ssratemple
	qrg
	acrylia
	arena
	burningwood
	citymist
	sharvahl
	nadox
	dawnshroud
	thegrey
	gunthak
	hole
	jaggedpine
	maiden
	overthere
	paludal
	hateplaneb
	scarlet
	umbral
	frozenshadow
	velketor
	vexthal
	warrens
	warslikswood
	freportw
);

sub EVENT_SAY{

	#Spacer between Text messages to make them easier to read
	$client->Message(7, "-");
	my $NPCName = $npc->GetCleanName();

	if ($text =~/Hail/i)
	{
		$client->Message(315, "$NPCName whispers to you, 'If there is a zone you would like to go to, just tell me the short name of it and I will see if I have a spell to send you there. If you do not know the full name, just type part of the name to search my list of possible zones.  Or, I can list [all] of them if you like.'");
	}

	#Counts each row for the While
	my $count = 1;

	#Counts each element in the Array for the While
	my $n = 0;

	
	if ($text !~ /Hail/i)
	{
		#Use scalar form of Array
		while ($ZoneList[$n])
		{
			#This uses the lc() function in perl to convert anything typed into all lowercase, since that is what the zone list is
			#If the zone name contains part of the text said, or if the player wants to list all possible zones we list them
			if (($ZoneList[$n] =~ lc($text) && $ZoneList[$n] ne lc($text)) || ($text =~ /^All$/i))
			{
				my $ZoneName = $ZoneList[$n];
				$client->Message(315, "$NPCName whispers to you, 'Possible match is: $ZoneName");
			}
			#If they say the full name of one of the zones in the Array, or click one of the saylinks, port them to the safe loc there
			if ($ZoneList[$n] eq lc($text) && $text !~ /^All$/i)
			{
				$client->Message(315, "$NPCName whispers to you, 'Enjoy your adventure!'");
				$client->Message(6, "$NPCName casts a spell to translocate you to another place.");
				quest::zone("$ZoneList[$n]");
			}
			$n++;
			$count++;
		}
	}
}
How to assign scripts to npcs using the examples above. Your scripts name must match either the npc name or npc id number for which you want the script to work with. Using Translocator.pl or RandomNPC.pl from above would require you to make an npc with the name of Translocator or RandomNPC respectively.

In case you don't already know how to create scripts. Using RandomNPC.pl as an example....Open notepad then copy and paste everything inside the code block into the text document. Select save as then use RandomNPC.pl as the file name and set file type to all files. Save the file. Now place the newly created script into the appropriate zone folder in your quests directory. The zone folders use the short names of zones which can be found in the zone table of your database.
Reply With Quote
  #7  
Old 01-15-2012, 07:02 PM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default

Ok. I'll give that a try now, The way point is something Akka made. Its also in EZ server. If you give it plat it will hold it in a bank like system that it will use for better buffs or make an instance of the zone you're in. How do I add an object to like my hub zone, and give it a zone location? I'll be trying to figure it out, but I'm still a noob with the tools and mysql.
Reply With Quote
  #8  
Old 01-15-2012, 09:36 PM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

Given your description of the way point that is very very custom. You might try checking the quest section just in the off chance someone posted it or a partial script there.

Here is an example of how to add an object to a zone. The following will add an augment pool to Plane of Knowledge. It will appear in front of main bank.

Code:
delete from object where id = 2278;
INSERT INTO `object` (`id`, `zoneid`, `version`, `xpos`, `ypos`, `zpos`, `heading`, `itemid`, `charges`, `objectname`, `type`, `icon`, `unknown08`, `unknown10`, `unknown20`, `unknown24`, `unknown60`, `unknown64`, `unknown68`, `unknown72`, `unknown76`, `unknown84`) VALUES (2278, 202, 0, 423.98, 387.54, -124.94, 0, 0, 0, 'IT10714_ACTORDEF', 53, 1142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
The zone location is controlled by the zone id number which you can get from the zone table of the database. Most of it is self explanatory except for maybe objectname in which case find a link to the list of them on this site or find an object you like in a zone and look it up in the database.
Reply With Quote
  #9  
Old 01-16-2012, 12:58 AM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default

Ok i'm having a hard time adding responses. Like with below. After you hail him and say Information to hear more. This is my code. I have it like that and set in the right zone folder. but with it like that when i hail him My npc Says nothing to me. So how do i fix it so he will say things and work right? (talking to someone with no c++ experience.

Code:
sub EVENT_SAY {
    if($text=~/Hail/i) {
    quest::say("Welcom to The Forgotten Halls, %T. Please Let me Know if you want Some (information) about the halls.");
    
	sub EVENT_SAY {
	if($test=~/Information/i) {
	quest::say("These Halls use to be used by Taelosian pilgrims studing magic and the control granite. After a while it was open to adventures, Raiders, And Informents looking for a place to rest and continue there journeys or give information. 
	Because it was a grathing for adventures, Raiders, And Informents any evil people like Cazic Thul Wanted it Distoryed. Cause so The Taelosian Elders Had it sealed off. But that was years ago.
	This place was left behind in time, Untill The Rifts showed up all over Norath. I and my assistent was sent into one to see wher it led. We came out here, a place sealed by the elders. 
	We started to look around to see if we could find the source of the rifts. We did just that. We found a Huge Strang Crystal That was never recorded in our history books. 
	We did research and came to a conclusion. This stone was the sorce of the Rifts, and it dosn't seem to cause any harm to us. We also found out that only those that have a perpous to come here can pas through the Rifts and inter here.
	Ever one asks the same question, Yes this place is safe. Please Let me know if you want (locations) of the Merchants here and osther stuff.");
	
	sub EVENT_SAY {
	if($text=!/locations/i) {
	quest::say("this will come soon");
}

but with the following code he dose. The only problem is i can't get him to say my name not his. So is there a in-game command for geting a npc to target a player and say its name like %T.
Code:
sub EVENT_SAY {
    if($text=~/Hail/i) {
    quest::say("Welcom to The Forgotten Halls, %T. Please Let me Know if you want Some (information) about the halls.");
    }
}

Edit I got it working XDD. I just looked at a .pl for a npc from a other zone and used it as a reference.
Reply With Quote
  #10  
Old 01-16-2012, 01:55 AM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

This is completely untested but try this
Code:
sub EVENT_SAY {
	if($text=~/Hail/i) {
		quest::say("Welcome to The Forgotten Halls, $name. Please Let me Know if you want Some (information) about the halls.");
	}
	if($text=~/information/i) {
		quest::say("These Halls use to be used by Taelosian pilgrims studing magic and the control granite. After a while it was open to adventures, Raiders, And Informents looking for a place to rest and continue there journeys or give information. Because it was a grathing for adventures, Raiders, And Informents any evil people like Cazic Thul Wanted it Distoryed. Cause so The Taelosian Elders Had it sealed off. But that was years ago. This place was left behind in time, Untill The Rifts showed up all over Norath. I and my assistent was sent into one to see wher it led. We came out here, a place sealed by the elders. We started to look around to see if we could find the source of the rifts. We did just that. We found a Huge Strang Crystal That was never recorded in our history books. We did research and came to a conclusion. This stone was the sorce of the Rifts, and it dosn't seem to cause any harm to us.");
		quest::say("We also found out that only those that have a perpous to come here can pas through the Rifts and inter here. Everyone asks the same question, Yes this place is safe. Please Let me know if you want (locations) of the Merchants here and osther stuff.");
	}
	if($text=~/locations/i) {
		quest::say("this will come soon");
	}
}
Here are a few links that may help you with quest writing.
Code:
http://www.eqemulator.net/wiki/wikka.php?wakka=QuestTutorial

http://www.eqemulator.net/wiki/wikka.php?wakka=QuestObjects
Reply With Quote
  #11  
Old 01-16-2012, 02:04 AM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default

Ok thank you and can you send me a link to the objects? The only ones I can fine are the ones for trade skill. But I think there are more like the pok stone. Also how can I set the object to a zone point that I click on. I know i have a lot of questions. When I get most of I done I will give you credit. Probable as my mentor if you don't mind.
Reply With Quote
  #12  
Old 01-16-2012, 02:53 AM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

I may have been wrong about that list of object & door names as I can't find it either.

PoK Book Example
Code:
INSERT INTO `doors` (`id`, `doorid`, `zone`, `version`, `name`, `pos_y`, `pos_x`, `pos_z`, `heading`, `opentype`, `guild`, `lockpick`, `keyitem`, `nokeyring`, `triggerdoor`, `triggertype`, `doorisopen`, `door_param`, `dest_zone`, `dest_instance`, `dest_x`, `dest_y`, `dest_z`, `dest_heading`, `invert_state`, `incline`, `size`, `buffer`, `client_version_mask`, `is_ldon_door`) VALUES (3415, 1, 'Everfrost', 0, 'POKTELE500', 2887.25, -78.1207, -64.1542, 238.73, 58, 0, 0, 0, 0, 0, 0, 0, 0, 'poknowledge', 0, 132.109, 873, -145, 128, 0, 0, 100, 0, 4294967295, 0);
The above example is the PoK book that leads from Everfrost Peaks to PoKnowledge. I think I referenced clicktype earlier in which case it should have been opentype as it is listed above. The opentype is what controls what the door/object does when it is clicked.
Reply With Quote
  #13  
Old 01-16-2012, 02:55 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

Example only


#Old man Thorren.pl
# LOC PoK (-170.68, -261.52, -156.31)

sub EVENT_SAY {
if($text=~/Hail/i){
quest::say("Welcome to The Veil of Alaris, $name. To ease your [Newly discoved Lands]. If you wish, I can also send you to [Arena] or [Crafthalls]. But be warned that while I can Teleport you to these distant Lands, you are on your own for finding a way back.");

} if($text=~/Newly discoved Lands/i) {
quest::say("Argath,Valley of Lunanyn,Sarith,Rubak Oseka,Beast Domain,Resplacement Temple,Bronze,Pillars,Windsong,Sepulcher,Sepulcher East,Sepulcher West")
}
if($text=~/Arena/i) {
quest::movepc(-882.00,132.00,51.47); #Arena
}
if($text=~/Crafthalls/i) {
quest::movepc(0.00,0.00,-6.30); #Ngreth's Den
}
if($text=~/Argath/i) {
quest::movepc(62000.00,7930.00,-29.99);
}
if($text=~/Valley of Lunanyn/i) {
quest::movepc(3379.00,-1922.00,1333.37);
}
if($text=~/Sarith/i) {
quest::movepc(918.00,-499.00,-1.87);
}
if($text=~/Rubak Oseka/i) {
quest::movepc(-27.00,-56.00,516.17);
}
if($text=~/Beast Domain/i) {
quest::movepc(-4846.00,4463.00,181.21);
}
if($text=~/Resplacement Temple/i) {
quest::movepc(92.00,-76.00,9.90);
}
if($text=~/Bronze/i) {
quest::movepc(-978.00,-2255.00,50.54);
}
if($text=~/Pillars/i) {
quest::movepc();
}
if($text=~/Windsong/i) {
quest::movepc();
}
if($text=~/Sepulcher/i) {
quest::movepc();
}
if($text=~/Sepulcher East/i) {
quest::movepc();
}
if($text=~/Sepulcher West/i) {
quest::movepc();
}

sub EVENT_SPAWN
{
$x = $npc->GetX();
$y = $npc->GetY();
quest::set_proximity($x - 170.68, $x - 261.52, $y - 156.31, $y + 0);
}


sub EVENT_ITEM {
quest::say("I have no use for this, $name.");
plugin::return_items(\%itemcount);
}

#END of FILE Zone:poknowledge
Reply With Quote
  #14  
Old 01-16-2012, 03:03 AM
helman
Sarnak
 
Join Date: Apr 2010
Location: Texas, Sweetwater
Posts: 69
Default

Can you tell me how i can manually find the ids for them?

Noport what cha telling me here? I'm lost.
Reply With Quote
  #15  
Old 01-16-2012, 03:19 AM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

The id's are something you will have to find out for yourself as your database is probably different than mine. About all I can tell you is that the id will be the next available for use. The doorid will be the next available for use with in whatever zone you placed it in. This is where having navicat or a similar program will come in handy. The ability to sort a table by various column headers and content or even filter the entire table to a specific zone is very very helpful.
Reply With Quote
Reply


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