EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   0.6.1 DR1 VS .NET Projects (https://www.eqemulator.org/forums/showthread.php?t=18731)

SuedeWorthey 06-07-2005 01:34 AM

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-

Sakrateri 06-07-2005 03:22 AM

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

SuedeWorthey 06-07-2005 04:42 AM

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.

Belfedia 06-07-2005 08:04 AM

That good news, we need more dr1 compiled version :)

SuedeWorthey 06-07-2005 08:39 AM

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.

SuedeWorthey 06-08-2005 12:11 AM

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-

Sakrateri 06-08-2005 06:55 AM

Wow , thanks alot Suede. This is much appriciated :)

Belfedia 06-08-2005 06:49 PM

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

SuedeWorthey 06-08-2005 07:44 PM

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.

Belfedia 06-08-2005 11:43 PM

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).

SuedeWorthey 06-09-2005 03:13 AM

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.

SuedeWorthey 06-09-2005 03:37 AM

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-

SuedeWorthey 06-09-2005 04:11 AM

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] );


Sakrateri 06-09-2005 04:16 AM

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?

Cisyouc 06-09-2005 09:52 AM

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.

SuedeWorthey 06-09-2005 09:16 PM

I think you opened the wrong file...
 
Try to re-extract the source, and just open the .sln file, not the other one... The .sln has all the updated files in it, and eqnetwork removed, etc...

Sakrateri 06-09-2005 10:53 PM

I downloaded and extracted his rar and exe and tried both , I was assuming all the files needed were included.

Sakrateri 06-10-2005 03:14 AM

I think your right Suede , I didnt use the sln, got ahead of myself I geuss , I will try that when I get home , thanks again.

Sakrateri 06-10-2005 11:07 AM

Works great Suede , Thanks alot for this , now to try to fix the PoK books so they work . btw if anyone knows how allready let me know :) lol

fathernitwit 06-10-2005 04:41 PM

there was a post a while back by sysadmin about fixing the pok stones. I havent gotten around to putting it into peq's database, but should give you a good idea on whats up.

SuedeWorthey 06-10-2005 08:28 PM

I found the doors...
 
I found sysadmin's thread with all the doors in it, and put them all into one SQL file, so anyone can download if from my site. It is called doors_sysadmin.sql I haven't sourced or tested it yet, but I will let you all know when I do.

http://www.steelpsychos.com/index.php?link=eqemu.php

-Suede-

Sakrateri 06-10-2005 08:35 PM

I just looked at what you have Suede, that looks like its a fix to add the PoK books and some doors , Im talking about a fix to actually make them work . Right now when you click on them they just port you to the zone you are allready in. I have all of the portals in PoK allready and all of teh books to port you to PoK all over norrath but none of them will port you out of the zone you are allready in. Or am I looking at this wrong and it will fix the problkem of not being able to port?

SuedeWorthey 06-10-2005 09:57 PM

I think I found the code...
 
I think this is the code that moves the PC if the door is clicked...
Code:

    if (opentype == 58 && strncmp(dest_zone,"NONE",strlen("NONE")) != 0 ){ // Teleport door!
        if ( strncmp(dest_zone,zone_name,strlen(zone_name)) == 0) {
                          //dunno why, but this dosent seem to work all the time:
            //sender->GMMove(dest_x,dest_y,dest_z);
                  sender->MovePC((const char*) NULL, dest_x, dest_y, dest_z);
        }
        else {
                  sender->MovePC(dest_zone, dest_x, dest_y, dest_z);
        }

Edit: The code looks sound, so I don't know why it's not working... Maybe there's something wrong with the destination zones in the DB or the way the db code reads the destination zone...

Sakrateri 06-10-2005 10:12 PM

I saw that last night and using a doors.cpp from an older source that they worked on I tried to replicate it to this one , It did not make the zone crash and compiled fine but did not do anything and then I noticed in the zone folder there is a new file called zoning.cpp that does not appear in any other version and looking through there I think we have our problem , As I am by no means a coder and only a couple of months of self taught compiling I have no idea what to do to fix it , But I will keep trying ! and thanks for looking into it Suede.
Also Cavedude said right after he said " DO NOT QUOTE ME ON THIS " so please dont but he thought they may have changed movepc from using zone names to using zoneIDs ? I have no idea what to do at that point but mabey you may be able to use that . but still looking at that zoning.cpp it sure has an awful lot of SendZoneCancels in there ?

SuedeWorthey 06-11-2005 12:11 AM

MovePC
 
I did notice that there are 3 implementations of MovePC. One Is by ID, one is by zone name and the other has no space for zone, so I assume it's the current zone. I am going to edit the code and try a few things to see what I can get done.

Off-Topic:
I noticed Fathernitwit was running a 0.6.1 DR2 server... Is this source currently available on CVS???
Thanks,

-Suede-

Sakrateri 06-11-2005 12:42 AM

Cofruben has a compiled version of DR2 in the Development section , I tried it lastnight and couldnt get world to boot , it would only flash very fast and trying to see what it was saying it looked like it was just a bunch of opcodes , as far as source im not sure. Thanks for working on this door thing its really stopping me from progressing here. I wish I could be of some use and knew some more but I will keep messing with the code too on the hope I will accidently fix something lol , Take care

SuedeWorthey 06-11-2005 01:05 AM

I found the error!
 
I wanna try this Junior Dev Stuff...
Alright, there is a problem in zoning.cpp.
Looks like a copy, paste error.

Original Code: zoning.cpp line 318
Code:

void Client::MovePC(const char* zonename, float x, float y, float z, int8 ignorerestrictions, bool summoned, ZoneMode zm) {
        MovePC(zone->GetZoneID(), x, y, z, ignorerestrictions, summoned, zm);
}

Changed to:
Code:

void Client::MovePC(const char* zonename, float x, float y, float z, int8 ignorerestrictions, bool summoned, ZoneMode zm) {
        //MovePC(zone->GetZoneID(), x, y, z, ignorerestrictions, summoned, zm);
        MovePC(database.GetZoneID(zonename), x, y, z, ignorerestrictions, summoned, zm);
}

I will update my links on my website with the new code in approximately 10 minutes... I will also test the code.

Edit 1:
Upload complete. Testing begins...
Edit 2:
Code works great, just need to update DB for proper coords. I zoned right inside the qeynos stone when I zoned.

-Suede-

Sakrateri 06-11-2005 02:34 AM

Woot !! Your the bomb diggity !!! Thanks bud !

Recompiled with that fix and YES it does work !

You here that Bel ?? WOOT I SAY !

Sakrateri 06-11-2005 04:32 AM

Man fix one thing and five more break lol, well the portals are workingnow but I am getting zones crashing with something coming up undefined pet structure? wtf? didnt even do anything with pets lol , any ideas on that one?

SuedeWorthey 06-11-2005 04:41 AM

Yeah
 
I don't know exactly why it says that because the pet structure is defined in the source file, but I am trying to work that one out now... I had that problem before the last fix, but it didn't just jump out. Anyway, I'll post as I fix...

-Suede-

Sakrateri 06-11-2005 04:48 AM

Ok thanks again , Looks to me its all linked together right below that fix because they made it so pets zone with you , guess thats why it has to effect pets to

SuedeWorthey 06-11-2005 06:22 AM

I think I fixed the pets thing...
 
I think I fixed the pets, but I won't know until I can do some more testing. I will be using cavedude's db for the testing, beause it is the only one I have experienced the problem on so far...

-Suede-

Sakrateri 06-11-2005 06:26 AM

Ok , thanks , thats the database I am using atm so cool .

SuedeWorthey 06-11-2005 07:52 AM

I think I fixed it again...
 
In pets.cpp Around line 541 or so...
Code:

                        MakePet(spell_id, 10, 1, prace, mat, 125, 2*size_mod, 5, 0, 0, petname);
                cout << "ptype not found: Making default BL pet." << endl;

I changed to: (added return)
Code:

                        MakePet(spell_id, 10, 1, prace, mat, 125, 2*size_mod, 5, 0, 0, petname);
                cout << "ptype not found: Making default BL pet." << endl;
                        //begin wsft edit
                        return;
                        //end wsft edit

In pets.cpp around line 604/605
Code:

                MakePet(spell_id, 59, WARRIOR, 127,0,46,0,2, 0, 0, petname);
I changed to: (added a return and cout info...)...
Code:

                MakePet(spell_id, 59, WARRIOR, 127,0,46,0,2, 0, 0, petname);
                //begin wsft edit
                cout << "I think this was causing the crash..." << endl;
                return;
                //end wsft edit

I think that since MakePet was called and it didn't exit the function that it reached the MakePet at the end and the petstruct wasn't defined because it wasn't recalled from the DB...

-Suede-

Edit:
I am going to put a couple more files on my site:
1: update_zone.rar for updated zone compiles
2: update_world.rar for updated world compiles
3: update_dll.rar for updated emusharemem.dll files

If there are no updated files from the releases posted, there will be no updated .rar

Edit 2:
I am also going to add the date field to the download page.

-Suede-

Sakrateri 06-11-2005 08:17 AM

Ok thanks much for this , going to recompile right now !

SuedeWorthey 06-11-2005 08:20 AM

Sweet.
 
That's some good stuff. Anyways, keep me posted on small errors you find, and I will try to fix them as they come. Just don't come up with anything that would make me have to re-write the entire database engine or anything... lol

-Suede-

Sakrateri 06-11-2005 08:55 AM

changed these and still getting the same error ? this is drivin me nuts, lol

iwantavr4 06-11-2005 06:07 PM

Okay, i dont know how much i can help... But ive been running into this petstruct on my server as well. Basically if you hit ignore it will continue on ewithout crashing it.

Now... If its the same as me(im using peq velious database and some 6.1 perl upgrades from the guide i wrote), I notice it THE MOST in certain zones... Those certain zones being, akanon, sleepers tomb, necropolis, and other zones with traps/wizards...

When i was in veeshans peak, i noticed that there were wizards that were creating sword of xuzil pets(or something like this). I killed their pets, and hit ignore on the error... When they recreated the sword pets, it happened again.

Maybe there is some code thats messed up, or database error, that doesnt specify if someone has more than 1 pet... IE Swarm pets, sword/hammer pets, etc.

Just an idea... Glad someones workin on this though, awesome news!

If youre curious(not trying to plug) the dbs and emu versions im using are here:
http://www.eqemulator.net/forums/sho...893#post109893

SuedeWorthey 06-11-2005 07:42 PM

Yeah, hitting ignore will allow the application to continue, but you shouldn't have to hit ignore in the first place. I will look some more to see if I can track down the messed up code...

-Suede-

iwantavr4 06-11-2005 08:50 PM

Try going into Veeshans peak(mapname veeshan), theres some drakes on the way to hoskar(i think it is) they are two wizards... They both summon a familiar AND a invisible 'pet'. If you are in GM mode you can see them summoning the sword of xuxil or wahtever, if you kill the invisible pet with #kill(so they dont attack you), they will summon another one. Which is when I got the same error, i did it with both, and the error happened exactly when they summoned it...

Im not a coder or programmer...

I also noticed theres a lot of 'wizard contraptions' or something in dragon necropolis that did real similar things, it seemed, but i didnt do too much research on those i must admit... There is one right in fron of zlandicar, and quite a few on the way to him, theyre normally just traps.

Would be great if you could fix this, too many times have i been tping something in, to have that error popup and i spacebar and kill my zone, makes me sad :P


All times are GMT -4. The time now is 06:46 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.