PDA

View Full Version : Preliminary fixes after 12-15-04 patch



uRit1u2CBBA=
12-15-2004, 04:07 PM
Everquest.h:

Line 476: Increase size of unknown0520 from 160 to 164.

Line 586: Increase size of unknown11366 from 50 to 6922.


If someone can figure out what that almost new 7k of data is in the player structure, cool -- but these 2 changes will at least get you going again.

Hobo
12-15-2004, 06:19 PM
Do we need to do a recompile after changing everqeust.h?

uRit1u2CBBA=
12-15-2004, 07:29 PM
http://llaffer.com/images/smilies/slap.gif

yes.

KaL
12-15-2004, 07:46 PM
Thanks uRit1u2CBBA=.

BlueAdept
12-15-2004, 10:08 PM
If someone can figure out what that almost new 7k of data is in the player structure, cool -- but these 2 changes will at least get you going again.

I looked at it. I believe it has to do with the new back flagging. I checked all my chars. Only one has some pop flags and that is the only one that has data in it. All the other chars have 0's.

Im not going to be able to take it further because I dont have an easy way to get more flags... :)

Konaan
12-16-2004, 09:59 AM
I have made the change but cant remember how to do the recompile. Could someone please put that in again. Thank you

uRit1u2CBBA=
12-16-2004, 10:42 AM
back up one directory from where you made the code change, then run:

make

make install

L1A
12-16-2004, 11:32 AM
I see there is new .txt files too. So I copied then over as well. I did eqstr_us.txt and spells_us.txt. I forget to do this sometimes. I must be senile.
L1A

EvilCloaky
12-16-2004, 12:22 PM
Well, immediatley after the patch, most things apeared to be working for me, mobs were showing, etc. but I had no maps. When I first would zone, the map would appear briefly, then disapear after a second or 2.

I tried the above fix. Now I have maps, but no mobs showing, lol. ( I do have mobs on the text list tho just not showing on the map.)

Any further suggestions ?

uRit1u2CBBA=
12-16-2004, 12:31 PM
I see there is new .txt files too. So I copied then over as well. I did eqstr_us.txt and spells_us.txt. I forget to do this sometimes. I must be senile.
L1A

Those files are loaded at run-time, not at compile time, so they are not needed at the time you run the new "make".

uRit1u2CBBA=
12-16-2004, 12:33 PM
Well, immediatley after the patch, most things apeared to be working for me, mobs were showing, etc. but I had no maps. When I first would zone, the map would appear briefly, then disapear after a second or 2.

I tried the above fix. Now I have maps, but no mobs showing, lol. ( I do have mobs on the text list tho just not showing on the map.)

Any further suggestions ?

That sounds strange. Any strange errors show up in the console window that isn't normal?

CeleSEQ
12-16-2004, 12:43 PM
I've repackaged the binary and source RPMs for Fedora Core with these changes, versioned the build as 5.0.0.16-2.

You can grab them at http://gibbled.com/seq/

Enjoy.

(note: I'm at work, and can't test these right now, I just made a patch with the struct changes noted by ub and rebuilt. If there's more stuff found, I'll release again soon)

CeleSEQ
12-16-2004, 12:51 PM
I also made a patch file and put it in the patches section on sourceforge.

tanner
12-16-2004, 04:15 PM
Does the above patch work for everyone?

Doesn't seem to fix the missing map issues for me.

Going to wait for feedback before rolling out a debian package.

Walpurgiss
12-16-2004, 04:33 PM
worked for me.

CeleSEQ
12-16-2004, 05:27 PM
I had that missing map problem for a long time with a previous release. I eventually fixed it... I think that I did that by moving the .showeq directory from my root homedir and letting it rebuild... I think that was what it was at least... memory is fuzzy.

purple
12-16-2004, 08:27 PM
doorStruct wants to be length 80 also. And I'm getting unknown spawns rarely, but I haven't tracked it down yet. There's more to do though methinks.

justabard
12-16-2004, 09:42 PM
doorStruct wants to be length 80 also. And I'm getting unknown spawns rarely, but I haven't tracked it down yet. There's more to do though methinks.Do you mean to make this change?

Line 851: Increase size of unknown052 from 12 to 80.

or

Line 851: Increase size of unknown052 from 12 to 28.?

uRit1u2CBBA=
12-16-2004, 10:07 PM
DoorStruct is fine. Fixing the charProfileStruct size will stop the DoorStruct errors from coming.

gawker
12-16-2004, 10:46 PM
Have failing maps with the latest tarball and just these 2 mods.

uRit1u2CBBA=
12-16-2004, 11:01 PM
http://llaffer.com/images/smilies/wall.gif

For those of you still having problems -- check the console messages for any strange errors and post them.

Have you recompiled with make and make install after making the change?

gawker
12-17-2004, 12:03 AM
I think that I did that by moving the .showeq directory from my root homedir and letting it rebuild..

I did this and recreated my /usr/local/share/showeq dir as well...

Fixed the map problem. Must be some permission issue or old/bad preferences xml.

tanner
12-18-2004, 02:29 PM
Just put up showeq-5.0.0.16-2

FAQ for the Debian packge, installation instruction listed below:

http://faq.eqenchanters.org/index.php?sid=40&lang=en&action=show&cat=383683

Please post Debian specific issues into BTS (bug tracking system) the upstream devs are busy enough, so if you aren't sure post to BTS and I'll figure it out for you :-)

http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=showeq

A package overview, as well as notification of changes to the package, build logs, etc:

http://packages.qa.debian.org/s/showeq.html

ThePowerTool
12-18-2004, 02:40 PM
I made the updates to lines 476 and 586 and triple-checked for type-os.

I'm seeing spawns and maps just fine, SEQ appears to be functioning properly (upon cursory review), but the following errors display -

Info: Checked for all variants of 'unknown.map', 'unknown.txt', and 'unknown_1.txt'
Info: in directories '/root/.showeq/maps' and '/usr/local/share/showeq/maps'!
Info: Loaded 9757 message strings from '/usr/local/share/showeq/eqstr_us.txt' maxFormat=45222
Warning: INVALID PACKET: Bad CRC32 [192.168.1.62:1101 -> 199.108.3.4:9875] seq 6450 len 4 crc32 (00066450 != 00000000)
Info: Client Detected: 192.168.1.56
Info: GuildMgr: New guildsfile written
Info: GuildMgr: Guildsfile loaded
Warning: INVALID PACKET: Bad CRC32 [192.168.1.62:1101 -> 199.108.3.4:9875] seq 6450 len 4 crc32 (00066450 != 00000000)
Warning: INVALID PACKET: Bad CRC32 [192.168.1.62:1101 -> 199.108.3.4:9875] seq 6450 len 4 crc32 (00066450 != 00000000)
Warning: INVALID PACKET: Bad CRC32 [199.108.3.4:9875 -> 192.168.1.56:2032] seq b343 len 10 crc32 (b3b1dd1b != 97a60a0b)
Warning: INVALID PACKET: Bad CRC32 [192.168.1.56:2718 -> 199.108.3.4:9875] seq 0000 len 14 crc32 (00000200 != a272db03)
Warning: INVALID PACKET: Bad CRC32 [199.108.3.4:9875 -> 192.168.1.56:2718] seq 0810 len 21 crc32 (00000002 != 9dfea485)
Zone: EntryCode: Client
Warning: INVALID PACKET: Bad CRC32 [192.168.1.56:2718 -> 199.108.3.4:9875] seq cb6c len 39 crc32 (c7c7463f != 99989361)
Warning: INVALID PACKET: Bad CRC32 [199.108.3.4:9875 -> 192.168.1.56:2718] seq cbcb len 6 crc32 (cbcb403a != 2c04f614)
Info: Loaded map: '/usr/local/share/showeq/maps/butcher.map'
Info: Loading Zone Filter File: /home/download/ShowEQPrep/showeq-5.0.0.16
Zone: Zoning, Please Wait... (Zone: 'butcher')

I'm also getting

Warning: INVALID PACKET: Bad CRC32 [192.168.1.56:1052 -> 199.108.3.4:9875] seq 69ff len 4 crc 32 (000669ff != 00000000)
Warning: OP_SpawnDoor (0x292) (datalen: 11280) doesn't match: modulus of sizeof(doorStruct):64

I'm not sure this is enough data. Please let me know what else might be required.

192.168.1.56 is my main EQ client.
192.168.1.62 is a secondary EQ client I almost never use with SEQ.
192.168.1.52 is the SEQ box.

gruntsters
12-19-2004, 03:53 PM
I have the same problem with map appearing as I zone, then once my character is loaded into the zone, the map disappears.

A temporary fix is to manaully load the map and it will work until you zone again.

I haven't had any problem with mobs and such, they are always listed and plotted on the screen.

CeleSEQ
12-20-2004, 10:50 AM
The maps loading for a second then going away issue isn't a problem due to changed data structures, it seems to be an issue with the files in ~/.showeq after a struct change sometimes.

My guess is that the issue is either with the spawn point listings, or ~/.showeq/tmp/lastZone.dat, but I can't verify exactly which of those since I can't duplicate the issue reliably. I can say that I have had success by deleting the ~/.showeq directory and letting it rebuild, but by doing so you do lose your spawnpoint records. Others have also re-installed their maps, but I don't see how that would help honestly... could be a permissions thing I guess.

At any rate, it's not a problem with the client, just with the temporary data you have stored.

gruntsters
12-28-2004, 09:56 PM
I found out my problem. Pardon me if I use the wrong terminology. I used an old make file that didn't have the last manual changes to the lenghts of the data. Once I made the new changes in the correct and last build I used and recompiled it, it works fine.

Although I have a new problem, I re-compiled new maps from mapfiend. When I zone usually the map takes up the whole screen and that is x1. Now a few of the maps after I zone in pop up normally,but then shrink extremely small at x1 size, so that at x32 it doesn't magnify as much.

Should I start a new thread for this new problem ?

uRit1u2CBBA=
12-29-2004, 05:06 PM
That's a problem that I've been seeing -- it's usually due to some mob under the world off in some far-reaching corner of the zone, so when it's drawn, map shrinks to fit, and you get what you see.

uRit1u2CBBA=
12-29-2004, 05:57 PM
I did a little further thinking, and remembered that DS always seemed to be a bad zone for shrinkage -- so I looked at the spawnlist, and it looked like there is a problem with the DoorSpawn structure.

I've not had time to look into it yet, if someone else can see what's wrong with it, that would help others out.

Cryonic
12-29-2004, 06:41 PM
are there any messages in the console about the doorspawn structure?

ieatacid
12-29-2004, 07:35 PM
are there any messages in the console about the doorspawn structure?
PoTranquility:

Warning: OP_SpawnDoor (0x292) (dataLen: 2080) doesn't match: modulus of sizeof(doorStruct):64

PoKnowledge:

Info: Loaded map: '/usr/local/share/showeq/maps/Poknowledge.map'
Info: Loading Zone Filter File: /root/.showeq/filters/poknowledge.xml
Zone: Zoning, Please Wait... (Zone: 'poknowledge')
Debug: Player::zoneBegin(): Pos (-285.000000/-148.000000/-159.000000) Heading: 0.000000
Zone: EntryCode: Server, Zone:
Time: Tue Apr 16,3191 - 04:27 am
Warning: OP_SpawnDoor (0x292) (dataLen: 2080) doesn't match: modulus of sizeof(doorStruct):64
Debug: Welcome to lovely downtown 'The Plane of Knowledge' with an experience multiplier of 1.000000
Debug: Safe Point (-285.000000, -148.000000, -159.000000)
Info: Loading Zone Filter File: /root/.showeq/filters/poknowledge.xml
Zone: Entered: ShortName = 'poknowledge' LongName = The Plane of Knowledge
Zone: NewCode: Zone: PoKnowledge (The Plane of Knowledge)
Warning: OP_SpawnDoor (0x292) (dataLen: 11280) doesn't match: modulus of sizeof(doorStruct):64

Hope that helps. If you need more let me know.

Cryonic
12-29-2004, 09:22 PM
looks like it has grown from 64 to 80 bytes in size.

You can find the doorStruct in everquest.h
it should end with something like /* 0064 */
Change the final lines to:


/*0052*/ uint8_t unknown052[28]; // ***Placeholder
/*0080*/

ieatacid
12-29-2004, 10:42 PM
Thanks. That seems to have done the trick :)

uRit1u2CBBA=
12-30-2004, 01:11 AM
Looks like the 16 new bytes isn't at the end of the structure.

x/y/z coordinates for all doors are showing up as 0,0,0 now.

I've never figured out how to get packet dumps -- but I'm trying things with the structure and compiling (very non-efficient, but best I can do). :)

uRit1u2CBBA=
12-30-2004, 01:36 AM
ok - I got it working.

Since there isn't a lot of choices between the start of the structure and where the x/y/z coordinates is, my first guess was correct :)

Here is what the new doorStruct should look like:


struct doorStruct
{
/*0000*/ char name[16]; // Filename of Door?
/*0016*/ uint8_t unknown016[16]; // ***Placeholder
/*0032*/ float y; // y loc
/*0036*/ float x; // x loc
/*0040*/ float z; // z loc
/*0044*/ float heading; // heading
/*0048*/ uint8_t unknown048[7]; // ***Placeholder
/*0055*/ int8_t auto_return;
/*0056*/ uint8_t initialState;
/*0057*/ uint8_t unknown057[3]; // ***Placeholder
/*0060*/ uint8_t doorId; // door's id #
/*0061*/ uint8_t opentype;
/*0062*/ uint8_t size; // size of door
/*0063*/ uint8_t holdstateforever;
/*0064*/ uint32_t zonePoint;
/*0068*/ uint8_t unknown068[12]; // ***Placeholder
/*0080*/
};

BlueAdept
12-30-2004, 06:18 PM
ok - I got it working.


Nice Work! :)

purple
12-30-2004, 09:27 PM
Concur with the doorStruct change. That's what I've been running with since the patch and haven't seen any map weirdness. Woulda posted sooner, but someone said doorStruct didn't need changin' *cough* *cough*

Packet dumps are easy to get. For door things, find a zone with doors, zone out of it, go to Network->Log and turn on Zone Data, then zone and turn Zone Data logging back off. Then go into your .showeq/logs directory and you'll have a zone.log. It's got hex dumps separated out by opcodes. It's not bad to fiddle through.

I'm also running a different charProfileStruct and spellBuff struct now. These changes were pretty big and I don't know how comfortable with them I am. I bumped up buffs to size 20, reversed 4 bytes in the spellBuff struct because that's what I saw in the packet dumps, and realigned stuff so the identified things looked correct. Doing this dropped out some things which I wasn't completely comfortable with, but I did it anyways. The biggest thing I dropped was zoneInstance. I don't have an old packet dump with instance information in it, but it just didn't fit between zoneId and the buffs in current packet dumps.



/*
** Buffs
** Length: 16 Octets
** Used in:
** charProfileStruct(2d20)
*/

struct spellBuff
{
/*0000*/ uint8_t unknown0012; //
/*0001*/ int8_t level; // Level of person who cast buff
/*0002*/ uint8_t unknown0014; //
/*0003*/ uint8_t unknown0015; //
/*0004*/ int32_t spellid; // Spell
/*0008*/ int32_t duration; // Time remaining in ticks
/*0012*/ int32_t effect; // holds the dmg absorb amount on runes
/*0016*/
};

/*
** Player Profile
** Length: 18288 Octets
** OpCode: CharProfileCode
*/
struct charProfileStruct
{
/*0000*/ uint32_t checksum; //
/*0004*/ char name[64]; // Name of player sizes not right
/*0068*/ char lastName[32]; // Last name of player sizes not right
/*0100*/ uint32_t gender; // Player Gender - 0 Male, 1 Female
/*0104*/ uint32_t race; // Player race
/*0108*/ uint32_t class_; // Player class
/*0112*/ uint32_t aapoints; // unspent ability points? (wrong?)
/*0116*/ uint32_t level; // Level of player (might be one byte)
/*0120*/ uint32_t bind_zone_id[5]; // Zone player is bound in
/*0140*/ float bind_x[5]; // Bind loc x coord
/*0160*/ float bind_y[5]; // Bind loc y coord
/*0180*/ float bind_z[5]; // Bind loc z coord
/*0200*/ float bind_heading[5]; // *** PLaceholder
/*0220*/ uint32_t deity; // deity
/*0224*/ int32_t guildID; // guildID
/*0228*/ uint32_t birthdayTime; // character birthday
/*0232*/ uint32_t lastSaveTime; // character last save time
/*0236*/ uint32_t timePlayedMin; // time character played
/*0240*/ uint8_t pvp; // 1=pvp, 0=not pvp
/*0241*/ uint8_t level1; // Level of Player
/*0242*/ uint8_t anon; // 2=roleplay, 1=anon, 0=not anon
/*0243*/ uint8_t unknown243; // *** Placeholder
/*0244*/ int8_t guildstatus; // 0=member, 1=officer, 2=guildleader
/*0245*/ uint8_t unknown0245[55]; // *** Placeholder
/*0296*/ uint8_t haircolor; // Player hair color
/*0297*/ uint8_t beardcolor; // Player beard color
/*0298*/ uint8_t eyecolor1; // Player left eye color
/*0299*/ uint8_t eyecolor2; // Player right eye color
/*0300*/ uint8_t hairstyle; // Player hair style
/*0301*/ uint8_t beard; // Player beard type
/*0302*/ uint8_t unknown0302[2]; // *** Placeholder
/*0304*/ uint32_t item_material[9]; // Item texture/material of worn/held items
/*0340*/ uint8_t unknown0256[52]; // *** Placeholder
/*0392*/ Color_Struct item_tint[9]; // RR GG BB 00
/*0428*/ AA_Array aa_array[122]; // Length may not be right
/*0672*/ uint8_t unknown0672[716]; // ?? pet data? 7-14
/*1392*/ char servername[32]; // server the char was created on
/*1420*/ char title[32]; // title before the characters name
/*1452*/ uint8_t unknown1452[36]; // unknown
/*1492*/ uint32_t exp; // Current Experience
/*1496*/ uint32_t unknown1496; // *** Placeholder
/*1500*/ uint32_t points; // Unspent Practice points
/*1504*/ uint32_t MANA; // Current MANA
/*1508*/ uint32_t curHp; // Current HP without +HP equipment
/*1512*/ uint32_t unknown1308; // 0x05
/*1516*/ uint32_t STR; // Strength
/*1520*/ uint32_t STA; // Stamina
/*1524*/ uint32_t CHA; // Charisma
/*1528*/ uint32_t DEX; // Dexterity
/*1532*/ uint32_t INT; // Intelligence
/*1536*/ uint32_t AGI; // Agility
/*1540*/ uint32_t WIS; // Wisdom
/*1544*/ uint8_t face; // Player face
/*1545*/ uint8_t unknown1545[47]; // *** Placeholder
/*1592*/ uint8_t languages[25]; // List of languages (MAX_KNOWN_LANGS)
/*1617*/ uint8_t unknown1617[7]; // All 0x00
/*1624*/ int32_t sSpellBook[400]; // List of the Spells in spellbook
/*3224*/ uint8_t unknown3224[448]; // all 0xff after last spell
/*3672*/ int32_t sMemSpells[9]; // List of spells memorized
/*3708*/ uint8_t unknown3580[32]; // *** Placeholder
/*3740*/ float x; // Players x position
/*3744*/ float y; // Players y position
/*3748*/ float z; // Players z position
/*3752*/ float heading; // Players heading
/*3756*/ uint8_t unknown3756[4]; // *** Placeholder
/*3760*/ uint32_t platinum; // Platinum Pieces on player
/*3764*/ uint32_t gold; // Gold Pieces on player
/*3768*/ uint32_t silver; // Silver Pieces on player
/*3772*/ uint32_t copper; // Copper Pieces on player
/*3776*/ uint32_t platinum_bank; // Platinum Pieces in Bank
/*3780*/ uint32_t gold_bank; // Gold Pieces in Bank
/*3784*/ uint32_t silver_bank; // Silver Pieces in Bank
/*3788*/ uint32_t copper_bank; // Copper Pieces in Bank
/*3792*/ uint32_t platinum_cursor; // Platinum Pieces on cursor
/*3796*/ uint32_t gold_cursor; // Gold Pieces on cursor
/*3800*/ uint32_t silver_cursor; // Silver Pieces on cursor
/*3804*/ uint32_t copper_cursor; // Copper Pieces on cursor
/*3808*/ uint32_t platinum_shared; // Shared platinum pieces
/*3812*/ uint8_t unknown3812[20]; // Unknown - all zero
/*3832*/ uint32_t skills[75]; // List of skills (MAX_KNOWN_SKILLS)
/*4132*/ uint8_t unknown4132[408]; // *** Placeholder
/*4540*/ uint32_t zoneId; // see zones.h
/*4544 uint32_t zoneInstance; // Used to be here... */
/*4544*/ spellBuff buffs[20]; // Buffs currently on the player
/*4864*/ char groupMembers[MAX_GROUP_MEMBERS][64];// all the members in group, including self
/*5248*/ uint8_t unknown5248[668]; // *** Placeholder
/*5916*/ uint32_t ldon_guk_points; // Earned GUK points
/*5920*/ uint32_t ldon_mir_points; // Earned MIR points
/*5924*/ uint32_t ldon_mmc_points; // Earned MMC points
/*5928*/ uint32_t ldon_ruj_points; // Earned RUJ points
/*5932*/ uint32_t ldon_tak_points; // Earned TAK points
/*5936*/ uint32_t ldon_avail_points; // Available LDON points
/*5940*/ uint8_t unknown5940[448]; // *** Placeholder
/*6388*/ uint8_t unknown6388[84]; // *** Placeholder
/*6472*/ uint8_t unknown6472[176]; // *** Placeholder
/*6648*/ uint32_t endurance; // Current endurance
/*6652*/ uint8_t unknown6652[4888]; // *** Placeholder
/*11540*/ uint16_t altexp; // Total aaxp points
/*11542*/ uint8_t unknown11542[6746]; // *** Placeholder
}; /* 18288 */


Use at your own risk, etc. etc. But if anyone wants to take the time to validate any of that, it's appreciated. Honestly, for the most part all you all really care about is the zoneId being in the right spot so maps work, but the more out of whack we let these structs get, the harder it will be if we ever want to bring them up to date.

No diff, since people aren't running the cvs version anyways right now I don't think. Hard to have a diff with no base version to diff off!

Oh, and I'm still getting unknowns rarely but I've had no luck figuring out what they are. My best guess is currently pets turn into unknowns when their owner zones, but that's just wild ass guessing.

purple
12-30-2004, 09:51 PM
Oh, I also generated a new staticspells.h file from the most recent spells_us.txt.

Attached it.

uRit1u2CBBA=
12-30-2004, 10:23 PM
I'm in the process of re-downloading the last official .16 release, and I'll build and make available a patch to get all of these changes in place.

In my verison of charStruct, I double checked your unknown labels and the offset comments of every entry, so that will be part of the patch as well.