PDA

View Full Version : Compiling version of 0.2.0


theCoder
01-24-2002, 04:06 PM
I've fixed the compile errors in the 0.2.0 version and gotten it at least compiling on my Linux machine (Mandrake 8.1). Unfortunately, due to some DirectX issues on my Windows computer (upgrading to 8.1 was a bad idea and downgrading didn't work completely), I can't run Everquest to test it, but it seems to run. You can get the whole package at
http://mland.dhs.org/~scott/software/EQEmu-0.2.0.tar.gz

I can't guarentee it will work for anyone (I can't even tell if it would work for me :) ), but it might give some people stuggling to get the emu compiling some ideas.

CoderJ
01-27-2002, 03:54 PM
Hmm, be nice if this compiled for me. I'll test it tonight and see if it runs. Be nice if we could get *nix friendly releases again, but I know it can be hard porting the code over.

Ah well, good things come to those that wait (I think ;))

Chris319
01-28-2002, 04:26 AM
Well, i have installed SUSE Linux on another partition so i can mess around with the OS. I am complete newbie to Linux. I still am trying to figure out how to run the Everquest, is it possible or with the Linux version can one only run a world server for the EMU? Any pointers or tips you guys might have will be helpfull. I f anyone happens to have the old Linux install guide saved please let me know, it would come in very handy for me since i have no idea what i am doing.

Chris319

theCoder
01-28-2002, 06:25 AM
I probably should have included a README or INSTALL file in the tarball, but since I didn't I'll put some general instructions here:

1) Download the tarball:
$ wget http://mland.dhs.org/~scott/software/EQEmu-0.2.0.tar.gz

2) extract it:
$ tar -xzvf EQEmu-0.2.0.tar.gz

3) I included compiled binaries (somewhat by accident), so compiling is optional. You may want to do it anyway, just in case there are binary incompatabilities with different library versions:
$ cd EQEmu-0.2.0/world
$ make clean && make
... output here ...
$ cd ./zone
$ make clean && make

4) Go to the bin directory. Edit the db.ini file to match how you want to access the database. Run the script ./makedb. It looks at the db.ini file to create the correct database name and user and also imports the db.sql file. It may prompt you for the mysql root password (probably not your system root password).

5) Edit the eqemud script to contain the IP address you want to listen on (chage the value for PUB_IP). There may be other errors in this script... I'm not sure if I'm starting the zone server correctly (like I said, I can't run EQ right now and unfortunately, I don't really have time to fix that :( ). Note that this script is based on the RedHat style of daemon starting, so it may not work on distros like Debian and Slackware (I know it works on Mandrake and I think it should work on Suse). However, those running Debian or Slackware probably know how to do it themselves ;)

6) Once the eqemud script is to your satisfaction, you can start the emu with
./eqemud start
You can stop it with
./eqemud stop

If there's anything not working, let me know!

Also, I have no idea how the loginserver stuff works, so none of that is in there. But I would like to learn how that's supposed to work...

steve
01-28-2002, 03:01 PM
I got world to compile alright. zone, on the other hand, was a big mess:

[steve@steve zone]$ make clean
rm -f ../common/EQFragment.o ../common/EQPacket.o ../common/EQPacketManager.o ../common/timer.o ../common/database.o ../common/packet_dump.o ../common/packet_functions.o ../common/moremath.o ../common/packet_dump_file.o ../common/races.o ../common/unix.o ../common/classes.o zone.o entity.o mob.o client.o client_process.o npc.o net.o attack.o hate_list.o worldserver.o faction.o loottables.o spawn2.o spawngroup.o spells.o attack.o ClientList.o Map.o Quest.o ../bin/zone import_raw_items *~ ../common/*~
[steve@steve zone]$ make
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/EQFragment.cpp -o ../common/EQFragment.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/EQPacket.cpp -o ../common/EQPacket.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/EQPacketManager.cpp -o ../common/EQPacketManager.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/timer.cpp -o ../common/timer.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/database.cpp -o ../common/database.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/packet_dump.cpp -o ../common/packet_dump.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/packet_functions.cpp -o ../common/packet_functions.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/moremath.cpp -o ../common/moremath.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/packet_dump_file.cpp -o ../common/packet_dump_file.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/races.cpp -o ../common/races.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/unix.cpp -o ../common/unix.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ../common/classes.cpp -o ../common/classes.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX zone.cpp -o zone.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX entity.cpp -o entity.o
entity.cpp: In method `void EntityList::DoZoneDump (ZSDump_Spawn2 *,
ZSDump_NPC *, ZSDump_NPC_Loot *, NPCType *)':
entity.cpp:571: warning: assignment to `sint16' from `float'
entity.cpp:571: warning: argument to `short int' from `float'
entity.cpp:572: warning: assignment to `sint16' from `float'
entity.cpp:572: warning: argument to `short int' from `float'
entity.cpp:573: warning: assignment to `sint16' from `float'
entity.cpp:573: warning: argument to `short int' from `float'
entity.cpp:574: warning: assignment to `int8' from `float'
entity.cpp:574: warning: argument to `unsigned char' from `float'
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX mob.cpp -o mob.o
mob.cpp: In method `void Mob::CreateSpawnPacket (APPLAYER *, Mob *)':
mob.cpp:167: warning: assignment to `int8' from `float'
mob.cpp:167: warning: argument to `unsigned char' from `float'
mob.cpp: In method `void Mob::MakeSpawnUpdate
(SpawnPositionUpdate_Struct *)':
mob.cpp:271: warning: assignment to `int8' from `float'
mob.cpp:271: warning: argument to `unsigned char' from `float'
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX client.cpp -o client.o
client.cpp: In method `void Client::MovePC (char *, float, float,
float, bool)':
client.cpp:1391: warning: assignment to `sint32' from `float'
client.cpp:1391: warning: argument to `int' from `float'
client.cpp:1392: warning: assignment to `sint32' from `float'
client.cpp:1392: warning: argument to `int' from `float'
client.cpp:1393: warning: assignment to `sint32' from `float'
client.cpp:1393: warning: argument to `int' from `float'
client.cpp: In method `void Client::CreateSpawnPacket (APPLAYER *, Mob
*)':
client.cpp:2505: warning: assignment to `int8' from `float'
client.cpp:2505: warning: argument to `unsigned char' from `float'
client.cpp:2506: warning: assignment to `sint16' from `float'
client.cpp:2506: warning: argument to `short int' from `float'
client.cpp:2507: warning: assignment to `sint16' from `float'
client.cpp:2507: warning: argument to `short int' from `float'
client.cpp:2508: warning: assignment to `sint16' from `float'
client.cpp:2508: warning: argument to `short int' from `float'
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX client_process.cpp -o client_process.o
In file included from client_process.cpp:28:
Quest.h:28:6: warning: no newline at end of file
Quest.h:28:6: warning: no newline at end of file
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX npc.cpp -o npc.o
In file included from npc.cpp:14:
map.h:1:9: warning: #pragma once is obsolete
npc.cpp: In method `NPC::NPC (NPCType *, void *, float, float, float,
float, bool, bool)':
npc.cpp:48: warning: passing `float' for argument 12 of `Mob::Mob (char
*, char *, int, int, unsigned char, unsigned char, unsigned char,
unsigned char, unsigned char, unsigned int, int8 *, unsigned char,
float, float, float, unsigned char, int8 *, unsigned char, unsigned
char, short unsigned int, short unsigned int, unsigned char, unsigned
char, unsigned char, unsigned char, unsigned char, unsigned char,
unsigned char)'
npc.cpp: In method `bool NPC::Process ()':
npc.cpp:258: warning: passing `float' for argument passing 1 of `sign
(int)'
npc.cpp:258: warning: argument to `int' from `float'
npc.cpp:259: warning: passing `float' for argument passing 1 of `sign
(int)'
npc.cpp:259: warning: argument to `int' from `float'
npc.cpp: In method `void NPC::SendTo (float, float)':
npc.cpp:402: warning: passing `double' for argument 1 of `Timer::Start
(unsigned int)'
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX net.cpp -o net.o
In file included from net.cpp:27:
map.h:1:9: warning: #pragma once is obsolete
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX attack.cpp -o attack.o
attack.cpp: In method `void Mob::MonkSpecialAttack (Mob *, unsigned
char)':
attack.cpp:752: warning: passing `float' for argument passing 1 of `abs
(int)'
attack.cpp:752: warning: argument to `int' from `float'
attack.cpp:756: warning: assignment to `sint32' from `double'
attack.cpp:756: warning: argument to `int' from `double'
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX hate_list.cpp -o hate_list.o
hate_list.cpp:132:1: warning: no newline at end of file
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX worldserver.cpp -o worldserver.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX faction.cpp -o faction.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX loottables.cpp -o loottables.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX spawn2.cpp -o spawn2.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX spawngroup.cpp -o spawngroup.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX spells.cpp -o spells.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX ClientList.cpp -o ClientList.o
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX Map.cpp -o Map.o
In file included from Map.cpp:4:
map.h:1:9: warning: #pragma once is obsolete
Map.cpp:155:1: warning: no newline at end of file
gcc -c -m486 -O2 -pipe -I/usr/include/mysql -DFX Quest.cpp -o Quest.o
In file included from Quest.cpp:14:
Quest.h:28:6: warning: no newline at end of file
Quest.h:28:6: warning: no newline at end of file
gcc -m486 -O2 -pipe ../common/EQFragment.o ../common/EQPacket.o ../common/EQPacketManager.o ../common/timer.o ../common/database.o ../common/packet_dump.o ../common/packet_functions.o ../common/moremath.o ../common/packet_dump_file.o ../common/races.o ../common/unix.o ../common/classes.o zone.o entity.o mob.o client.o client_process.o npc.o net.o attack.o hate_list.o worldserver.o faction.o loottables.o spawn2.o spawngroup.o spells.o ClientList.o Map.o Quest.o -o ../bin/zone -lstdc++ -lm -lz -pthread -lmysqlclient -L/usr/local/lib/mysql
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
make: *** [../bin/zone] Error 1

Trumpcard
01-29-2002, 12:29 AM
Do you have the mysql and client development lib's installed?

Looks like youre missing one of those libraries..The rest are just warnings...

/usr/bin/ld: cannot find -lmysqlclient

CoderJ
01-30-2002, 01:46 AM
d'uh! that's what I forgot. I got around the pthread problem (I think it works), but then kept getting database errors. That would be why :)

cbreaker
01-31-2002, 06:10 PM
Good, glad to see some people working out Linux ports.. although it is a bit dissapointing to see that it's not the other way around!

If the focus went from Windows to Linux on the server end I would have no problem with that. =)

-CB

Raptor
02-01-2002, 12:03 AM
For the pthread problem (see the other Thread):

Add -D_USE_GNU in the compiler options (makefile)

This will fix it.

Zeitgeist
02-01-2002, 02:38 AM
let's not get religious about this. i had a problem when *nix support was stalled due to issues and i would have just as much of a problem if the win32 port stalled. granted it runs much better with fewer resources on *nix, but let's not rehash. I'll get you for making me defend *doze, it's usually *nix i have to defend from the clueless. :D

Trumpcard
02-01-2002, 02:56 AM
I know what you mean Geist.. I dont know how many Win users Ive snapped at because they said Linux/Unix was unstable , of course my response was always, how many LINUX or UNIX boxes do you have? I've had several production level linux/unix boxes under my thumb, and I just hate the comments of the clueless.. This is not too say that I dont like Windows.. Windows is MUCH nicer for certain things. Multimedia/gaming, even Web browsing, I much prefer on the Windows platform.

I like them both, but for stability and heavy duty functions, *NIX all the way..

For wasting time, and goofin' off, Windows is the KING..

My 2 cents.

Zeitgeist
02-01-2002, 08:19 AM
LOL, Trump got it dead on =) For screwing around, *doze, for reliable, stable, efficient power, *nix.:p

cbreaker
02-01-2002, 09:22 AM
I know what you mean Geist.. I dont know how many Win users Ive snapped at because they said Linux/Unix was unstable , of course my response was always, how many LINUX or UNIX boxes do you have?

Well, personally I have five linux boxes =)

Have you seen the vast amount of people running Unreal or Quake servers on Linux? I would dare to say MOST of them run on Linux.

I understand the not wanting to deal with Unix n00b questions, though..

-CB

CoderJ
02-01-2002, 10:01 AM
For the pthread problem (see the other Thread):

Add -D_USE_GNU in the compiler options (makefile)

This will fix it.

Um, doesn't fix it on my system (Red Hat 7.2 commerical)

(Yes, I broke down and bought it. Why? Because downloading any *nix ISO through dial-up sucks big floppy donkey dick).

cbreaker
02-01-2002, 10:31 AM
Nothing wrong with buying Linux, you get solid install CD's and it's easier than downloading them with a modem.

Just make copies for all your friends, and it's legal to do that! You can even make copies and sell them! =)

-CB