PDA

View Full Version : Getting 5.7 - DR2 working


Gyrepin
05-02-2004, 09:34 PM
For those of you out htere who are having problems with character creation, I got mine working earlier today by doing the following:

Starting with the 5/1/04 files, some editing will need to be done in .\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;'.

After making those changes my server works fine, character creation and all.

Good luck.
-Gyre

AK1122
05-02-2004, 11:22 PM
OMG thanx.. ur fix works wonders... Can devs incorporate it into their code please?

Fireb0rn
05-03-2004, 02:21 PM
yay

mikenune
05-03-2004, 04:35 PM
Looks like the people agree.

Tastes great! :D

laerg619
05-05-2004, 12:43 PM
I don't know what in the world I might be doing wrong... I followed your instructions by the letter, got no errors with compilation, and still I cannot create a character. I used the 05-01 CVS, and even tried the 05-05 CVS, and still I can't create a character.
(As a side note, I even tried the method in the other post with adding that extra line in the eq_packet_structs.h file)

Interestingly enough, this WILL work with the latest EQ Live patch (05-05), but I can only log in with the eqemu account, and not my custom account (which has my other characters and serverop access level).
As an addendum, I use a minilogin server.

Anyone have any ideas of what I could be doing wrong?

Gyrepin
05-05-2004, 04:07 PM
Well, I don't. But if you can repro a world break and get a stack trace it will give you some idea as to where to look.

My repro steps for the problem where:
!. Try to create a character. Tha would fail at the last step.
2. Go back to character selection and create another character.
3. At the name selection stage, hit the name generation button. If it returns a blank name, you have a repro.
4. Keep hitting the name generation button until you get disconnected from the server. At this point world.exe has hit an unrecoverable problem.

You can get the stack trace from world.exe by launching it in a debugger. I use ntsd in Windows.
"ntsd -g world.exe"

hope that helps.

-Gyre

AK1122
05-07-2004, 08:36 PM
laerg619,

Interestingly enough, this WILL work with the latest EQ Live patch (05-05), but I can only log in with the eqemu account, and not my custom account (which has my other characters and serverop access level).
As an addendum, I use a minilogin server.

Well theres ur answer

I use a minilogin server.

Got the MiniLoginAccounts.ini file set up? =)
if you dont it will log u in only to eqemu/eqemu.

Should look like this:

MiniLoginAccounts.ini
IP1 Account_Name1 Password1
IP2 Account_Name2 Password2
...



However, be careful. After each line you need to have a space so
IP1 Account_Name1 Password1 (space)
and also there has to be a blank line at the end of the life.

Hope this helps =) if it doesn't ill look into your problem some more.

Good luck!

laerg619
05-08-2004, 07:47 AM
I have the minilogin accounts file set up, and have been using my own personal server for a while now :) I haven't tried the method described two posts above to locate the error yet (haven't had too much time as of late), but will get to it! ;)

AK1122
05-08-2004, 07:51 PM
try this for character still not creating :

in world/client.cpp : around line 384
else if (app->size != sizeof(CharCreate_Struct))
{
cout << "Wrong size on OP_CharacterCreate. Got: " << app->size << ", Expected: " << sizeof(CharCreate_Struct) << endl;
DumpPacket(app);
break;
}
to

else if (app->size != sizeof(CharCreate_Struct))
{
cout << "Wrong size on OP_CharacterCreate. Got: " << app->size << ", Expected: " << sizeof(CharCreate_Struct) << endl;
DumpPacket(app);
//break;
}

Also, I can't see why it only lets you log in eqemu/eqemu :S

checked to make sure ur DB matches ur miniloginaccounts.ini EXACTLY? sometimes i make a mistake there :P

hmm good luck with that