PDA

View Full Version : A little help with customizing my server.


helman
01-13-2012, 07:21 PM
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.

How to change the starting zone
How to change npc spawn locations
how to fully edit the spells, Such as adding new spells, and changing the effect of spells.
Where to download and how to implant the way point.
How to add the pop up window like in akka's fun house and EZ server.
How to set the way point in other zones and how to set up instances
How to add the lotto bot
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.

blackdragonsdg
01-13-2012, 09:52 PM
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 http://eqemulator.org/forums/showthread.php?t=32609

helman
01-13-2012, 10:11 PM
Ok thank you.

helman
01-13-2012, 11:35 PM
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.

helman
01-14-2012, 05:56 AM
Ok now time to update what i want help with doing XDD.


how to fully edit the spells, Such as adding new spells, and changing the effect of spells.
Where to download and how to implant the way point
how to add the pop up windo like in akka's fun house and EZ server
How to add the lotto bot
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.
How to add text to npcs
how to add a tele bot
how to add a buff bot.



Please and thanks

blackdragonsdg
01-14-2012, 05:02 PM
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
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

#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.

helman
01-15-2012, 07:02 PM
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.

blackdragonsdg
01-15-2012, 09:36 PM
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.

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.

helman
01-16-2012, 12:58 AM
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.

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.
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.

blackdragonsdg
01-16-2012, 01:55 AM
This is completely untested but try this
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.
http://www.eqemulator.net/wiki/wikka.php?wakka=QuestTutorial

http://www.eqemulator.net/wiki/wikka.php?wakka=QuestObjects

helman
01-16-2012, 02:04 AM
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.

blackdragonsdg
01-16-2012, 02:53 AM
I may have been wrong about that list of object & door names as I can't find it either.

PoK Book Example
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.

Noport
01-16-2012, 02:55 AM
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

helman
01-16-2012, 03:03 AM
Can you tell me how i can manually find the ids for them?

Noport what cha telling me here? I'm lost.

blackdragonsdg
01-16-2012, 03:19 AM
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.

Noport
01-16-2012, 03:52 AM
5.How to add zone portals

Example using quest files for what ever zone you wish.

I made my own for Bazzar quest for Red and Blue Translocator

Translocator_Blue.pl
sub TL
{
movepc(1213.00,921.00,3.28); }
}
movepc(88.00,265.00,36.00); }
}

Translocator_Red.pl

sub TL
{
movepc(1212.00,-891.00,3.28); }
}
movepc(261.64,-91.47,36.00); }
}
----------------------------------
This is a quest for what ever zone

Example Dummy.pl for nexus

sub EVENT_SAY {
if($text=~/Hail/i){
quest::say("wish to go");

if($text=~/wish to go/i) {
quest::movepc(-882.00,132.00,51.47); #Arena <--- This will move a charter to another zone location.
}

sub EVENT_SPAWN {
$x = $npc->GetX();
$y = $npc->GetY();
quest::set_proximity($x - 170.68, $x - 261.52, $y - 156.31, $y + 0);<--- to spawn a ncp type in the location where you want him/her to show up.
{
}
To find the location type /loc in chat window.

helman
01-16-2012, 04:15 AM
Ok. I have a question. How do i get 329 - portal to show up in other zones? I can't figure out how to add static objects, and what there id's are so I guess I'll use that its the only one I Portal like I can find can find.

Edit nvm i used one from Wall of Slaughter.

Noport
01-16-2012, 04:40 AM
when you say objects are you referance to objects Example
Goto your Everquest directory find the zone you known where the file
is in like example Tutorialb_assents add the objects name to the file.
to extact the objects if need use the program called s3Dspy.

under xxxxx_EnvironmentEmitters is where you want to put 329 - portal to show up
look at that zone EnvironmentEmitters file it will give you a number and the location.

helman
01-16-2012, 04:52 AM
Well I'm using one from wall of Slaughter now. Its in and every thing, but setting it to work like pok stones is a bit hard. I have it set to South Q but it set it self back to none. I'm thinking i didn't set it right and forgot to put South Q.

Edit Yeah those kind of objects.

Noport
01-16-2012, 05:01 AM
I'm sorry now i understand what your talking about when you say portal.

example veeshan_assets
voidportal.eqg
make sure you add the file name to xxxxxx_assets file for what ever zone your placing the portal in.

helman
01-16-2012, 05:11 AM
Ok what about the a crystalline portal from wall of slaughter? (asking cause i got it to load just fine with out doing that)

Noport
01-16-2012, 05:18 AM
what ever works is fine. Good job!

helman
01-16-2012, 05:24 AM
Thanks. Most of this would not have been done with out yours and blackdragonsdg's help. But I'm far away from being done. I only have starting gear made for one class, only 2 Class GM's, Still need to get my zones made out, and figure out how to make quests, Further work on the story, Edit what Aail the Enlightened says-never said his name but its the text i was having problems with-, Look for someone to do the hosting for me. Lets just say i have a new found respect for the people that have made a server, and the people that can do this like its nothing.

Noport
01-16-2012, 05:33 AM
I"m working with the newer client Voa . i had to use Station & Lauchpad to make one good client. Exported all the zone files so far 1.22Gb with Voa client now been 9.25Gb Total

Noport
01-16-2012, 06:01 AM
don't use %t if you want your charters name to show you'll have to use $name.

helman
01-16-2012, 06:10 AM
ok. And I'm haing troubles again. XDD


sub EVENT_SAY {
if($text=~/Hail/i) {
quest::say("-You Hear a Voice that seems to come out Of the Rift.- This Will send you back in time to South Qeynos.(I'm still working on this So just Say (Send).");
}
If($text=~/Send/i) {
quest::say("Please be careful to not change the future.");
quest::movepc(302,0,10,5);
}
}


Whats wrong with it? My Portal wont talk to me. I have the .pl named right and in the right folder but it just wont talk.

Also with what I'v learned I think I can make my own Waypoint. All i need is to make sure every zone has the same npc and Script for it. The only thing i can't do is the banking system and the withdraw from it. But i can still make it my buff bot, skill trainer, Spell trainer, Disc trainer and what not.

Noport
01-16-2012, 06:33 AM
sub EVENT_SAY {
if($text=~/Hail/i) {
quest::say("$name Hears a Voice that seems to come out Of the Rift.- This Will [Send] you back in time to South Qeynos. Please be careful to not change the future.");
}elseIf($text=~/Send/i) {
quest::movepc(302,0,10,5);
}
#END of FILE

helman
01-16-2012, 06:45 AM
Thank you. XDD as you can see i'm still getting use to this.

Sadly that didn't work. still testing.

I think i know what it is. $name Hears a Voice that seems to come out Of the Rift.- its the (-). I copyed the text from one of my other npcs and it worked. So its got to be that (-).

Got it to work but, now i need to figure out why it sent me to dracknick(sp) -I so missed up that name XDD- scar

I was looking at the wrong ID 302 is the zone id for DS 1 is for SQ

Noport
01-16-2012, 07:31 AM
xxxxxxxxxx.pl plugin name of file

#!/usr/bin/perl
sub name_say {
my $text = shift;

if($text=~/hail/i){
quest::say("$name Hears a Voice that seems to come out Of the Rift.- This Will [Send] you back in time to South Qeynos. Please be careful to not change the future.");
}elseIf($text=~/Send/i) {
quest::movepc(302,0,10,5);
}
#END of FILE
put this file in plugins dirctory to work in every zone.

put this file in every zone replace xxxxxx and pluginname
xxxxxxxxxx.pl plugin name of file
#generic pluginname quest
sub EVENT_SAY {
plugin::pluginname_say($text);
}

helman
01-16-2012, 07:35 AM
Ok, I'll get to that later. Its sleep time. Thank you for the help. To bad I can't Port Foreword or i would ask you to beta test for me.

Noport
01-16-2012, 07:56 AM
Glad your not a dark elf would get killed in qeynos heha. if you would like it to send you back to your home town say go home. it should return you to your home town.

helman
01-16-2012, 07:26 PM
Ok I'll keep that in mind. If anything I'll just remove all the factions so races that are KoS in Qeynos.

Edit i'm going to finish the custom basic armor, so can anyone tell me what the other classes armor. The armor like Singing and Deepwater.

helman
01-16-2012, 09:04 PM
List of things i still need to know how to do, and need help with.


How to fully edit the spells, Such as adding new spells, and changing the effect of spells.
How to add the lotto bot.
Hot to add that bank system. (if only i knew what it was called)
How to add a buff bot.
How to make a custom quest.
How to make turn-ins.
And Still looking for someone to host my server for me.


Note: I know how to add the buff bot, But I don't know how to make it cast buffs depending on your lvl, or how to make it cast more than 1 buff.

Caryatis
01-16-2012, 09:46 PM
8.) How to use the search function.

Don't get me wrong, feel free to sit back and wait for people to answer all your questions but you aren't asking to do anything new, everything you want to do is already documented many times over if you look for it.

Noport
01-16-2012, 09:50 PM
here is the link http://www.eqemulator.org/forums/showthread.php?t=32822 to all your questions about spells..
http://www.georgestools.eqemulator.net/

helman
01-16-2012, 10:09 PM
@ Caryatis Yes like I feel like wasting hours looking through pages after pages of topics that might contain Bot or Spell. I'd rather Ask than wast time looking. I can get things done much faster that way. Cause as I was waiting for a response I was adding new items. Which is a more productive thing to do. Also its not like Noport or blackdragonsdg has to help me. Besides if I did search I would be having tons of problems, like getting npcs to talk and port me somewhere. I Don't have c++ experience like a lot of devs here. (I only have limited BOO experience.)

So all in all Its just easier if I ask for help, It would take way to long to search for the help.

And thank you Noport I'll read into that here soon when I finish making the armor.

helman
01-17-2012, 07:35 AM
Big Milestone done to night. (or to me it is.) Just finished My hybrid merchant, He is to sell Armor for Bard, SK, Pal, Beast, and Ranger. I'm now going to get my GMs in, then work on Caster, Melee, And Aug sellers. By the time i'm done with that I hope someone has helped me with the Buff bot. If so Then I'll work on My rift. (The Rift will be your tele back to Hub, your Tele to other zones, Your buff bot, Spell trainer, Skill trainer, And side quest giver. If there is a Side quest for that zone.)

Also when I get the hub done, I'll post screens. So people can get the gist of it.

NOTE: I'm still looking for some one to host my server for me. If you host my server your only allowing others to login, I'll be doing all the dev work. Unless you want to do some dev work to. As I stated in my other thread, Contact me at omgcats2@hotmail.com, PM or Skype.

lerxst2112
01-17-2012, 03:15 PM
Basic Buffbot. Replace/add/remove spells IDs as desired.


sub EVENT_SAY
{

my $buffs = quest::saylink("buffs");
if($text=~/Hail/i)
{
quest::say("Greetings $name. Would you like some [$buffs]?");
}

if($text=~/buffs/i)
{
quest::selfcast(18323);
quest::selfcast(5521);
quest::selfcast(19426);
quest::selfcast(5405);
quest::selfcast(9868);
quest::selfcast(10211);
quest::selfcast(10031);
}
}

helman
01-18-2012, 02:11 AM
I thought it would have been more than that. But I guess not. Thanks

Noport
01-19-2012, 01:08 AM
5.How to make a custom quest
http://www.eqemulator.net/wiki/wikka.php?wakka=CategoryQuests

helman
01-24-2012, 12:42 AM
Ok thanks. Sorry i have not been on for like 3 or 4 days, Ive been bizy helping my dad fix a leak around our hot water heater. Still not done, Melted a pipe so i'll be bizy again this weekend.