Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 06-07-2005, 01:34 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default 0.6.1 DR1 and DR2 VS .NET Projects

I took the time to rebuild the project files so I could compile the code for 0.6.1 DR1 with the ranger bug fix. If anyone is interested in obtaining the updated files I can upload them to my server and create a link to download them. I could also post a guide to compile the source if needed. I haven't gone into the PERL aspect yet, as I do not have PERL on my laptop. I will keep you all updated on my progress.

-Steel Psychos Server Admin-

Last edited by SuedeWorthey; 06-21-2005 at 12:31 PM.. Reason: Added DR2
Reply With Quote
  #2  
Old 06-07-2005, 03:22 AM
Sakrateri's Avatar
Sakrateri
Dragon
 
Join Date: Mar 2004
Location: England
Posts: 776
Default

can this be compiled on windows xp pro? if so I would be very greatful to have those files
__________________
KhepriGames

Game Gallery

My Forums

Reply With Quote
  #3  
Old 06-07-2005, 04:42 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default Windows XP Pro

Yes, I compiled everything on Windows XP Pro with SP2 and Microsoft VS .NET. I am still working on the PERL compile, but as soon as I get that going, I'll put a link to everything I have on my server.
Reply With Quote
  #4  
Old 06-07-2005, 08:04 AM
Belfedia
Demi-God
 
Join Date: Jan 2005
Posts: 1,109
Default

That good news, we need more dr1 compiled version
__________________
__________________________________________________ _____________________________________
I speak english like a spanish cow..., I speak spanish like a english pudding...
But I try to speak good french !!! (Non au langage SMS sur forum)
http://eqfroggy.new.fr : Froggy French Server Website.
Reply With Quote
  #5  
Old 06-07-2005, 08:39 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default I finished the PERL

Well, I finished getting all the compilations working properly, so now, all I have left to do is .Zip and .rar the source I have and finish writing the guide tomorrow morning. It's past my bed time and I am losing faction with my wife... Anyway, I'll do what I can to get it all posted up tomorrow.
Reply With Quote
  #6  
Old 06-08-2005, 12:11 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default Guide to compiling EqEmu 0.6.1 DR1 or DR2 w and w/o PERL

Well, it took me some hours, but I got everything pulled together. I will note all the changes that I can remember that I made. I started With Visual Studio .Net Version 7.0.9446 (2002).

First, you have to get the source from my site or though CVS. If you go through CVS there are several changes you have to make to the code.

I Included the DB fix that was noted by Emuman2098, and the Archery fix by cavedude, and I got most of my information to compile from Cisyouc.
Thanks a lot guys.

First, download the latest source from CVS and Edit/or download it from:
The zlib library is already included with the source as well. And also in the original .tar I extracted it from.
http://www.steelpsychos.com/index.php?link=eqemu.php

Next, ensure that you have MySQL and PERL installed.
I recommend MySQL 4.0.xx because I have some odd permissions problems with 4.1, but you may not. Also downloadable from my site.

http://dev.mysql.com/downloads/mysql/4.1.html
http://www.activestate.com/Products/...?id=ActivePerl

After you extract the source, extract the zlib source into a folder called zlib under the same folder as the .sln file. (Already included in my source distro)

Extract the source file to a folder of your choice. If you don't know how to do this, I suggest you learn how to use a PC before you try to program it. I use Winrar to package the files. I also provided a SFX Archive .exe. I take no responsibility for what these may do to your PC, but I ensure they are virus free, etc...

Now that you have installed MySql, PERL(for PERL compiles only), and extracted the source, open the server.sln file. If it asks you to update/whatever, click yes.

For All Compilations:
Click Tools->Options.
Expand Projects.
Select VC++ Directories.
Where it says Show Directories For: Select Include Files.
Press CTRL+Insert to add a new line.
Browse to your MySql installation and select the mysql\include folder.
Press CTRL+Insert again.
Browse to where you extracted zlib, and select that folder.
Note: If you used my source zlib will be under the zlib folder.

Do the same thing once more:
Where it says Show Directories For: Select Library Files.
Press CTRL+Insert to add a new line.
Browse to your MySql installation and select the mysql\lib\opt folder.
Press CTRL+Insert again.
Browse to where you extracted zlib, and select that folder.
Note: If you used my source zlib will be under the zlib folder.

For compile with PERL:
Make sure you have the DebugPerl configuration selected.
Right-Click on Zone in the Solution Explorer Window.
Click Properties.
Expand the Configuration Properties Panel.
Expand C/C++ Panel.
Select General.
Under the Additional Include Directories, ensure that the path points to where you installed PERL, and iafter that folder add \lib\core. It should resemble c:\PERL\lib\CORE. Once again, if you don't know how to do this, just stop here and download the pre-compiled version.
ex:
c:\perl\lib\core

--Do not do this for DR2--
Once you ensure this is correct, click OK.

Before you compile, you will have to make an edit to the PERL file:
Remember to change this back after you are through compiling...

On line ~18 of perl\lib\core\socket.h, change it from:
#include <winsock.h>

to:
#include <winsock2.h>

If you leave this part out you will get tons of library conflicts between winsock and winsock2 at zone compile time.
--End do not do this for DR2--
Reason, DR2 was changed to use the winsock library rather than the winsock2 library.

Compilation time:
Now, you should be ready to compile. Select Build->Build Solution or press CTRL+ALT+B, and compilation will begin. If you have any errors, feel free to post them and I will try to re-create them and fix them for you.

NOTE: I made a change in rdtsc.cpp. My compiler didn't like the type unsigned long long, so I changed it to uint64.
I assumed that since it was trying to make an unsigned integer with the size of 2 longs(32 bits). That would have made it 64 bits long, so uint64 should do it.

char 8bits -127 to 127
unsigned char 8bits 0 to 255
short 16bits -32,767 to 32,767
unsigned short 16bits 0 to 65,535
int 32bits -2,147,483,647 to 2,147,483,647
unsigned int 32bits 0 to 4,294,967,295
long 32bits -2,147,483,647 to 2,147,483,647
unsigned long 32bits 0 to 4,294,967,295
long long 64bits -9,223,372,036,854,775,807 to 9,223,372,036,854,775,807
unsigned long long 64bits 0 to 18,446,744,073,709,551,615

If I am wrong feel free to correct me and provide the proper code for the fix.
If I missed anything, let me know and I'll fix it.

Also, my compiled versions are available on my website for download with the fixes noted above.

-Steel Psychos Server Admin-

Last edited by SuedeWorthey; 06-24-2005 at 01:37 PM..
Reply With Quote
  #7  
Old 06-08-2005, 06:55 AM
Sakrateri's Avatar
Sakrateri
Dragon
 
Join Date: Mar 2004
Location: England
Posts: 776
Default

Wow , thanks alot Suede. This is much appriciated
__________________
KhepriGames

Game Gallery

My Forums

Reply With Quote
  #8  
Old 06-08-2005, 06:49 PM
Belfedia
Demi-God
 
Join Date: Jan 2005
Posts: 1,109
Default

Thanks splendid work
But i have some runtime error #3 on zone.exe ?
Petstruc and augslot variables not defined error ?
That my system or compiled version ?
that totally crash my zone.Exe
__________________
__________________________________________________ _____________________________________
I speak english like a spanish cow..., I speak spanish like a english pudding...
But I try to speak good french !!! (Non au langage SMS sur forum)
http://eqfroggy.new.fr : Froggy French Server Website.
Reply With Quote
  #9  
Old 06-08-2005, 07:44 PM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default Crashed zone?

Which compile did you download? The only compile that I have tested is the one w/o PERL, and only in a minilogin situation. I haven't tested the code on my live server yet. I am still looking for bugs that I may be able to fix myself. Please keep all the bug reports coming though. What is your exact configuration? Minus the dbname and password of course. Also, does anyone know why the AAs aren't being updated properly in my database? Is it a DB problem or is it a server problem? If anyone can point me in the right direction, I will see what I can do to make it work. I am not an expert programmer, but I'd like to help in any way I can.
Reply With Quote
  #10  
Old 06-08-2005, 11:43 PM
Belfedia
Demi-God
 
Join Date: Jan 2005
Posts: 1,109
Default

Hello,
My server working on Windows 2000 pro (all services pack and patch make)
P4 3,5 Ghrtz with 2 gigas of ram.
I use Myslq 4.0.23 and last version of ActivePerl
I have Peq velious database + CVSfix for DR1 on my server.
I try to use your perl compiled version and your debugperl compiled version
(download from your site)
When i use it, i have microsoft debug message, (Petstru or augslot not defined error #3) i need to click on requester and my zone.exe reach breakpoint and stop.
I don't have this problems with other 0.6.1 DR1 compiled version (Face42 and Cavedude).
__________________
__________________________________________________ _____________________________________
I speak english like a spanish cow..., I speak spanish like a english pudding...
But I try to speak good french !!! (Non au langage SMS sur forum)
http://eqfroggy.new.fr : Froggy French Server Website.

Last edited by Belfedia; 06-09-2005 at 07:49 AM..
Reply With Quote
  #11  
Old 06-09-2005, 03:13 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default I'll check into it.

Ok, I will check into it and see what's up with the compile. I haven't tested the PERL one at all yet, just got it to the stages where I could compile it. I know the non-PERL ones run just fine on my server at least... Anyway, I'll see what I can do.
Reply With Quote
  #12  
Old 06-09-2005, 03:37 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default I tested it.

Well, I just tested it on my test server with the PERL release, olny I re-compiled it on the test server PC, so I will upload it to the server later... It works with no errors for me... Maybe it was a PERL library conflict of some sort. Anyway, I'll upload the new one and update the .rar and .exe

-Suede-
Reply With Quote
  #13  
Old 06-09-2005, 04:11 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default I was able to re-create the error...

I re-created the error, and there was a problem with database.cpp.
Code:
uint32 len_query = MakeAnyLenString(&query, "REPLACE INTO inventory (charid,slotid,itemid,charges,instnodrop,color,augslot1,augslot2,augslot3,augslot4,augslot5) VALUES(%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i)",
char_id, slot_id, inst->GetItem()->ID, charges, inst->IsInstNoDrop() ? 1:0,inst->GetColor(),augslot[0],augslot[1],augslot[2],augslot[3],augslot[4]),augslot[5] );
I dunno if it is right, but augslot should only go from 0 to 4, not 5... so I edited it as follows and will try to re-create the error again.
Code:
uint32 len_query = MakeAnyLenString(&query, "REPLACE INTO inventory (charid,slotid,itemid,charges,instnodrop,color,augslot1,augslot2,augslot3,augslot4,augslot5) VALUES(%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i)",
char_id, slot_id, inst->GetItem()->ID, charges, inst->IsInstNoDrop() ? 1:0,inst->GetColor(),augslot[0],augslot[1],augslot[2],augslot[3],augslot[4]);//,augslot[5] );

Last edited by SuedeWorthey; 06-11-2005 at 11:54 AM.. Reason: Inserted code tags for readability.
Reply With Quote
  #14  
Old 06-09-2005, 04:16 AM
Sakrateri's Avatar
Sakrateri
Dragon
 
Join Date: Mar 2004
Location: England
Posts: 776
Default

I am getting the same exact problems with your source as I get from cvs source
compiling with ms vb.net 2003 on winXP Pro. here they are

Compiling...
timer.cpp
timeoutmgr.cpp
TCPConnection.cpp
serverinfo.cpp
races.cpp
packet_functions.cpp
packet_dump_file.cpp
packet_dump.cpp
Mutex.cpp
moremath.cpp
MiscFunctions.cpp
misc.cpp
md5.cpp
Item.cpp
guilds.cpp
extprofile.cpp
eqtime.cpp
EQEMuError.cpp
EMuShareMem.cpp
debug.cpp
DBMemLeak.cpp
dbcore.cpp
dbasync.cpp
database.cpp
crc32.cpp
Condition.cpp
classes.cpp
zoneserver.cpp
net.cpp
LoginServer.cpp
console.cpp
client.cpp
Linking...
client.obj : error LNK2001: unresolved external symbol "public: static unsigned char EQApplicationPacket::default_opcode_size" (?default_opcode_size@EQApplicationPacket@@2EA)
client.obj : error LNK2019: unresolved external symbol "protected: __thiscall EQPacket::EQPacket(unsigned short,unsigned char const *,unsigned int)" (??0EQPacket@@IAE@GPBEI@Z) referenced in function "public: __thiscall EQApplicationPacket::EQApplicationPacket(void)" (??0EQApplicationPacket@@QAE@XZ)
client.obj : error LNK2019: unresolved external symbol "public: __thiscall EQPacket::~EQPacket(void)" (??1EQPacket@@QAE@XZ) referenced in function $L109209
client.obj : error LNK2019: unresolved external symbol "public: void __thiscall EQApplicationPacket::SetOpcode(enum EmuOpcode)" (?SetOpcode@EQApplicationPacket@@QAEXW4EmuOpcode@@ @Z) referenced in function "public: __thiscall EQApplicationPacket::EQApplicationPacket(enum EmuOpcode)" (??0EQApplicationPacket@@QAE@W4EmuOpcode@@@Z)
client.obj : error LNK2019: unresolved external symbol "public: enum EmuOpcode const __thiscall EQApplicationPacket::GetOpcodeConst(void)const " (?GetOpcodeConst@EQApplicationPacket@@QBE?BW4EmuOp code@@XZ) referenced in function "public: enum EmuOpcode const __thiscall EQApplicationPacket::GetOpcode(void)const " (?GetOpcode@EQApplicationPacket@@QBE?BW4EmuOpcode@ @XZ)
packet_dump.obj : error LNK2001: unresolved external symbol "public: enum EmuOpcode const __thiscall EQApplicationPacket::GetOpcodeConst(void)const " (?GetOpcodeConst@EQApplicationPacket@@QBE?BW4EmuOp code@@XZ)
packet_dump_file.obj : error LNK2001: unresolved external symbol "public: enum EmuOpcode const __thiscall EQApplicationPacket::GetOpcodeConst(void)const " (?GetOpcodeConst@EQApplicationPacket@@QBE?BW4EmuOp code@@XZ)
client.obj : error LNK2019: unresolved external symbol "public: void __thiscall EQStream::SendDisconnect(void)" (?SendDisconnect@EQStream@@QAEXXZ) referenced in function "public: void __thiscall EQStream::Close(void)" (?Close@EQStream@@QAEXXZ)
client.obj : error LNK2019: unresolved external symbol "public: void __thiscall EQStream::QueuePacket(class EQApplicationPacket const *,bool)" (?QueuePacket@EQStream@@QAEXPBVEQApplicationPacket @@_N@Z) referenced in function "public: void __thiscall Client::QueuePacket(class EQApplicationPacket const *,bool)" (?QueuePacket@Client@@QAEXPBVEQApplicationPacket@@ _N@Z)
client.obj : error LNK2019: unresolved external symbol "public: class EQApplicationPacket * __thiscall EQStream::PopPacket(void)" (?PopPacket@EQStream@@QAEPAVEQApplicationPacket@@X Z) referenced in function "public: bool __thiscall Client::Process(void)" (?Process@Client@@QAE_NXZ)
console.obj : error LNK2001: unresolved external symbol "class OpcodeManager * EQOpcodeManager" (?EQOpcodeManager@@3PAVOpcodeManager@@A)
net.obj : error LNK2001: unresolved external symbol "class OpcodeManager * EQOpcodeManager" (?EQOpcodeManager@@3PAVOpcodeManager@@A)
net.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall OpcodeManager::SetOpcode(enum EmuOpcode,unsigned short)" (?SetOpcode@OpcodeManager@@UAEXW4EmuOpcode@@G@Z)
net.obj : error LNK2001: unresolved external symbol "public: virtual enum EmuOpcode __thiscall SharedOpcodeManager::EQToEmu(unsigned short)" (?EQToEmu@SharedOpcodeManager@@UAE?AW4EmuOpcode@@G @Z)
net.obj : error LNK2001: unresolved external symbol "public: virtual unsigned short __thiscall SharedOpcodeManager::EmuToEQ(enum EmuOpcode)" (?EmuToEQ@SharedOpcodeManager@@UAEGW4EmuOpcode@@@Z )
net.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall SharedOpcodeManager::ReloadOpcodes(char const *)" (?ReloadOpcodes@SharedOpcodeManager@@UAE_NPBD@Z)
net.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall SharedOpcodeManager::LoadOpcodes(char const *)" (?LoadOpcodes@SharedOpcodeManager@@UAE_NPBD@Z)
net.obj : error LNK2019: unresolved external symbol "public: __thiscall OpcodeManager::OpcodeManager(void)" (??0OpcodeManager@@QAE@XZ) referenced in function "public: __thiscall SharedOpcodeManager::SharedOpcodeManager(void)" (??0SharedOpcodeManager@@QAE@XZ)
net.obj : error LNK2019: unresolved external symbol "public: void __thiscall EQStreamFactory::Close(void)" (?Close@EQStreamFactory@@QAEXXZ) referenced in function _main
net.obj : error LNK2019: unresolved external symbol "public: class EQStream * __thiscall EQStreamFactory::Pop(void)" (?Pop@EQStreamFactory@@QAEPAVEQStream@@XZ) referenced in function _main
net.obj : error LNK2019: unresolved external symbol "public: bool __thiscall EQStreamFactory::Open(void)" (?Open@EQStreamFactory@@QAE_NXZ) referenced in function _main
net.obj : error LNK2019: unresolved external symbol "public: __thiscall EQStreamFactory::EQStreamFactory(enum EQStreamType,int)" (??0EQStreamFactory@@QAE@W4EQStreamType@@H@Z) referenced in function _$E1
EMuShareMem.obj : error LNK2019: unresolved external symbol "public: char const * __thiscall SharedLibrary::GetError(void)" (?GetError@SharedLibrary@@QAEPBDXZ) referenced in function "public: bool __thiscall LoadEMuShareMemDLL::Load(void)" (?Load@LoadEMuShareMemDLL@@QAE_NXZ)
EMuShareMem.obj : error LNK2019: unresolved external symbol "public: void * __thiscall SharedLibrary::GetSym(char const *)" (?GetSym@SharedLibrary@@QAEPAXPBD@Z) referenced in function "public: bool __thiscall LoadEMuShareMemDLL::Load(void)" (?Load@LoadEMuShareMemDLL@@QAE_NXZ)
EMuShareMem.obj : error LNK2019: unresolved external symbol "public: virtual bool __thiscall SharedLibrary::Load(char const *)" (?Load@SharedLibrary@@UAE_NPBD@Z) referenced in function "public: bool __thiscall LoadEMuShareMemDLL::Load(void)" (?Load@LoadEMuShareMemDLL@@QAE_NXZ)
EMuShareMem.obj : error LNK2019: unresolved external symbol "public: __thiscall SharedLibrary::SharedLibrary(void)" (??0SharedLibrary@@QAE@XZ) referenced in function "public: __thiscall LoadEMuShareMemDLL::LoadEMuShareMemDLL(void)" (??0LoadEMuShareMemDLL@@QAE@XZ)
EMuShareMem.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall SharedLibrary::Unload(void)" (?Unload@SharedLibrary@@UAEXXZ) referenced in function "public: virtual void __thiscall LoadEMuShareMemDLL::Unload(void)" (?Unload@LoadEMuShareMemDLL@@UAEXXZ)
EMuShareMem.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall SharedLibrary::~SharedLibrary(void)" (??1SharedLibrary@@UAE@XZ) referenced in function "public: virtual __thiscall LoadEMuShareMemDLL::~LoadEMuShareMemDLL(void)" (??1LoadEMuShareMemDLL@@UAE@XZ)
.\../build/World.exe : fatal error LNK1120: 25 unresolved externals



EDIT: Also I was told to remove the EQNetwork.cpp from this when trying to compile the cvs before, am I still suppose to have to take that out?
__________________
KhepriGames

Game Gallery

My Forums


Last edited by Sakrateri; 06-09-2005 at 05:15 PM..
Reply With Quote
  #15  
Old 06-09-2005, 09:52 AM
Cisyouc
Demi-God
 
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
Default

You're missing files in the project. I couldn't tell you which ones because I'm not familiar with 6.1's code, but it seems to be referring to any of the new network files.
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.
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 06:46 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