Hi guys.
First of all i would like to say i am a developer, i am currently rewriting most of Mithia for two things, first of all to improve the functions, as there's very very programming practices in it. Second is because i am porting it for the 5.33 client, which have a lot of different packets. I don't know if i will make my version public though, as Zakai(aka Eldorado or whatever he's called now) stole our various projects. As you may see in the sources, it was called Yuri, it was developed by a guy named Aier, who built it on a LOT of our original team contributions. We did a heck of a job reverse-engineering and decoding what each byte of the packets meant.
For anybody who stumbles on this thread, here's a few things I learned the hard way yesterday:
- While this code compiles on x64 machines, it will segfault itself to death when you try to run it. Get a x86 machine.
- On Centos, you will need to edit Makefile and change -llua5.1 to just -llua.
- You can compile this code on OSX but you need to use homebrew GCC and also, you gotta rename a few functions.
- On Ubuntu 14.04, here are the packages you need to install to get going:
apt-get install mysql-client libmysqlclient18 libmysqlclient-dev build-essential mysql-server liblua5.1-0-dev
- Running NexusTK on VMWare was horrible. Couldn't get ddraw.dll to work and it wouldn't respect the changes in my hosts file. Had to install a DNS server to get the client connected.
Oh, another note. If you get the message "Chaos is occuring" when you try to connect to your server, make sure you have at least two entries in the tables "Maps" and "MapRegistry".
On a 64 bits Linux machine, you will need multilib, which mean packages for both 64 and 32 bits, including GCC, MySQL and LUA. Then what you want to do is to modify the Makefile to point toward the 32 bits binaries, like so :
CC = gcc -pipe -w -g
MAKE = make -s
CFLAGS = -fno-stack-protector -ffast-math -Wall -Wno-sign-compare -DFD_SETSIZE=1024 -DNO_MEMMGR -DLOGGING_ENABLED -DUSE_MYSQL -I../common -I/usr/include/mysql -I/usr/include/lua5.1 -I/usr/local/zlib/include -m32
CLIBS = -L../lib32 -L/usr/local/lib32 -L/usr/lib32 -L/usr/local/mysql/lib32 -lcrypt -lmysqlclient -lm -lz -ldl -llua -m32
It is running A1 for me on Gentoo Linux.
If you have any problems, open four terminals and run each server binaries without using nohup to see if there's errors like not connecting to MySQL, not able to load maps, or such, simply start them like : "./map-server", etc. For segfaults, you may want to go watch a guide on how to use GDB.
If you guys have any questions, you can always try asking me.
Oh and by the way, if someone would like to contribute to my project called NexZero, i would appreciate it very much. I'm taking care of the source rewriting, clearing some crappy unnecessary LUA scripts, optimizing it to the fullest. I am also putting together a lot of details on version 5.x and 4.x of the server/clients, with old maps, old quests, old items and such. It's quite a lot of work. If someone would be kind enough to make some samples of items/mobs/clans and such, like for items, make a sample sword, helmet, armor, accessory, it would ease the burden on my shoulders.
Thank you!
Here's some screenshots of my advancements with my heavily modified server.