diff --git a/common/patches/larion_structs.h b/common/patches/larion_structs.h index 20c5a9084..3dc356429 100644 --- a/common/patches/larion_structs.h +++ b/common/patches/larion_structs.h @@ -3,7 +3,221 @@ namespace Larion { namespace structs { - + struct LoginInfo_Struct { + /*000*/ char login_info[64]; + /*064*/ uint8 unknown064[124]; + /*188*/ uint8 zoning; // 01 if zoning, 00 if not + /*189*/ uint8 unknown189[275]; + /*488*/ + }; + + struct LogServer_Struct { + //As far as I can tell the client does not read this field + /*000*/ uint32 unknown000; + //client sets this to 140e32edc, confirmed it deals with pvp via disassembly aka hasn't moved + /*004*/ uint8 enable_pvp; + /*005*/ uint8 unknown005; + /*006*/ uint8 unknown006; + /*007*/ uint8 unknown007; + //client sets this to 140e32ee0, this was set to 1 on special ruleset servers but 0 on non-special ruleset servers + /*008*/ uint8 special_ruleset; + //client sets this to 140e3bedd + //I've seen 0 on normal servers + //it deals with char select and # of char slots somehow + /*009*/ uint8 unknown009; + //client sets this to 140e32ee1, confirmed via disassembly to be enable_FV + /*00a*/ uint8 enable_FV; + //client sets this to 140e3bf0, seems to affect the made by label on items + //always has been 0 for me + /*00b*/ uint8 enable_made_by; + //client sets this to 140e3bf09 + //I see it being written to but not read in code + //I've only ever seen it passed as 1 + /*00c*/ uint8 unknown00c; + //client sets this to 140e3bf0a + //I've only ever seen it passed as 1 + //0 seems to disable something about languages? + /*00d*/ uint8 languages_enabled; + /*00e*/ uint8 unknown00e; + /*00f*/ uint8 unknown00f; + /*010*/ uint8 unknown010; + /*011*/ uint8 unknown011; + /*012*/ uint8 unknown012; + /*013*/ uint8 unknown013; + /*014*/ uint8 unknown014; + /*015*/ char worldshortname[32]; + /*035*/ uint8 unknown035[11]; + /*040*/ uint8 unknown040[16]; + /*050*/ uint8 unknown050[16]; + /*060*/ uint8 unknown060[16]; + /*070*/ uint8 unknown070[16]; + /*080*/ uint8 unknown080[16]; + /*090*/ uint8 unknown090[16]; + /*0a0*/ uint8 unknown0a0[16]; + /*0b0*/ uint8 unknown0b0[16]; + /*0c0*/ uint8 unknown0c0[16]; + /*0d0*/ uint8 unknown0d0[16]; + /*0e0*/ uint8 unknown0e0[16]; + /*0f0*/ uint8 unknown0f0[16]; + /*100*/ uint8 unknown100[16]; + /*110*/ uint8 unknown110[16]; + /*120*/ uint8 unknown120[16]; + /*130*/ uint8 unknown130[16]; + /*140*/ uint8 unknown140[16]; + /*140*/ uint8 unknown140[16]; + /*150*/ uint8 unknown150[16]; + /*160*/ uint8 unknown160[16]; + /*170*/ uint8 unknown170[16]; + /*180*/ uint8 unknown180[16]; + /*190*/ uint8 unknown190[16]; + /*1a0*/ uint8 unknown1a0[16]; + /*1b0*/ uint8 unknown1b0[16]; + /*1c0*/ uint8 unknown1c0[16]; + /*1d0*/ uint8 unknown1d0[16]; + /*1e0*/ uint8 unknown1e0[16]; + /*1f0*/ uint8 unknown1f0[16]; + /*200*/ uint8 unknown200[16]; + /*210*/ uint8 unknown210[16]; + /*220*/ uint8 unknown220[16]; + /*230*/ uint8 unknown230[16]; + /*240*/ uint8 unknown240[16]; + /*240*/ uint8 unknown240[16]; + /*250*/ uint8 unknown250[16]; + /*260*/ uint8 unknown260[16]; + /*270*/ uint8 unknown270[16]; + /*280*/ uint8 unknown280[16]; + /*290*/ uint8 unknown290[16]; + /*2a0*/ uint8 unknown2a0[16]; + /*2b0*/ uint8 unknown2b0[16]; + /*2c0*/ uint8 unknown2c0[16]; + /*2d0*/ uint8 unknown2d0[16]; + /*2e0*/ uint8 unknown2e0[16]; + /*2f0*/ uint8 unknown2f0[16]; + /*300*/ uint8 unknown300[16]; + /*310*/ uint8 unknown310[16]; + /*320*/ uint8 unknown320[16]; + /*330*/ uint8 unknown330[16]; + /*340*/ uint8 unknown340[16]; + /*340*/ uint8 unknown340[16]; + /*350*/ uint8 unknown350[16]; + /*360*/ uint8 unknown360[16]; + /*370*/ uint8 unknown370[16]; + /*380*/ uint8 unknown380[16]; + /*390*/ uint8 unknown390[16]; + /*3a0*/ uint8 unknown3a0[16]; + /*3b0*/ uint8 unknown3b0[16]; + /*3c0*/ uint8 unknown3c0[16]; + /*3d0*/ uint8 unknown3d0[16]; + /*3e0*/ uint8 unknown3e0[16]; + /*3f0*/ uint8 unknown3f0[16]; + /*400*/ uint8 unknown400[16]; + /*410*/ uint8 unknown410[16]; + /*420*/ uint8 unknown420[16]; + /*430*/ uint8 unknown430[16]; + /*440*/ uint8 unknown440[16]; + /*440*/ uint8 unknown440[16]; + /*450*/ uint8 unknown450[16]; + /*460*/ uint8 unknown460[16]; + /*470*/ uint8 unknown470[16]; + /*480*/ uint8 unknown480[16]; + /*490*/ uint8 unknown490[16]; + /*4a0*/ uint8 unknown4a0[16]; + /*4b0*/ uint8 unknown4b0[16]; + /*4c0*/ uint8 unknown4c0[16]; + /*4d0*/ uint8 unknown4d0[16]; + /*4e0*/ uint8 unknown4e0[16]; + /*4f0*/ uint8 unknown4f0[16]; + /*500*/ uint8 unknown500[16]; + /*510*/ uint8 unknown510[16]; + /*520*/ uint8 unknown520[16]; + /*530*/ uint8 unknown530[16]; + /*540*/ uint8 unknown540[16]; + /*540*/ uint8 unknown540[16]; + /*550*/ uint8 unknown550[16]; + /*560*/ uint8 unknown560[16]; + /*570*/ uint8 unknown570[16]; + /*580*/ uint8 unknown580[16]; + /*590*/ uint8 unknown590[16]; + /*5a0*/ uint8 unknown5a0[12]; + //Client reads this and sets it to 140e32ee2 + //I've only ever seen 0, it affects some calculation in the client + /*5ac*/ uint8 unknown5ac; + /*5ad*/ uint8 unknown5ad[3]; + /*5b0*/ uint8 unknown5b0[3]; + //Client reads this and sets it to 140e3bf18 + //seems to enable the voice system + /*5b4*/ uint8 enable_voice_system; + //Client reads this and sets it to 140e3bef0 + //Seems to enable the mail system + /*5b5*/ uint8 enable_mail; + //Client reads this and sets it to 140e3bef1 + //Not entirely sure what this does, it seems to be related to character create + //I've only ever seen it set to 0 + /*5b6*/ uint8 unknown5b6; + /*5b7*/ uint8 unknown5b7; + //Client reads this and sets it to 140e3bef2 + //Not entirely sure what this does, it seems to be related to character create + //Seen set to 1 + /*5b8*/ uint8 unknown5b8; + /*5b9*/ uint8 unknown5b9[8]; + //Client sets this to 140e3beec + //Seems to help enable beta buff command + /*5c0*/ uint8 beta_buff_enabled; + //Client sets this to 140e3beed + //Guessing this is for marking as a beta server + /*5c1*/ uint8 is_beta_server; + //Client sets this to 140e3beee + //Test sets this to one and all 3 of these need to be 1 to use /betabuff + /*5c2*/ uint8 is_test_server; + //Client sets this to 140e3beef + //Client writes but doesn't read this anywhere as far as I can tell + /*5c3*/ uint8 unknown5c3; + /*5c4*/ uint8 unknown5c4[12]; + /*5d0*/ uint8 unknown5d0[16]; + /*5e0*/ uint8 unknown5e0[16]; + /*5f0*/ uint8 unknown5f0[12]; + //Client sets this to 140e3d5f4 + //Not sure what this affects + //I've seen ff ff ff ff passed + /*5fc*/ int32 unknown5fc; + //Client sets this to 140e3d5f4 + //not sure what this does + //Ive seen 0 on normal servers but 1 on test + /*600*/ int32 unknown600; + /*604*/ uint8 unknown604[12]; + /*610*/ uint8 unknown610[16]; + /*620*/ uint8 unknown620[16]; + /*630*/ uint8 unknown630[16]; + /*640*/ uint8 unknown640[16]; + /*640*/ uint8 unknown640[16]; + /*650*/ uint8 unknown650[16]; + /*660*/ uint8 unknown660[16]; + /*670*/ uint8 unknown670[16]; + /*680*/ uint8 unknown680[16]; + /*690*/ uint8 unknown690[16]; + /*6a0*/ uint8 unknown6a0[16]; + /*6b0*/ uint8 unknown6b0[16]; + /*6c0*/ uint8 unknown6c0[16]; + /*6d0*/ uint8 unknown6d0[16]; + /*6e0*/ uint8 unknown6e0[16]; + /*6f0*/ uint8 unknown6f0[16]; + /*700*/ uint8 unknown700[16]; + /*710*/ uint8 unknown710[14]; + //Client reads this and sets it to 140e32ee2 + //based on strings near related disassembly im guessing this controls + //which kind of items are allowed (there are strings for heirloom, prestige, etc) + //every server ive logged in so far has had this to 0 but I haven't tried a TLP yet + /*71d*/ uint8 heirlooms_disabled; + /*71e*/ uint8 unknown71e; + /*720*/ uint8 unknown720[16]; + }; + + struct ClientZoneEntry_Struct { + /*00*/ uint32 unknown00; // ***Placeholder + /*04*/ char char_name[64]; // Player firstname [32] + /*68*/ uint32 unknown68; + /*72*/ uint32 unknown72; + }; }; //end namespace structs }; //end namespace larion