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

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

Reply
 
Thread Tools Display Modes
  #16  
Old 08-25-2010, 06:50 PM
Posix
Fire Beetle
 
Join Date: Aug 2010
Posts: 14
Default

Everything is looking good; I have inventory, and things appear to be running smoothly. Thanks for the help amraist!

Looking over erde's BSD patches, I see I did almost exactly what erde did, except instead of switching up to an equivalent abs function, I opted to simply flip the sign of the integers, given they're all known to be below 0 and there's no even-root calls.
Reply With Quote
  #17  
Old 08-26-2010, 08:40 AM
amraist
Fire Beetle
 
Join Date: Aug 2005
Posts: 29
Default

Glad to hear its working for you. I have a startup script I wrote if you are interested. It works except on startup it seems(last time my jail started, my launcher didn't startup), and I haven't gotten around to tracking that down.
Reply With Quote
  #18  
Old 08-26-2010, 08:39 PM
Posix
Fire Beetle
 
Join Date: Aug 2010
Posts: 14
Default

I certainly won't turn down free startup scripts

It seems I may have spoken too soon about everything working great. In my last post, I logged in, saw I had inventory, figured everything was great, logged out and went to sleep. Since, I have discovered I am now unable to move, or if I can move there's no gravity. And no sky. I suspect something is up with the zone launch script.
Reply With Quote
  #19  
Old 08-27-2010, 09:43 AM
amraist
Fire Beetle
 
Join Date: Aug 2005
Posts: 29
Default

Did download the maps?
Reply With Quote
  #20  
Old 08-27-2010, 11:10 AM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Since your source is at a higher revision than your database, you should check:

http://code.google.com/p/projecteqem.../utils/sql/svn

for any SQL with prefixes between your database and source revision numbers and source them into your database.

The particular problem you are having likely requires:

http://code.google.com/p/projecteqem...svn1618&r=1618
Reply With Quote
  #21  
Old 08-27-2010, 12:09 PM
Posix
Fire Beetle
 
Join Date: Aug 2010
Posts: 14
Default

OK, I think I'm starting to understand the correlation between DB and EQEmu revisions here, perhaps you can confirm?

Even when doing a brand-new install, simply installing the base peqdb as obtained via CVS is not sufficient. The super-mega DB, peqdb_rev1589.sql, is applied. Then, any sql file with a revision number listing in the utils/sql/svn directory of the source is applied? I just want to make sure I understand this going forward.

Thank you for the help!
Reply With Quote
  #22  
Old 08-27-2010, 01:04 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

When Cavedude releases a version of the PEQ database, it is generally compatible with the current version of the server source code on the day he releases it.

As a new PEQ database is only generally released every month or two, any source code changes that are made in between PEQ DB releases, that require a database change,
will require you to source in the changes from the source code SVN, utils/sql/svn directory.

E.g. July 9th, CD releases PEQ DB Rev 1589, compatible with the latest available source code on that date, Rev 1589.

Source code developers commit changes over the following days and weeks, some of which require database changes, e.g. I commit source
Rev 1618 on 8th August which requires a change to the zone table structure.

If you upgrade from Rev 1589 to Rev 1618 of the source (or are a new user who has just installed the Rev1589 DB and compiled the Rev1618 source),
then you will need to apply any SQL changes that have have prefixes betwen 1590 and 1618 from the source code SVN.
Reply With Quote
  #23  
Old 08-27-2010, 02:05 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

You only want to apply any SQL from that folder for revisions that came AFTER the db revision you are running. So, in your case that would be any SQL higher than 1589. Also, if there are any SQL files for a revision LATER than the actual source code revision you are running, you do not want to apply those.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #24  
Old 08-28-2010, 03:17 AM
Posix
Fire Beetle
 
Join Date: Aug 2010
Posts: 14
Default

Thanks, both of those explanations make a lot of sense.

With those sql updates applied, the world and zones are now running properly.
I can move.
I can interact with NPC's.
I have inventory.
There is gravity.
There is sky.
There is combat.
There is a brass key.

> get key
Reply With Quote
  #25  
Old 08-29-2010, 09:44 AM
amraist
Fire Beetle
 
Join Date: Aug 2005
Posts: 29
Default

Here is my startup script. It will start world, ucs, eqlogin(login server) and will use eqlauncher to start up zones. So you will need to have one setup in the database. If you notice any bugs, please let me know.

Code:
#!/bin/sh

# PROVIDE: eqemu
# REQUIRE: LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="eqemu"
start_cmd="${name}_start $2"
stop_cmd="${name}_stop $2"
restart_cmd="${name}_restart $2"
status_cmd="${name}_status $2"
extra_commands="status cleanipc"
determine_procs_cmd="eqemu_determine_procs"
cleanipc_cmd="${name}_cleanipc"
eqemu_enable=${eqemu_enable:-"YES"}
eqemu_home=${eqemu_home:-"/usr/local/eqemu"}
eqemu_user=${eqemu_user:-"eqemu"}
eqemu_group=${eqemu_group:-"eqemu"}
eqemu_world=${eqemu_world:-"NO"}
eqemu_eqlaunch=${eqemu_eqlaunch:-"NO"}
eqemu_eqlaunch_args=${eqemu_eqlaunch_args:-"zone"}
eqemu_ucs=${eqemu_ucs:-"NO"}
eqemu_eqlogin=${eqemu_eqlogin:-"NO"}
eqemu_world_args=${eqemu_world_args:-""}
eqemu_eqlogin_args=${eqemu_eqlogin_args:-""}
eqemu_ucs_args=${eqemu_ucs_args:-""}
rcvar=`set_rcvar`
load_rc_config $name

eqemu_determine_procs()
{
        unset "eqemu_procs"
        if  [ "${_rc_prefix}" = "one" ]  ; then
                case "$1" in
                        eqlogin)
                                eqemu_procs=$1
                                ;;
                        world)
                                eqemu_procs=$1
                                ;;
                        eqlaunch)
                                eqemu_procs=$1
                                ;;
                        ucs)
                                eqemu_procs=$1
                                ;;
                        *)
                                echo "Usage: ./eqemu one(start|stop|restart) (world|eqlaunch|ucs|eqlogin) you must also specify a valid daemon."
                                ;;
                esac
        else
                if checkyesno eqemu_eqlogin ; then 
                        eqemu_procs="${eqemu_procs}eqlogin "
                fi
                if checkyesno eqemu_world ; then
                        eqemu_procs="${eqemu_procs}world "
                fi
                if checkyesno eqemu_eqlaunch ; then
                        eqemu_procs="${eqemu_procs}eqlaunch "
                fi
                if checkyesno eqemu_ucs ; then
                        eqemu_procs="${eqemu_procs}ucs "
                fi
        fi
}
eqemu_cleanipc()
{
        eqemu_procs="world eqlaunch zone"
        for proc in ${eqemu_procs}; do
                if [ "`check_pidfile /var/run/eqemu${proc}.pid $eqemu_home/$proc`" != "" ] ; then
                        echo "Processes running; skipping cleanipc..."
                        return
                fi
        done
        echo "Cleaning IPC..."
        ${eqemu_home}/cleanipc > /dev/null 2>&1
}
eqemu_start()
{
        eqemu_determine_procs $1
        for name in ${eqemu_procs}; do 
                echo "Starting EQEmu ${name}..."
                cd ${eqemu_home}
                eval eqprocargs=\$eqemu_${name}_args
                if ! [ -e /var/run/eqemu_${name}.pid ]; then
                        touch /var/run/eqemu_${name}.pid
                        chown $eqemu_user:$eqemu_user /var/run/eqemu_${name}.pid
                fi
                /usr/sbin/daemon -f -p /var/run/eqemu_${name}.pid -u $eqemu_user $eqemu_home/$name $eqprocargs
        done
}
eqemu_stop()
{
        unset "stop_cmd"
        eqemu_determine_procs $1
        eqemu_procs=$(reverse_list ${eqemu_procs})
        for name in ${eqemu_procs}; do
                command=$eqemu_home/$name
                run_rc_command stop
        done
}
eqemu_restart()
{
        eqemu_restart_prefix=${_rc_prefix}
        run_rc_command ${eqemu_restart_prefix}stop $1
        if [ "${eqemu_restart_prefix}" != "one" ] ; then run_rc_command ${_rc_prefix}cleanipc $1; fi
        run_rc_command ${eqemu_restart_prefix}start $1
}
eqemu_status()
{
        unset "status_cmd"
        eqemu_determine_procs $1
        for name in ${eqemu_procs}; do
                command=$eqemu_home/$name
                run_rc_command status
        done
}
                        
run_rc_command "$1"
Reply With Quote
  #26  
Old 09-07-2010, 07:27 AM
morgoth2
Fire Beetle
 
Join Date: Oct 2003
Posts: 4
Default

Quote:
Originally Posted by Posix View Post
Found it! zone/perl_object.cpp was not being compiled. Added an entry into the Makefile (and the Makefile.in and Makefile.am in the parent zone directory for future proofing) for perl_object and now it compiles and runs as expected.
and exactly how did you do that? im haveing the same problem.
Reply With Quote
  #27  
Old 09-07-2010, 09:38 AM
amraist
Fire Beetle
 
Join Date: Aug 2005
Posts: 29
Default

I use grep to find where the missing function is defined, and then add that file to the makefiles. You can also figure it out if you are paying attention to the svn logs. If you are using erde's autobuild, here is a patch you can apply after extracting and before running any of his autobuild commands:
Code:
Index: zone/Makefile.am
===================================================================
--- zone/Makefile.am (revision 33)
+++ zone/Makefile.am (revision 63)
@@ -221,6 +221,7 @@
        perl_mob.h \
        perl_npc.cpp \
        perl_npc.h \
+       perl_object.cpp \
        perl_perlpacket.cpp \
        perl_perlpacket.h \
        perl_PlayerCorpse.cpp \
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 04:52 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3