PDA

View Full Version : Oct 13 struct changes



codepig666
10-13-2004, 02:01 PM
3 easy changes in your everquest.h file:

ServerZoneEntryStruct
change last unknown to 119 bytes

newZoneStruct
change last unknown to 160 bytes

spawnStruct
change last unknown to 119 bytes


enjoy

-piggy

Cyra
10-13-2004, 02:28 PM
I am dense.

Went to everquest.h and to edit...

Did Find ServerZoneEntryStruct...

Got line reading

struct ServerZoneEntryStruct

Scrolled down to find last unknown...

Found line reading:

/*0262*/ uint8_t unknown260[7];

Is this the correct line to change? And if so, do I change the 260 to 119, or the [7]?

Thanks, and thank you for posting these changes.

uRit1u2CBBA=
10-13-2004, 02:46 PM
when you see something like "unknown0290[7]" -- the varaible name is "unknown0290" -- named such since it starts at the 290th byte of the structure, and is of length 7.

So if you need to change it to length of 119, then it will look like:

unknown0290[119]

Cyra
10-13-2004, 02:52 PM
Well, its not the 260. Changed those and got error during compile in everquest.h.

Not sure whether to change the *0262* or the [7] next, but sure wish I remember what those numbers were before I made the changes.

uRit1u2CBBA=
10-13-2004, 02:53 PM
I just looked at my version of the code, and I had a length of 115, not a length of 7 -- so either you're example came from somewhere else, or you have a really old version of the code, which then other problems are expected to still exist that has been fixed -- you may have to wait for a new tarball.

Cyra
10-13-2004, 02:53 PM
Oops...missed the above post while I was posting.

Thank you kindly.

Cyra
10-13-2004, 02:54 PM
Dang, I just did a new CVS download. Is it not current?

uRit1u2CBBA=
10-13-2004, 02:57 PM
No - the latest relese wasn't pushed to CVS to my knowledge -- look in the news for the .15 tarball release, and follow it's instructions for installation (then changing the 3 pieces of the everquest.h file before compiling)

Cyra
10-13-2004, 03:17 PM
I went to the Help section and followed the FAQ for a fresh install. This is much better.

Really appreciate the help. Thank you.

Frank25
10-13-2004, 04:33 PM
does this make skittles work? if so i must have done something wrong because i only get map + myself and nothing else heh

I<3EQ
10-13-2004, 04:33 PM
I'm a big fan of self deprecating humor so I feel compelled to post this here.

I was just editing everquest.h while grouped in an OoW zone. My linux machine shares a keyboard and mouse (but not monitor) with my windows machine via KVM. For some reason, after I edited the file, it would just not compiled. I went back and looked at the lines I had edited. I didn't accidently remove any punctuation or operators, I didn't change any variable names by accident -- I was dumbfounded.

Then, as I was casting a spell and had to duck out real quick on my EQ machine... I realized what key sequence I used... 'dd' -- the sequence for deleting a line in vi. It dawned on me that I must have accidently removed something while editing the file last time because I thought I was ducking on my windows machine but was really in vi on my linux machine.

Sure enough, open up everquest.h and missing from the first line was the opening /* for the comment block. I r newb.

I personally think its a SoE conspiracy to stop us from using show. :p

don'tdoit
10-13-2004, 04:49 PM
working great here, skittles and all.

KaL
10-13-2004, 05:05 PM
Worked for me. Ah, beautiful skittles. Taste the rainbow.

cjd1
10-13-2004, 05:21 PM
Use the tarball, not cvs. Make clean (if you've built in this dir before), and make again.

Frank25
10-13-2004, 05:41 PM
flog me with the newbstick :P

Managed to forget to "make install"

you'd think after 4 years or so of running linux + SeQ i should knowbetter hehe

Mortician
10-13-2004, 07:42 PM
Call me a newb but I am unsure which things I have to change in the everquest.h file.

Anyone show me the parts of the file to change (i.e. cut and past them into a message).

I haven't run unix in a few years and the info is appreciated.


Mortician


Note: Got it working. I just needed a little help in figuring out the c code. Thanks again. :)

uRit1u2CBBA=
10-13-2004, 09:18 PM
Search for the name of the structure, scroll down to the end of the structure definition, change the length of the last "unknown" element.

If you don't know enough about C to follow those steps, wait for the next tarball.

Sorry to be so blunt, but this isn't CSCI 1001.

Leetlewon
10-13-2004, 10:22 PM
Yea these instructions don't work for seq5... I checked CVS, and both the .14 and .15 tarballs. All 3 have the identical last line in ServerZoneEntryStruct which is:


/*0262*/ uint8_t unknown260[115];

Leetlewon
10-13-2004, 10:28 PM
Here is the last line in the current cvs for seq4:


/*0262*/ uint8_t unknown260[7];

I'm thinking this fix is for seq4, not seq5.

uRit1u2CBBA=
10-13-2004, 10:30 PM
I'm running 5, and the fix originally posted works just fine.

I think 4 is behind.

I don't think CVS has been updated in a while -- 5.?.15 was released only as a tarball, not as a CVS update.

Leetlewon
10-13-2004, 10:36 PM
..... ok so then why if I download the tarball showeq-5.0.0.15.tar.bz2 and look in src/everquest.h under struct ServerZoneEntryStruct do I not see length 7 for unknown290 as indicated?

This is the entire struct (it's not there):


struct ServerZoneEntryStruct
{
/*0000*/ uint8_t unknown101[7];
/*0007*/ union
{
struct
{
/*0007*/ Color_Struct color_helmet; // Color of helmet item
/*0011*/ Color_Struct color_chest; // Color of chest item
/*0015*/ Color_Struct color_arms; // Color of arms item
/*0019*/ Color_Struct color_bracers; // Color of bracers item
/*0023*/ Color_Struct color_hands; // Color of hands item
/*0027*/ Color_Struct color_legs; // Color of legs item
/*0031*/ Color_Struct color_feet; // Color of feet item
/*0035*/ Color_Struct color_primary; // Color of primary item
/*0039*/ Color_Struct color_secondary; // Color of secondary item
} equipment_colors;
/*0007*/ Color_Struct colors[9]; // Array elements correspond to struct equipment_colors above
};

/*0043*/ uint8_t class_; // Player's Class
/*0044*/ uint8_t unknown0044[5];

/*0049*/ uint32_t race; // Player's Race
/*0053*/ uint8_t unknown053;
/*0054*/ char name[64]; // Player name

/*0118*/ uint8_t unknown0118[3];

/*0121*/ int8_t hp;
/*0122*/ uint8_t unknown0122;

/*0123*/ uint8_t level; // Player's Level
/*0124*/ uint8_t lfg; // 0=Not lfg,1=lfg
/*0125*/ uint16_t heading; // spawn heading
/*0127*/ uint8_t deltaHeading; // change in heading
/*0128*/ uint8_t animation; // animation id
/*0129*/ signed deltaX:13;
signed x:19;
/*0133*/ signed y:19;
signed deltaZ:13;
/*0137*/ signed deltaY:13;
signed z:19;
/*0141*/ uint8_t unknown0141[2];
/*0143*/ uint8_t invis; // 0=visible,1=invisible
/*0144*/ uint8_t unknown0124[7];

/*0151*/ float size;
/*0155*/ uint8_t helm;
/*0156*/ float runspeed; // Speed when running
/*0160*/ uint8_t unknown0160[1];
/*0161*/ float walkspeed; // Speed when walking
/*0165*/ uint32_t guildId; // Current guild
/*0169*/ uint8_t anon; // 0=normal,1=anon,2=roleplaying
/*0170*/ uint8_t gender; // 0=male,1=female,2=other
/*0171*/ uint8_t unknown171[5];

/*0176*/ char lastName[32]; // Players last name
/*0208*/ union
{
struct
{
/*0208*/ uint32_t equip_helmet; // Equipment: Helmet Visual
/*0212*/ uint32_t equip_chest; // Equipment: Chest Visual
/*0216*/ uint32_t equip_arms; // Equipment: Arms Visual
/*0220*/ uint32_t equip_bracers; // Equipment: Bracers Visual
/*0224*/ uint32_t equip_hands; // Equipment: Hands Visual
/*0228*/ uint32_t equip_legs; // Equipment: Legs Visual
/*0232*/ uint32_t equip_feet; // Equipment: Feet Visual
/*0236*/ uint32_t equip_primary; // Equipment: Primary Visual
/*0240*/ uint32_t equip_secondary; // Equipment: Secondary Visual
} equipment;
/*0208*/ Color_Struct equip[9]; // Array elements correspond to struct equipment above
};
/*0244*/ uint8_t unknown244[14];

/*0258*/ int16_t deity; // Player's Deity
/*0262*/ uint8_t unknown260[115];
}; /* 0375 */

uRit1u2CBBA=
10-13-2004, 10:43 PM
..... ok so then why if I download the tarball showeq-5.0.0.15.tar.bz2 and look in src/everquest.h under struct ServerZoneEntryStruct do I not see length 7 for unknown290 as indicated?

This is the entire struct (it's not there):


Because he's the one who said it was 7 - and he pulled it from CVS - which was out of date.


Dang, I just did a new CVS download. Is it not current?

The original poster just stated what it should be, never what it was.

Leetlewon
10-13-2004, 10:55 PM
This is getting really confusing.

I see the source of confusion. The correct change is from


/*0262*/ uint8_t unknown260[115];

to


/*0262*/ uint8_t unknown260[119];

There is no unknown290...

The reason changing unknown260 to length 119 for Cyra didn't work is because he has version 4.

Cryonic
10-13-2004, 11:36 PM
other than these minor changes SEQ 5.x is up to date in CVS, but the tarball is recommended over it as it reduces the requirements on the user to just the standard tarball install commands.

Nurseling
10-14-2004, 12:44 AM
OK i'm getting no maps after makeing the initial change i can manually load them fine any ideas. This is the text i pulled from the terminal screen.

Zone: LogoutCode: Client logged out of server
Info: EQPacket: SEQClosing detected, awaiting next zone session, pcap filter: EQ Client 192.168.123.174
Zone: EntryCode: Client
Warning: OP_PlayerProfile (0x6b) (dataLen: 11416) doesn't match: sizeof(charProfileStruct):11526
Info: No Map found for zone 'unknown'!
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: Loading Zone Filter File: /root/.showeq/filters/unknown.xml
Zone: Zoning, Please Wait... (Zone: 'unknown')
Debug: Player::zoneBegin(): Pos (-1428.000000/-1325.000000/230.000000) Heading: 0.000000
Zone: EntryCode: Server, Zone:

purple
10-14-2004, 06:20 AM
charProfileStruct from 11416 to 11526 was awhile ago and there were a handful of realignments in that struct to support OoW, one of which causes maps to not get loaded. Get the latest tar, apply the changes in the first post in this thread, ./configure && make && make install. Your seq wasn't working before yesterday's live patch anyways!

Nurseling
10-14-2004, 09:25 AM
charProfileStruct from 11416 to 11526 was awhile ago and there were a handful of realignments in that struct to support OoW, one of which causes maps to not get loaded. Get the latest tar, apply the changes in the first post in this thread, ./configure && make && make install. Your seq wasn't working before yesterday's live patch anyways!


Oddly it worked flawlessy. LEt me giv it a shot though.

Nurseling
10-14-2004, 09:52 AM
Well Started over with a new directory and a fresh unzip of the tar ball showeq-5.0.0.15.tar.bz2
And it works now not sure what i did wrong. but thank you for makeing me go back and do the quadruple check thing.

bwonderve
10-14-2004, 01:45 PM
no wonder it wasnt working... I edited the wrong unknown in serverzoneentry....


Duh :D

tfadonis
10-14-2004, 05:56 PM
How were the changes indentified in everquest.h? I am trying to figure out how to use the OpCode decoder and am having a hard time finding a good source of information to help me understand it all. I have searched around but any more direction would be useful and appreciated. Thanks in advance.

st00pidn00bie
10-14-2004, 06:06 PM
Thanks piggy.. Works great.

Noobian
10-14-2004, 07:03 PM
I'm running 5.0.0.14 and the changes worked just fine on it the SECOND time I compiled.

The first time I compiled I typed:
# make -f Makefile.dist && ./configure && make && make install

the second time I compiled I typed:
make distclean
make clean
make -f Makefile.dist && ./configure && make && make install


works like a charm!

Since I have a Celeron 375 running ShowEQ it takes a while to compile, I put all the commands on one line and just walk away.

Noobian

purple
10-14-2004, 08:14 PM
How were the changes indentified in everquest.h? I am trying to figure out how to use the OpCode decoder

These were struct changes. It was nothing more than seeing size mismatch errors on the console and changing the unknown padding placeholder at the end of the structs so that they corresponded correctly to the new packet stream.

tanner
10-14-2004, 10:25 PM
The unofficial patch



--- orig/src/everquest.h
+++ mod/src/everquest.h
@@ -445,7 +445,7 @@
/*0244*/ uint8_t unknown244[14];

/*0258*/ int16_t deity; // Player's Deity
-/*0262*/ uint8_t unknown260[115];
+/*0262*/ uint8_t unknown260[119];
}; /* 0375 */

/*
@@ -473,7 +473,7 @@
/*0508*/ float underworld; // Underworld
/*0512*/ float minclip; // Minimum view distance
/*0516*/ float maxclip; // Maximum view distance
-/*0520*/ uint8_t unknown0520[156]; // *** Placeholder
+/*0520*/ uint8_t unknown0520[160]; // *** Placeholder
/*0676*/
};

@@ -820,7 +820,7 @@
/*250*/ int8_t unknown249[4];
/*254*/ uint32_t petOwnerId;
/*258*/ int16_t deity;
-/*260*/ uint8_t unknown260[115];
+/*260*/ uint8_t unknown260[119];
/*375*/
};

fuqjak
10-18-2004, 08:16 AM
Thanks CodePig - worked perfectly for me right off the bat!

Vprecision
10-20-2004, 02:24 PM
Thank you CodePig and everyone else who helped clarify how to make this update work. It only took me a few minutes to figure this out and install the updated version. Keep up the good work!