Log in

View Full Version : Debian Wiki Updates/Tweaks


Shin Noir
08-01-2014, 07:31 AM
Howdy.
http://wiki.eqemulator.org/p?EQEmu_on_Debian_6_VM&frm=Main
This topic above, here's my notes about it.

I used debian-7.6.0-amd64-netinst.iso

----compile EQEMU section---
cmake is now used instead of just make, so these steps are added:
apt-get install cmake
cmake .
make

---Grabbing the sources--
remove these (deprecated):
svn co http://projecteqdb.googlecode.com/svn/trunk/peqdatabase peq
svn co http://projecteqquests.googlecode.com/svn/trunk/quests quests

they're now https://drive.google.com/folderview?id=0B5FZHGN6aazfeThIMENvWTA2VDA&usp=sharing#list


copying and linking files:

on the change to server dir, copy and create links steps:
cp ../source/utils/patches/patch_* ./
cp ../source/utils/patches/opcodes.conf ./

This is a personal preference, so if you recompile it backs up old and copies new. cleanipc and a lot of commands aren't properly noted here, but can be. (You need to copy the files from ~/eq/source/Bin/* over to your ~/eq/server/ dir.
~/eq/server/$
nano sync.sh

#!/bin/bash
#sync latest compiled source files to server dir. Place in server dir.
mkdir -p backup/
cp zone backup/$(date +%Y-%m-%d)-zone
cp ../source/Bin/zone .
cp eqlaunch backup/$(date +%Y-%m-%d)-eqlaunch
cp ../source/Bin/eqlaunch .
cp world backup/$(date +%Y-%m-%d)-world
cp ../source/Bin/world .
cp /usr/lib/libEMuShareMem.so backup/$(date +%Y-%m-%d)-libEMuShareMem.so
cp ../source/Bin/libEMuShareMem.so /usr/lib/
echo Syncronized.


Database Setup no longer has a peqdb_rev.sql_gz, the source noted has a readme DO NOT USE THIS DB
instead, copied from the readme.txt
-----------
create database whatever_db_name_you_want;
use whatever_db_name_you_made;
source peqbeta_blahblah.sql;
source player_tables_blahblah.sql;

(OPTIONAL) source load_login.sql;
(OPTIONAL) source load_bots.sql;

copy eqtime.cfg over to the directory where your server binaries live.

If you plan on using the public EQEmu login server, then sourcing load_login.sql is not necessary.
If you wish to use a local login, you can login using Admin and the password "password". You can also look in load_login.sql to see how to add your own users manually.

-----------------

Then run:
mysql -u root -p peq < peqbeta*.sql
mysql -u root -p peq < player_tables_*.sql

cp ~/eq/peq/eqtime.cfg ~/eq/server/

EQEMU setup--
the mv eqemu_config.xml.bak command doesn't do anything. No source/destination. I think it wants:
mv eqemu_config.xml eqemu_config.xml.bak


Create your server start and stop files---

instead of the mess of shell scripts, I normally install gnu screen or tmux or whatever. I adjust tmux personally with this https://gist.github.com/andreyvit/2921703 so it feels like screen. and do a series of C+a c C+a , and call them eqlaunch, world, whatever you launch.

eqconfig needs login.eqemulator.net 5998 as well

I think that's about it.

Akkadius
08-01-2014, 11:40 AM
Shin,

Would you like a Wiki user to update the page yourself?

Thanks,
-Akka

hayward6
08-01-2014, 01:22 PM
words...

This will be extremely helpful! I have recently been trying to revive my old linux server, and so much is different. Thank you,

Shin Noir
08-01-2014, 04:54 PM
I suppose I could do that Akkadius. I tried originally and noticed it was locked except for wiki members, figured I'd write self notes/tell you guys to do it than go through process of applying.

Thanks.

hayward6
08-01-2014, 07:15 PM
I suppose I could do that Akkadius. I tried originally and noticed it was locked except for wiki members, figured I'd write self notes/tell you guys to do it than go through process of applying.

Thanks.

I look forward to seeing it all together, because I don't know what this means... I can navigate to that site in windows and download the files, but I don't know how to grab them directly from the command line in Linux. The link you posted doesn't seem to be enough.

"---Grabbing the sources--
remove these (deprecated):
svn co http://projecteqdb.googlecode.com/svn/trunk/peqdatabase peq
svn co http://projecteqquests.googlecode.com/svn/trunk/quests quests

they're now https://drive.google.com/folderview?...p=sharing#list"

Akkadius
08-01-2014, 07:31 PM
Sent in a PM Shin.

Thank you so much for getting the Debian install up to date.

This was needed badly.

Also, bonus points for anyone who gets a Debian VM setup and then lets me download it from them so I can host it on our Wiki for an instant sandbox.

hayward6
08-01-2014, 07:40 PM
Sent in a PM Shin.

Thank you so much for getting the Debian install up to date.

This was needed badly.

Also, bonus points for anyone who gets a Debian VM setup and then lets me download it from them so I can host it on our Wiki for an instant sandbox.

That would be awesome! My only hesitation is that the knowledge that it takes to set up a server is also required to update it. If I could just come here and download the VMDK file, I would probably have no idea how to edit and update it.

Shin Noir
08-02-2014, 12:09 AM
Replied to your PM with a virtualbox install package, akkadius. I'm working on a new page for the tutorial instead of editing the old one. (With videos).
http://wiki.eqemulator.org/p?EQEmu_on_Debian_7_Virtualbox

Shin Noir
08-02-2014, 12:28 AM
I look forward to seeing it all together, because I don't know what this means... I can navigate to that site in windows and download the files, but I don't know how to grab them directly from the command line in Linux. The link you posted doesn't seem to be enough.

"---Grabbing the sources--
remove these (deprecated):
svn co http://projecteqdb.googlecode.com/svn/trunk/peqdatabase peq
svn co http://projecteqquests.googlecode.com/svn/trunk/quests quests

they're now https://drive.google.com/folderview?...p=sharing#list"

My new tutorial shows how I do this, since wget isn't friendly in cli with google's downloading. (I just use filezilla for easy scp)

hayward6
08-02-2014, 07:03 AM
My new tutorial shows how I do this, since wget isn't friendly in cli with google's downloading. (I just use filezilla for easy scp)

I setup webmin and moved the files that way simply because it's what I know.

hayward6
08-03-2014, 09:03 AM
The videos are great! Thank you for the update. I will try to run through this setup tomorrow to see how it goes. My only differences will be that I am using Vmware Workstation 10, and I am more accustom to using vi for editing.

Shin Noir
08-03-2014, 04:12 PM
I finished my wiki article, now I'll go and edit the original one as soon as I find time. :)

hayward6
08-03-2014, 08:20 PM
I finished my wiki article, now I'll go and edit the original one as soon as I find time. :)

I am very impressed and thankful to you for doing this. I am about half way through and everything is working great. I gave the idea of hosting a complete image some more thought, and I just don't know... It would be difficult to keep that image updated and very hard for someone with no linux experience to just start owning it.

Shin Noir
08-03-2014, 08:25 PM
Meh, I can give guidance to a linux noob on how to maintain stuff. I'm just too lazy to do all the upkeep myself. :P

hayward6
08-04-2014, 10:20 AM
I've just about got it, but still have a couple things not going well. The LibEMuShare file is in the server directory...


[Debug] [WORLD__HTTP] Requesting that HTTP Service stop.
[Debug] [COMMON__THREADS] Ending EQStreamFactoryWriterLoop with thread ID 1268692736
[Debug] [COMMON__THREADS] Ending TCPServerLoop with thread ID 1296017152
eqemu@debian:~/server$ nano eqemu_config.xml
eqemu@debian:~/server$ ls -lt
total 87252
-rw-r--r-- 1 eqemu eqemu 30 Aug 4 10:14 eqtime.cfg
drwxr-xr-x 2 eqemu eqemu 4096 Aug 4 10:13 logs
-rw-r--r-- 1 eqemu eqemu 18028095 Aug 4 08:21 spells_us.txt
-rw-r--r-- 1 eqemu eqemu 2149759 Aug 4 08:20 spells_en.txt
-rw-r--r-- 1 eqemu eqemu 2508 Aug 4 08:14 eqemu_config.xml
lrwxrwxrwx 1 eqemu eqemu 9 Aug 4 07:35 quests -> ../quests
lrwxrwxrwx 1 eqemu eqemu 17 Aug 4 07:35 plugins -> ../quests/plugins
lrwxrwxrwx 1 eqemu eqemu 8 Aug 4 07:35 Maps -> ../maps/
-rw-r--r-- 1 eqemu eqemu 16719 Aug 4 07:35 opcodes.conf
-rw-r--r-- 1 eqemu eqemu 22607 Aug 4 07:35 patch_SoF.conf
-rw-r--r-- 1 eqemu eqemu 18844 Aug 4 07:35 patch_Titanium.conf
-rw-r--r-- 1 eqemu eqemu 19006 Aug 4 07:35 patch_Underfoot.conf
-rw-r--r-- 1 eqemu eqemu 17718 Aug 4 07:35 patch_6.2.conf
-rw-r--r-- 1 eqemu eqemu 16027 Aug 4 07:35 patch_RoF.conf
-rw-r--r-- 1 eqemu eqemu 18916 Aug 4 07:35 patch_SoD.conf
-rwxr-xr-x 1 eqemu eqemu 45408815 Aug 4 07:34 zone
-rwxr-xr-x 1 eqemu eqemu 13984142 Aug 4 07:34 world
-rwxr-xr-x 1 eqemu eqemu 4485617 Aug 4 07:34 ucs
-rwxr-xr-x 1 eqemu eqemu 2433598 Aug 4 07:34 queryserv
-rwxr-xr-x 1 eqemu eqemu 266920 Aug 4 07:34 libEMuShareMem.so
-rwxr-xr-x 1 eqemu eqemu 2371644 Aug 4 07:34 eqlaunch
-rwxr-xr-x 1 eqemu eqemu 32988 Aug 4 07:34 cleanipc
eqemu@debian:~/server$ nano eqemu_config.xml
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Starting HTTP world service...
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [COMMON__THREADS] Starting DBAsyncLoop with thread ID 1287624448
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__HTTP_ERR] Failed to load mime types from 'mime.types'
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Loading variables..
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Loading zones..
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Clearing groups..
-su: [Debug]: command not found
[Debug] [WORLD__INIT] Clearing raids..
[Debug] [WORLD__INIT] Loading items..
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Clearing raids..
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Loading items..
-su: [Debug]: command not found
eqemu@debian:~/server$ [Error] Load Shared Library 'libEMuShareMem.so' failed. Error=libEMuShareMem.so: cannot open shared object file: No such file or directory
-su: [Error]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__INIT_ERR] Error: Could not load item data. But ignoring
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Loading guilds..
-su: [Debug]: command not found
eqemu@debian:~/server$ [Debug] [WORLD__INIT] Loaded default rule set 'default'
-su: [Debug]: command not found
eqemu@debian:~/server$ ^C
You have new mail in /var/mail/eqemu
eqemu@debian:~/server$

hayward6
08-04-2014, 10:37 AM
I was able to get through the SharedMem issue by doing a forum search. I needed to copy that file to the /usr/lib directory. It seems fine now. The only think that is happening now is the mime.types file is not in the server directory. I am going back to figure out where that file is built and see if I can locate it.

hayward6
08-04-2014, 10:49 AM
ok I was able to find mime.types in the source/utils/defaults directory, so I either skipped a couple steps where this and the other file are either copied, moved, or linked, or its missing from the wiki. Thanks again, this was very easy to follow and I believe I am all setup. I will probably run through a clean build again tonight just to make sure I understand it.

hayward6
08-04-2014, 11:04 AM
I went here and used this script to start and stop the server and it seems to be working great. https://gist.github.com/mackal/7994207

Shin Noir
08-04-2014, 02:39 PM
sudo mv libEMuShareMem.so /usr/lib
Added this to the instructions.

Yeah, there's tons of ways to write start/stop scripts.

demonstar55
08-04-2014, 04:27 PM
I went here and used this script to start and stop the server and it seems to be working great. https://gist.github.com/mackal/7994207

I would highly recommend using that script (I think I missed a ucs or something, but I'll blame whoever posted it originally :P)

The LD_LIBRARY_PATH line will also remove the need to copy that library to the system ... which I wouldn't recommend :P

hayward6
08-04-2014, 06:09 PM
Yeah that script has been great! The only thing I seem to be dealing with now is my buffs dropping when I zone. I also have a couple user accounts that have signed on but not created a character, so I suspect some small linger issue there. Right now I am just tweaking things like mysql backups and making management easier.

hayward6
08-04-2014, 07:10 PM
I was able to compress the entire server image down to 1.7GB, so staging a download where someone can go retrieve there own fresh server might not be that difficult... Again, I am not sure if it's really needed though.

vsab
08-05-2014, 04:03 AM
1.7gb? Surely a stripped down linux vm should take up no more than 200MB HD and 64mb RAM? /troll ;)

Shin Noir
08-05-2014, 04:05 AM
1.7gb? Surely a stripped down linux vm should take up no more than 200MB HD and 64mb RAM? /troll ;)

It's actually possible, but not worth the effort. XD

vsab
08-05-2014, 05:28 AM
Heh yeah I used to be a Slackware then Gentoo freak, trying to get it to run on my toaster like netBSD could.

I actually fancy having a stab at running a server on Ubuntu LTS 14.04, because it's half the price of a windows VM on Azure.

Shin Noir
08-05-2014, 06:36 AM
I love slack. ./configure, make, make install or bust!
emerging the world, ehh, not so much.
My debian 7 tutorial is like 99% applicable to ubuntu LTS 14.04 server.

the vm instance on tutorial ends up being about 744mb ram to run the core, LAMP stack, SSHd, and world/eqlaunch 5 zones. each zone is about 25mb, world is ~6mb if I read it correctly. A loaded zone goes up to about 45mb. I should see how much memory goes up having a single character loaded in.

Shin Noir
08-05-2014, 06:51 AM
I would highly recommend using that script (I think I missed a ucs or something, but I'll blame whoever posted it originally :P)

The LD_LIBRARY_PATH line will also remove the need to copy that library to the system ... which I wouldn't recommend :P
Adjusted tutorial to use the script and not the /usr/lib/ hack. :P

hayward6
08-05-2014, 08:42 AM
1.7gb? Surely a stripped down linux vm should take up no more than 200MB HD and 64mb RAM? /troll ;)

hehe the database and map files alone make that impossible :) I am running through this setup again because I can't seem to resolve the buffs dropping at zone in. Seems I may have picked up a copy of the source when it was a little unstable...

hayward6
08-05-2014, 09:02 AM
I had to add a step here... the config.php file was actually named config.pfp.dist, so I changed it to config.php and got the editor working.

22 - Set up PHPEditor
First, we need to inject the schema file for phpeditor
$ sudo mysql -u eq -p -h 127.0.0.1 eq < /var/www/phpeditor/sql/schema.sql
Go to a web browser, access 10.0.0.110/phpeditor/
It should note database is not configured.
$ sudo nano /var/www/phpeditor/config.php
change the dbhost, 127.0.0.1
dbuser change to eq
password change to password
Refresh web page, should show prompt
Log in as admin/password

hayward6
08-05-2014, 09:16 AM
Another interesting issue... I have never used the phpeditor before, so I may just need to familiarize myself...

Could not create logs/sql_log_08-2014.sql! Make sure the logs directory is writeable by your webserver.

Here's another issue I will just add as an edit to save posts. I cannot get the http management portal working. I have used it for years and I know how to turn it on in eqemu_config.xml and forward port 9080... I am just going through the tutorial looking for things like this so we know its 100%

hayward6
08-05-2014, 03:48 PM
I believe I have come to a conclusion... There might be too many small issues going on for me to run a server these days :( I cannot fix the buffs dropping, I cannot speak in /ooc and it looks like chat is not connecting at all, and I even noticed that the default login server is wrong in the eqemu_config.xml file... There are probably a dozen little issues that seem to be all over the forum and I probably don't have the skill to figure out all of them.

Akkadius
08-05-2014, 03:56 PM
I believe I have come to a conclusion... There might be too many small issues going on for me to run a server these days :( I cannot fix the buffs dropping, I cannot speak in /ooc and it looks like chat is not connecting at all, and I even noticed that the default login server is wrong in the eqemu_config.xml file... There are probably a dozen little issues that seem to be all over the forum and I probably don't have the skill to figure out all of them.

It is probably better that we work through them because everyone else is going to run into them and if you just give up then we can't correct the issues.

The buffs issue is related to you missing proper columns in the database, so when you zone the data wasn't actually able to store properly so its not going to be there when the server tries to reassign them to the character.

Check your utils/sql/git/required/ for any missing updates, yours sounds like this:

https://github.com/EQEmu/Server/blob/master/utils/sql/git/required/2014_02_20_buff_update.sql

The default config has login.eqemulator.net which is the right one.

The chatserver not being able to connect could be as simple as eqemu_config.xml settings. Hard to know unless we get some sort of error.

/ooc is a rule setting for minimum level required to chat in /ooc.

1 Chat:GlobalChatLevelLimit 1

demonstar55
08-05-2014, 04:00 PM
You may also need to repair the table. (if I it got corrupted some how from a crash or something)

hayward6
08-05-2014, 04:09 PM
You may also need to repair the table. (if I it got corrupted some how from a crash or something)

I don't know... I have now run through this wiki 3 times now from bare metal and I am getting very good at it :) The database has been dropped and re-downloaded 5 times now and when I look at all the updates they fail to apply because they are already part of it...
Error Code: 1054. Unknown column 'death_save_chance' in 'character_buffs'


in the source that I built this morning downloaded just as described in the wiki the login server information is this...

<loginserver>
<host>eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>

hayward6
08-05-2014, 04:17 PM
I was able to find the chat in ooc minimum and changed it. Testing that now. Wow there are a lot more rules and variables then I remember :)

hayward6
08-05-2014, 04:25 PM
Check your utils/sql/git/required/ for any missing updates, yours sounds like this:


That might be the problem... I don't have a /source/utils/sql/git folder at all... I have an svn folder...

hayward6
08-05-2014, 05:38 PM
Here's one more symptom just so we have a complete list. Every time I create a new character my client crashes and I have to login again to choose the character. I am using SOF

Akkadius
08-05-2014, 05:40 PM
Here's one more symptom just so we have a complete list. Every time I create a new character my client crashes and I have to login again to choose the character. I am using SOF

Use Underfoot client, SoF has aids

hayward6
08-05-2014, 06:25 PM
Use Underfoot client, SoF has aids

haha, I actually have been very good about downloading all of the supported clients as they come along, so I have Titanium - Rain of Fear to test out. I will work on that next :)

hayward6
08-05-2014, 06:52 PM
Well, Rain of Fear seems to work ok, but the buffs are still dropping at zone.

Shin Noir
08-05-2014, 08:25 PM
When I get home and get some time, I'll go through all your topics and see if I can help you. Don't spend too much time debugging your challenges, just tell me your issues and I'll help resolve them if I can replicate them. :)

E.g. I didn't test buffs if they dropped during zone. If I can repeat it, no reason for you to debug it. If I can't repeat it, it may be isolated on the steps. :)

Here's my list:

Every time I create a new character my client crashes and I have to login again to choose the character. I am using SOF. <-- I use UF, I have titanium and SOF, I'll test and see if I can repeat your challenge with my instance.
"Check your utils/sql/git/required/ for any missing updates, yours sounds like this:"
That might be the problem... I don't have a /source/utils/sql/git folder at all... I have an svn folder... Yep, the instructions is using svn copy. (This was based on the original debian one). I'll look into this more, and see which is newer/preferred (#1 Issue I have is there's a lot of deprecated code available online that isn't kept up to date)
<host>eqemulator.net</host><port>5998</port> <-- should login.eqemulator.net for UF, I'll verify for SoF



I think I missed some topics, I'll review the comments when I get home. :)

demonstar55
08-05-2014, 08:51 PM
It sounds like you're using old source with new DB, which will cause issues

Shin Noir
08-05-2014, 09:22 PM
@demonstar:
I was following
http://wiki.eqemulator.org/p?EQEmu_on_Debian_6_VM

For my new wiki, here:
http://wiki.eqemulator.org/p?EQEmu_on_Debian_7_Virtualbox

specifically,
$ svn co http://projecteqemu.googlecode.com/svn/ eqemu
$ svn co http://eqemu-maps.googlecode.com/svn/trunk/ maps

Looks like : https://code.google.com/p/projecteqemu/source/list is feb 17th 2013

Hmm, I need to change it to this I think: https://github.com/EQEmu/Server/

Right?

Akkadius
08-05-2014, 10:04 PM
Yeah were on Git now, definitely not SVN.

That's a problem.

Shin Noir
08-05-2014, 11:56 PM
Yep, I'm writing revisions to the instructions. Give me a bit, hayward, i'm going to compile and do some testing.
To give an idea of what i'm adding:
<li>$ sudo apt-get install git </li>
<li>$ rm -rf ~/source/*</li>
<li>$ rm -rf ~/eqemu/</li>
<li>$ git clone git://github.com/EQEmu/Server.git eqemu</li>
<li>$ cd ~/eqemu/</li>
<li>sudo apt-get install libboost-dev</li>
<li>sudo apt-get install liblua5.1-dev</li>
<li>cmake .</li>
<li>make</li>


But I'm not 100% sure libboost-dev and liblua5.1-dev, they seem to make cmake happy.
libboost1.49-dev libicu48 <-- installed as default on deb7

If any dev wants to confirm that, it'd be neat. Trying to keep my process simple enough.

Shin Noir
08-06-2014, 12:11 AM
on underfoot, confirmed buffs stay after zoning.. I'll revise the instructions, and give a specific instruction for you hayward based on where you are right now.

I went through the wiki and did remedies to try to clean this up. I'm going to probably do another from-scratch to ensure I didn't miss any steps. And also make a new VM that has the maps stripped out, it'd be real small for akkadius. (Make a simple shell srcipt to get the maps later, since maps is 3.9 of the 5 gig image).

Shin Noir
08-06-2014, 01:30 AM
Looks like image is 1 gig. Let me see about tweaking the size.. Doing some final testing with my new steps, too, ensuring no other bugs.

demonstar55
08-06-2014, 03:04 AM
http://bpaste.net/show/172372/ those are the notes I took last time I did a debian install (some of it is probably a bit out of date?)

hayward6
08-06-2014, 07:02 AM
As soon as the wiki is where you want it I will also run another bare metal install to see if we have it all worked out. The wiki is simple to follow so the only real time constraints are the downloads. I cloned my server at the point before adding anything directly emulator based as well, so I can always start there on a rebuild.

This is why I love this community! Last night my wife asked why I was still messing with my server when I can just play on another... I told her it's because I am trying to help where I can, I love it, and these guys are talented and amazing to work with!

hayward6
08-06-2014, 04:46 PM
Buffs are no longer dropping when I zone :) And the emulator is running much faster! Even the loading and zone times are drastically reduced!

hayward6
08-06-2014, 05:06 PM
...And I don't have any npc's :) It's so peaceful... I didn't even notice until track had no results. Going to restart the DB server and then just go from there all the way to a re-source.

hayward6
08-06-2014, 05:49 PM
I'm throwing in the towel for tonight. I just completed two complete database sources both times from new and separate downloads, and I simply don't have any npc's... I think maybe I have been at this for too long now. I have never had this problem before.

This is going to require a complete restart and I am just not feeling invested tonight.

Akkadius
08-06-2014, 06:02 PM
I'm throwing in the towel for tonight. I just completed two complete database sources both times from new and separate downloads, and I simply don't have any npc's... I think maybe I have been at this for too long now. I have never had this problem before.

This is going to require a complete restart and I am just not feeling invested tonight.

Once again, this is a database related issue.

Did you do a database source from ProjectEQ's dump?

You're missing a SQL source that adds or changes a column in the npc_types table.

Are you also running the latest binaries from Git and not SVN ?

hayward6
08-06-2014, 06:12 PM
Once again, this is a database related issue.

Did you do a database source from ProjectEQ's dump?

You're missing a SQL source that adds or changes a column in the npc_types table.

Are you also running the latest binaries from Git and not SVN ?

Yeah this was all correct as far as source and sql goes. I know it's db related, but I don't know where... Maybe now that I have the right db I should look for updates? Not one to walk away, I am going to spend a nit more time on it tonight :)

Akkadius
08-06-2014, 06:21 PM
Yeah this was all correct as far as source and sql goes. I know it's db related, but I don't know where... Maybe now that I have the right db I should look for updates? Not one to walk away, I am going to spend a nit more time on it tonight :)

Well you should see what it barks about in the zone logs, it will specifically spit out the MySQL error.

hayward6
08-06-2014, 06:38 PM
Well you should see what it barks about in the zone logs, it will specifically spit out the MySQL error.

Sure enough!

line after line of this...
Error loading NPCs from database. Bad query: #1054: Unknown column 'npc_types.am
mo_idfile' in 'field list'

hayward6
08-06-2014, 06:45 PM
Looks like my problem lies in the required updates in the git folder. I found this one that seems to be just what I need :)

== 07/10/2014 ==
Kayen: Updated table npc_spells to now support defensive and ranged procs.
Note: Proc rate modifier work as it does for spell effects (ie 200 = 200% baseline chance modifier)
Table is also now contains 12 AI spell casting variables that can be set to fine tune casting behaviors per spell set.
Global default rules have also been added that can further fine tune all content if no specific variables are set.

Descriptions of new AI casting fields in npc_spells
'fail_recast' AI spell recast time(MS) when an spell is cast but fails (ie stunned)
'engaged_no_sp_recast_min' AI spell recast time(MS) checked when no spell is cast while engaged in combat. (min time in random)
'engaged_no_sp_recast_max' AI spell recast time(MS) checked when no spell is cast while engaged in combat. (max time in random)
'engaged_b_self_chance' Chance during first AI Cast check to do a beneficial spell on self (ie check to heal self)
'engaged_b_other_chance' Chance during second AI Cast check to do a beneficial spell on others.(ie check to heal others)
'engaged_d_chance' 'Chance during third AI Cast check to do a determental spell on others (ie check to nuke others)
'pursue_no_sp_recast_min' AI spell recast time(MS) checked when no spell is cast while chasing target. (min time in random)
'pursue_no_sp_recast_max' AI spell recast time(MS) checked when no spell is cast while chasing target. (max time in random)
'pursue_d_chance' Chance while chasing target to cast a detrimental spell.
'idle_no_sp_recast_min' AI spell recast time(MS) checked when no spell is cast while idle. (min time in random)
'idle_no_sp_recast_max' AI spell recast time(MS) checked when no spell is cast while idle. (max time in random)
'idle_b_chance' Chance to cast a beneficial spell while idle (ie cast heal on self while out of combat).

Kayen: Updated table npc_types, adding field 'ranged_type' and 'ammo_idfile'
'ranged_type' Will set what skill / animation is used when NPC uses a ranged attacked (special ability 11)
'ammo_idfile' Will set what projectile graphic an NPC uses in a ranged attacked (special ability 11) Format IT#### (same as item 'idfile')
(*Set to IT11118 for some fun*)
Added parameters: SPECATK_RANGED_ATK = 11
Param0: Min Ranged distance (default: 25)
Param1: Max Ranged distance (default: 250)
Param2: Percent Chance to Hit modifier
Param3: Percent Total Damage modifier

Kayen: Updated to Chance to Hit code with how bonuses are applied to be consistent for all effects.
Added field to npc_types 'Avoidance' which will modify chance to avoid melee
Added rules to set max and min chance to hit from melee/ranged (Default 95% / 5%)

Required SQL: utils/sql/git/required/2014_07_10_npc_spells.sql
Optional SQL: utils/sql/git/optional/2014_07_10_AICastingRules.sql

Akkadius
08-06-2014, 06:53 PM
You found it! You're the worlds greatest detective!

http://www.youtube.com/watch?v=enOHraf3LEk#t=180

In all seriousness, that's what it is all about.

Once you source in the update that corresponds with it you should be good to go sir.

hayward6
08-06-2014, 06:54 PM
Success! I am going to have some fun now and see if there is anything else I missed.

This may sound dumb but I would add a line in the wiki about checking and running required updates. I had just assumed that the db was fully updated because it was a fresh download, but now I know different ;) I will continue to report any findings.

demonstar55
08-06-2014, 07:06 PM
I think the issue is that cavedude can't always update the server so the DB might be missing an update sometimes :P

Shin Noir
08-06-2014, 07:30 PM
Success! I am going to have some fun now and see if there is anything else I missed.

This may sound dumb but I would add a line in the wiki about checking and running required updates. I had just assumed that the db was fully updated because it was a fresh download, but now I know different ;) I will continue to report any findings.

No suggestions are dumb, my goal with my step by steps is to make it easy even as a non-linux guru. I'll probably hit this up when I get home late tonight. :)

thanks for all your hard work hayward!
And thanks to all other developers with any tips they have about my build process. I took in your steps demonstar55 to ensure their implementation was included on mine.

Akkadius
08-06-2014, 08:03 PM
Yes, it is a serious goal to make getting a server setup easy and keep it easy. It is something I look to be addressing fairly soon here. So Shin's contribution to the Linux guide is amazing.

Thanks all

hayward6
08-07-2014, 06:48 AM
So, now that internal things seem to be working properly. Here is a short list of the management issues I am having.

1. cannot access http to manage server. I have the 9080 port forwarded but it just doesn't seem to even acknowledge a listening application, so I never get to a login screen (I used to like this portal for a quick description of who is logged on and for the ability to lock and unlock the server remotely)
2. phpeditor is still messed up, but I just remembered that I never sourced in the new sql statement from the proper database.
3. everytime I zone I see a message in red about the chat channel being disconnected. This might be nothing, but I did see another thread that mentioned changing the address in the emu config from channel.eqemulator.net to the host address. I changed it to 127.0.0.1 and I haven't seen any change in that. Chat seems to be working fine though...

Shin Noir
08-07-2014, 04:42 PM
1. I'm not familiar with the 9080 system, can you clarify this system? I wrote a preliminary instruction of setup on step 25 (Remote Web Management), it isn't binding the port properly however, maybe a dev can confirm it's setup? (Can't find it in windows setup instructions either).
2. Yeah, the phpeditor step in my instructions should get it working, I've been using it with the steps I noted.
3. ucs isn't started/configured with my setup, I can add that real quick.
I added step 24, which sets up Universal Chat Service (ucs). I didn't fully configure the general channels etc, but it at least starts up it appears.

When we get this all cleaned up and done, I'll rewrite that startup script you noted to include my config settings, and also how to auto start your server on server bootup, but waiting for all bugs to be found.
I'll also likely remake my videos once all instructions are done and solidified.
And I'm also planning to EXPLAIN each section soon, instead of just giving steps.
And lastly, I'll probably have a step talking about how to use iptables to increase security of what ports you're forwarding.

Let me know of any other issues, and if above helps you out.

Shin Noir
08-08-2014, 02:48 AM
I think latest is giving no NPC's.

I debugged with this:
$ tail -f ~/server/logs/zone-dynamic_05.log
Error loading NPCs from database. Bad query: #1054: Unknown column 'npc_types.ammo_idfile' in 'field list'

peqbeta_2014-07-23-02-01.tar.gz inside peqbeta*.sql file line 37124:
CREATE TABLE `npc_types` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`lastname` varchar(32) DEFAULT NULL,
`level` tinyint(2) unsigned NOT NULL DEFAULT '0',
`race` smallint(5) unsigned NOT NULL DEFAULT '0',
`class` tinyint(2) unsigned NOT NULL DEFAULT '0',
`bodytype` int(11) DEFAULT NULL,
`hp` int(11) NOT NULL DEFAULT '0',
`mana` int(11) NOT NULL DEFAULT '0',
`gender` tinyint(2) unsigned NOT NULL DEFAULT '0',
`texture` tinyint(2) unsigned NOT NULL DEFAULT '0',
`helmtexture` tinyint(2) unsigned NOT NULL DEFAULT '0',
`size` float NOT NULL DEFAULT '0',
`hp_regen_rate` int(11) unsigned NOT NULL DEFAULT '0',
`mana_regen_rate` int(11) unsigned NOT NULL DEFAULT '0',
`loottable_id` int(11) unsigned NOT NULL DEFAULT '0',
`merchant_id` int(11) unsigned NOT NULL DEFAULT '0',
`alt_currency_id` int(11) unsigned NOT NULL DEFAULT '0',
`npc_spells_id` int(11) unsigned NOT NULL DEFAULT '0',
`npc_spells_effects_id` int(11) unsigned NOT NULL DEFAULT '0',
`npc_faction_id` int(11) NOT NULL DEFAULT '0',
`adventure_template_id` int(10) unsigned NOT NULL DEFAULT '0',
`trap_template` int(10) unsigned DEFAULT '0',
`mindmg` int(10) unsigned NOT NULL DEFAULT '0',
`maxdmg` int(10) unsigned NOT NULL DEFAULT '0',
`attack_count` smallint(6) NOT NULL DEFAULT '-1',
`npcspecialattks` varchar(36) NOT NULL DEFAULT '',
`special_abilities` text NOT NULL,
`aggroradius` int(10) unsigned NOT NULL DEFAULT '0',
`assistradius` int(10) unsigned NOT NULL DEFAULT '0',
`face` int(10) unsigned NOT NULL DEFAULT '1',
`luclin_hairstyle` int(10) unsigned NOT NULL DEFAULT '1',
`luclin_haircolor` int(10) unsigned NOT NULL DEFAULT '1',
`luclin_eyecolor` int(10) unsigned NOT NULL DEFAULT '1',
`luclin_eyecolor2` int(10) unsigned NOT NULL DEFAULT '1',
`luclin_beardcolor` int(10) unsigned NOT NULL DEFAULT '1',
`luclin_beard` int(10) unsigned NOT NULL DEFAULT '0',
`drakkin_heritage` int(10) NOT NULL DEFAULT '0',
`drakkin_tattoo` int(10) NOT NULL DEFAULT '0',
`drakkin_details` int(10) NOT NULL DEFAULT '0',
`armortint_id` int(10) unsigned NOT NULL DEFAULT '0',
`armortint_red` tinyint(3) unsigned NOT NULL DEFAULT '0',
`armortint_green` tinyint(3) unsigned NOT NULL DEFAULT '0',
`armortint_blue` tinyint(3) unsigned NOT NULL DEFAULT '0',
`d_meele_texture1` int(10) unsigned NOT NULL DEFAULT '0',
`d_meele_texture2` int(10) unsigned NOT NULL DEFAULT '0',
`prim_melee_type` tinyint(4) unsigned NOT NULL DEFAULT '28',
`sec_melee_type` tinyint(4) unsigned NOT NULL DEFAULT '28',
`runspeed` float NOT NULL DEFAULT '0',
`MR` smallint(5) NOT NULL DEFAULT '0',
`CR` smallint(5) NOT NULL DEFAULT '0',
`DR` smallint(5) NOT NULL DEFAULT '0',
`FR` smallint(5) NOT NULL DEFAULT '0',
`PR` smallint(5) NOT NULL DEFAULT '0',
`Corrup` smallint(5) NOT NULL DEFAULT '0',
`PhR` smallint(5) unsigned NOT NULL DEFAULT '0',
`see_invis` smallint(4) NOT NULL DEFAULT '0',
`see_invis_undead` smallint(4) NOT NULL DEFAULT '0',
`qglobal` int(2) unsigned NOT NULL DEFAULT '0',
`AC` smallint(5) NOT NULL DEFAULT '0',
`npc_aggro` tinyint(4) NOT NULL DEFAULT '0',
`spawn_limit` tinyint(4) NOT NULL DEFAULT '0',
`attack_speed` float NOT NULL DEFAULT '0',
`findable` tinyint(4) NOT NULL DEFAULT '0',
`STR` mediumint(8) unsigned NOT NULL DEFAULT '75',
`STA` mediumint(8) unsigned NOT NULL DEFAULT '75',
`DEX` mediumint(8) unsigned NOT NULL DEFAULT '75',
`AGI` mediumint(8) unsigned NOT NULL DEFAULT '75',
`_INT` mediumint(8) unsigned NOT NULL DEFAULT '80',
`WIS` mediumint(8) unsigned NOT NULL DEFAULT '75',
`CHA` mediumint(8) unsigned NOT NULL DEFAULT '75',
`see_hide` tinyint(4) NOT NULL DEFAULT '0',
`see_improved_hide` tinyint(4) NOT NULL DEFAULT '0',
`trackable` tinyint(4) NOT NULL DEFAULT '1',
`isbot` tinyint(4) NOT NULL DEFAULT '0',
`exclude` tinyint(4) NOT NULL DEFAULT '1',
`ATK` mediumint(9) NOT NULL DEFAULT '0',
`Accuracy` mediumint(9) NOT NULL DEFAULT '0',
`slow_mitigation` smallint(4) NOT NULL DEFAULT '0',
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`maxlevel` tinyint(3) NOT NULL DEFAULT '0',
`scalerate` int(11) NOT NULL DEFAULT '100',
`private_corpse` tinyint(3) unsigned NOT NULL DEFAULT '0',
`unique_spawn_by_name` tinyint(3) unsigned NOT NULL DEFAULT '0',
`underwater` tinyint(3) unsigned NOT NULL DEFAULT '0',
`isquest` tinyint(3) NOT NULL DEFAULT '0',
`emoteid` int(10) unsigned NOT NULL DEFAULT '0',
`spellscale` float NOT NULL DEFAULT '100',
`healscale` float NOT NULL DEFAULT '100',
`no_target_hotkey` tinyint(1) unsigned NOT NULL DEFAULT '0',
`armtexture` tinyint(2) NOT NULL DEFAULT '0',
`bracertexture` tinyint(2) NOT NULL DEFAULT '0',
`handtexture` tinyint(2) NOT NULL DEFAULT '0',
`legtexture` tinyint(2) NOT NULL DEFAULT '0',
`feettexture` tinyint(2) NOT NULL DEFAULT '0',
`light` tinyint(2) NOT NULL DEFAULT '0',
`walkspeed` tinyint(2) NOT NULL DEFAULT '0',
`peqid` int(11) NOT NULL DEFAULT '0',
`unique_` tinyint(2) NOT NULL DEFAULT '0',
`fixed` tinyint(2) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=999216 DEFAULT CHARSET=latin1 PACK_KEYS=0;

ALTER TABLE `eq`.`npc_types` ADD COLUMN `ammo_idfile` INT NULL DEFAULT 0 AFTER `fixed`;


then got Error loading NPCs from database. Bad query: #1054: Unknown column 'npc_types.ranged_type' in 'field list'

so,
ALTER TABLE `eq`.`npc_types` ADD COLUMN `ammo_idfile` INT NULL DEFAULT 0 AFTER `fixed`;

Error loading NPCs from database. Bad query: #1054: Unknown column 'npc_types.Avoidance' in 'field list'

ALTER TABLE `eq`.`npc_types` ADD COLUMN `Avoidance` INT NULL DEFAULT 0 AFTER `fixed`;


And, now we are in business.. NPC's load. Obviously, this is because peqbeta's SQL tables doesn't have all the fields that the latest EQEMU is expecting

hayward6
08-08-2014, 07:18 AM
I think latest is giving no NPC's....

To get the NPC's back all I had to do was source the required sql code from the utils/sql/required folder. It was the ncp_types one... I think we discussed that a page or two back. This thread is getting long :)

hayward6
08-08-2014, 08:00 AM
I'm not 100% certain, but I don't think anyone is able to play on my server. I have a bunch of empty accounts, and the few characters that are created are all at the same location in tutorialb. I am going to try and hit it from outside today and see what I get.

hayward6
08-08-2014, 08:19 AM
I'm not 100% certain, but I don't think anyone is able to play on my server. I have a bunch of empty accounts, and the few characters that are created are all at the same location in tutorialb. I am going to try and hit it from outside today and see what I get.

Yeah, server disconnect after character selection. I have tried to create a character, and login as an established character and both disconnect after a few seconds of waiting. I am going to check my port forwarding since this is not an issue on my network.

hayward6
08-08-2014, 08:56 AM
This is weird... It seems that my router does not forward port ranges... It has a place for it, but any range I put in does not work. Adding the entire server to the DMZ for now and I am up and running. This is not related to the wiki. Looks like I need a better router :)

Kingly_Krab
08-08-2014, 04:58 PM
I use a Netgear WNR2000v4 and it allows ranges and I have no problem with port-forwarding, here's (http://www.bestbuy.com/site/netgear-wireless-n-router/8998506.p?id=1218007383662&skuId=8998506) a link to a similar version.

Shin Noir
08-08-2014, 05:06 PM
I'd maybe check:
Do you have DMZ set? Some times DMZ screws with port range.
Do you have a single port forwarded that the port range includes? Some times, port range can be lesser priority than a single port.

And yeah, let us know the router details, there's wizards online.

To debug your setup, seeing if ports are being listened to on your server:
$ netstat -vatn
Here's how mine looks:
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:44258 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:59337 127.0.0.1:3306 ESTABLISHED
tcp 0 0 10.0.0.111:22 10.0.0.105:52937 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59343 ESTABLISHED
tcp 0 0 127.0.0.1:40090 127.0.0.1:9000 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59339 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59179 ESTABLISHED
tcp 0 0 127.0.0.1:59345 127.0.0.1:3306 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59332 ESTABLISHED
tcp 0 0 127.0.0.1:40100 127.0.0.1:9000 ESTABLISHED
tcp 0 0 127.0.0.1:40086 127.0.0.1:9000 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59345 ESTABLISHED
tcp 0 0 127.0.0.1:59339 127.0.0.1:3306 ESTABLISHED
tcp 0 0 127.0.0.1:9000 127.0.0.1:40100 ESTABLISHED
tcp 0 0 127.0.0.1:9000 127.0.0.1:40090 ESTABLISHED
tcp 0 0 127.0.0.1:40092 127.0.0.1:9000 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59337 ESTABLISHED
tcp 0 0 127.0.0.1:59179 127.0.0.1:3306 ESTABLISHED
tcp 0 0 127.0.0.1:40096 127.0.0.1:9000 ESTABLISHED
tcp 0 0 127.0.0.1:59180 127.0.0.1:3306 ESTABLISHED
tcp 0 0 127.0.0.1:9000 127.0.0.1:40086 ESTABLISHED
tcp 0 0 127.0.0.1:40088 127.0.0.1:9000 ESTABLISHED
tcp 0 0 127.0.0.1:9000 127.0.0.1:40098 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59347 ESTABLISHED
tcp 0 0 127.0.0.1:9000 127.0.0.1:40092 ESTABLISHED
tcp 0 0 127.0.0.1:59343 127.0.0.1:3306 ESTABLISHED
tcp 0 0 127.0.0.1:59332 127.0.0.1:3306 ESTABLISHED
tcp 0 96 10.0.0.111:22 10.0.0.105:54820 ESTABLISHED
tcp 0 0 127.0.0.1:3306 127.0.0.1:59180 ESTABLISHED
tcp 0 0 10.0.0.111:22 10.0.0.105:61247 ESTABLISHED
tcp 0 0 127.0.0.1:59347 127.0.0.1:3306 ESTABLISHED
tcp 0 0 127.0.0.1:9000 127.0.0.1:40088 ESTABLISHED
tcp 0 0 127.0.0.1:40098 127.0.0.1:9000 ESTABLISHED
tcp 0 0 10.0.0.111:50612 66.55.145.2:5998 ESTABLISHED
tcp 0 0 127.0.0.1:9000 127.0.0.1:40096 ESTABLISHED
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 :::52100 :::* LISTEN

and netstatus -vaun

Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 0.0.0.0:9000 0.0.0.0:*
udp 0 0 0.0.0.0:7000 0.0.0.0:*
udp 0 0 0.0.0.0:7001 0.0.0.0:*
udp 0 0 0.0.0.0:7002 0.0.0.0:*
udp 0 0 0.0.0.0:7003 0.0.0.0:*
udp 0 0 0.0.0.0:7004 0.0.0.0:*
udp 0 0 0.0.0.0:974 0.0.0.0:*
udp 0 0 127.0.0.1:1006 0.0.0.0:*
udp 0 0 0.0.0.0:9675 0.0.0.0:*
udp 0 0 0.0.0.0:7778 0.0.0.0:*
udp 0 0 0.0.0.0:40812 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp6 0 0 :::974 :::*
udp6 0 0 :::111 :::*
udp6 0 0 :::32999 :::*
udp6 0 0 :::59675 :::*

This will let you know if other people can connect to a port that should be followed:
http://www.subnetonline.com/pages/network-tools/online-port-scanner.php

vsab
08-28-2014, 05:48 AM
Ignore-Solved

Shin Noir
05-10-2015, 02:56 AM
Sorry for this necro post, but I'm just noting that I'm planning to make an easier, all-platform solution for getting eqemu up. The new setup will take as little as 5 steps.

Rikon
05-10-2015, 09:06 AM
That would be great.