Free compiler no longer available :(
OK, this guide lets you compile EQemu COMPLETLY
FREE!! So far it has been tested and worked on Windows ME and XP. Should work on 95/98 too.
Got to
http://vs03-us.protier.com/admin/ski.../vssignup.aspx and register.
(Choose 1-4 Developers, Other for job role, check all for boxes, make sure No is chosen). Check your e-mail. Click the link. Wait while it loads. Click ?Click here to access your server?.
Log in with password you are given in your e-mail.
If a window pops up click Yes.
Close the windows welcome:
Cancel the Download:
Go to ?Start -> Control Panel -> Add or Remove Programs?
Click Add/Remove Windows Components. Click Next. Click Finish when it?s done, close the other window.
Use Quick-launch icons to open Internet Explorer.
Download zlib 1.1.4 from
http://www.gzip.org/zlib/
Unzip the compliled dll file to the desktop. Extract it with the option to preserve directory structure.
Download the latest EQemu (currently
http://www.eqemulator.net/users/shaw...DR2-Source.zip) to the desktop, there are two so look at this picture:
Also download mysql.zip from my webspace, this contains mysql.h required as an include file.
http://www.freewebs.com/guidepics/mysql.zip
!!Right click save as, for some reason clicking it appears to open a window and link to the current page!!
Note to those security conscious people out there, yes I did include a zip I created however these files will never touch your computer as you're using the MS VS .NET trial on MS's server hence you are safe (though I assure you anyway the files are safe of virus/trojans etc.)
Right click on the downloaded file and select Extract all.
Copy the contents of the extracted mysql folder to the include folder in the extracted zlib directory.
Now open Microsoft Visual Studio .NET 2003, Go to the menu Tools/Options. In the folder pane, navigate to Projects/VC++ Directories, in the Show directories for dropdown select "Include Files"
To the bottom of the list add the path to the extracted zlib\include folder.
Now select "Library Files" and again add the path to the extracted zlib\include folder.
Once this is done you should be ready to compile!
Close VS .NET 2003 and open the extracted EQemu folder.
Double click on the Server.sln file.
When a window pops up asking to convert the files click Yes. Then make sure that the version is set to Release.
Go to the Build menu and select Build Solution.
Wait awhile until the Output window says:
and close the program(NOT THE SERVER WINDOW, if you close that window you will need to log back on).
Open the Build folder within the extracted EQemu folder, select from it, World.exe, Zone.exe and EMuShareMem.dll, right click them and choose to send them to a compressed file(the name of which will vary).
Open internet explorer, go to
http://www.sendthisfile.com. Register for a new account then login and send the new compressed file to your e-mail.
CLOSE SERVER WINDOW!!(Yay!!) Go to your e-mail and download the file to your desktop. Right click the new file and select Extract all.
Extract the files to your EQemu Directory and hurrah! you've compiled your own EQemu
Log onto EQemu and have Fun!!
!!!NOTE!!!
(I can't remember 100% but think you may need to follow the following instructions below before compiling to get character creation working)
edit ..\common\eq_packet_structs.h
go down to struct CharCreate_Struct
add this on the end /*0140*/ int32 unknown140;
make sure this is at the end of the section have seen people put it in midway through by mistake...
Now edit ..\common\database.cpp. First make sure that all instances of 'result' are initialized to 0. I did this with a find and replace of 'MYSQL_RES *result;' with 'MYSQL_RES *result = NULL;'
Then, also in database.cpp in the function
Database::GetStartZone(), the make the following change. This bit of code...
if((rows = mysql_num_rows(result)) == 1)
row = mysql_fetch_row(result);
if(result) mysql_free_result(result);
...needs to be conditional upon result != NULL, like this:
if(result)
{
if((rows = mysql_num_rows(result)) == 1)
row = mysql_fetch_row(result);
if(result) mysql_free_result(result);
}
Aside from that. There was one instance of the pointer 'query' not being initialized before use. Make sure anything that looks like 'char *query;' becomes 'char *query = 0;'.
P.S. bits here and there are shamelessly stolen, credit goes to Gyrepin and ritojo for the two fixes to get char creation working
Finally IF this does not work for you please go back through and recheck every step of the way, in testing it works fine, if after you've checked and rechecked you have a problem please contact me.