diff --git a/changelog.txt b/changelog.txt index 26c98586a..b10dfbec7 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,8 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 11/12/2014 == +Uleat: Changed 'GMTrainee' struct to reflect the actual client hard-coded max skill count (100) - applies to all currently supported clients (6.2->RoF) + == 11/11/2014 == Uleat: Third attempt at a fix for GM trainer zone crashes... (this is starting to look like a KLS fix...) diff --git a/common/eq_packet_structs.h b/common/eq_packet_structs.h index 0630ce293..8e72ccaa8 100644 --- a/common/eq_packet_structs.h +++ b/common/eq_packet_structs.h @@ -601,8 +601,8 @@ struct GMTrainee_Struct { /*000*/ uint32 npcid; /*004*/ uint32 playerid; - /*008*/ uint32 skills[73]; - /*300*/ uint8 unknown300[148]; + /*008*/ uint32 skills[PACKET_SKILL_ARRAY_SIZE]; + /*408*/ uint8 unknown408[40]; /*448*/ }; @@ -858,7 +858,7 @@ static const uint32 MAX_PP_MEMSPELL = 9; // Set to latest client so functions ca static const uint32 MAX_PP_REF_SPELLBOOK = 480; // Set for Player Profile size retain static const uint32 MAX_PP_REF_MEMSPELL = 9; // Set for Player Profile size retain -static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size +static const uint32 MAX_PP_SKILL = PACKET_SKILL_ARRAY_SIZE; // 100 - actual skills buffer size static const uint32 MAX_PP_AA_ARRAY = 240; static const uint32 MAX_GROUP_MEMBERS = 6; static const uint32 MAX_RECAST_TYPES = 20; diff --git a/common/patches/client62_structs.h b/common/patches/client62_structs.h index aae4c7919..691eeba21 100644 --- a/common/patches/client62_structs.h +++ b/common/patches/client62_structs.h @@ -472,8 +472,8 @@ struct GMTrainee_Struct { /*000*/ uint32 npcid; /*004*/ uint32 playerid; - /*008*/ uint32 skills[73]; - /*300*/ uint8 unknown300[148]; + /*008*/ uint32 skills[PACKET_SKILL_ARRAY_SIZE]; + /*408*/ uint8 unknown408[40]; /*448*/ }; @@ -678,7 +678,7 @@ struct LeadershipAA_Struct { static const uint32 MAX_PP_LANGUAGE = 28; static const uint32 MAX_PP_SPELLBOOK = 400; static const uint32 MAX_PP_MEMSPELL = 9; -static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size +static const uint32 MAX_PP_SKILL = PACKET_SKILL_ARRAY_SIZE; // 100 - actual skills buffer size static const uint32 MAX_PP_AA_ARRAY = 240; static const uint32 MAX_GROUP_MEMBERS = 6; struct PlayerProfile_Struct diff --git a/common/patches/rof_structs.h b/common/patches/rof_structs.h index 54d72ec2b..604da1bd7 100644 --- a/common/patches/rof_structs.h +++ b/common/patches/rof_structs.h @@ -112,7 +112,7 @@ static const uint32 MAX_NUMBER_GUILDS = 1500; static const uint32 MAX_PP_LANGUAGE = 32; // was 25 static const uint32 MAX_PP_SPELLBOOK = 720; // was 480 static const uint32 MAX_PP_MEMSPELL = 16; // was 12 -static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size +static const uint32 MAX_PP_SKILL = PACKET_SKILL_ARRAY_SIZE; // 100 - actual skills buffer size static const uint32 MAX_PP_AA_ARRAY = 300; static const uint32 MAX_PP_DISCIPLINES = 200; // was 100 static const uint32 MAX_GROUP_MEMBERS = 6; @@ -767,8 +767,8 @@ struct GMTrainee_Struct { /*000*/ uint32 npcid; /*004*/ uint32 playerid; - /*008*/ uint32 skills[73]; - /*300*/ uint8 unknown300[148]; + /*008*/ uint32 skills[PACKET_SKILL_ARRAY_SIZE]; + /*408*/ uint8 unknown408[40]; /*448*/ }; diff --git a/common/patches/sod_structs.h b/common/patches/sod_structs.h index 88c0ed91a..71760514b 100644 --- a/common/patches/sod_structs.h +++ b/common/patches/sod_structs.h @@ -576,8 +576,8 @@ struct GMTrainee_Struct { /*000*/ uint32 npcid; /*004*/ uint32 playerid; - /*008*/ uint32 skills[73]; - /*300*/ uint8 unknown300[148]; + /*008*/ uint32 skills[PACKET_SKILL_ARRAY_SIZE]; + /*408*/ uint8 unknown408[40]; /*448*/ }; @@ -792,7 +792,7 @@ struct BindStruct { static const uint32 MAX_PP_LANGUAGE = 25; // static const uint32 MAX_PP_SPELLBOOK = 480; // Confirmed 60 pages on Live now static const uint32 MAX_PP_MEMSPELL = 10; //was 9 now 10 on Live -static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size +static const uint32 MAX_PP_SKILL = PACKET_SKILL_ARRAY_SIZE; // 100 - actual skills buffer size static const uint32 MAX_PP_AA_ARRAY = 300; //was 299 static const uint32 MAX_GROUP_MEMBERS = 6; static const uint32 MAX_RECAST_TYPES = 20; diff --git a/common/patches/sof_structs.h b/common/patches/sof_structs.h index a101d3cba..502763d90 100644 --- a/common/patches/sof_structs.h +++ b/common/patches/sof_structs.h @@ -554,8 +554,8 @@ struct GMTrainee_Struct { /*000*/ uint32 npcid; /*004*/ uint32 playerid; - /*008*/ uint32 skills[73]; - /*300*/ uint8 unknown300[148]; + /*008*/ uint32 skills[PACKET_SKILL_ARRAY_SIZE]; + /*408*/ uint8 unknown408[40]; /*448*/ }; @@ -770,7 +770,7 @@ struct BindStruct { static const uint32 MAX_PP_LANGUAGE = 25; // static const uint32 MAX_PP_SPELLBOOK = 480; // Confirmed 60 pages on Live now static const uint32 MAX_PP_MEMSPELL = 10; //was 9 now 10 on Live -static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size +static const uint32 MAX_PP_SKILL = PACKET_SKILL_ARRAY_SIZE; // 100 - actual skills buffer size static const uint32 MAX_PP_AA_ARRAY = 300; //was 299 static const uint32 MAX_GROUP_MEMBERS = 6; static const uint32 MAX_RECAST_TYPES = 20; diff --git a/common/patches/titanium_structs.h b/common/patches/titanium_structs.h index e8e5a9f23..b9d299ab9 100644 --- a/common/patches/titanium_structs.h +++ b/common/patches/titanium_structs.h @@ -485,8 +485,8 @@ struct GMTrainee_Struct { /*000*/ uint32 npcid; /*004*/ uint32 playerid; - /*008*/ uint32 skills[73]; - /*300*/ uint8 unknown300[148]; + /*008*/ uint32 skills[PACKET_SKILL_ARRAY_SIZE]; + /*408*/ uint8 unknown408[40]; /*448*/ }; @@ -700,7 +700,7 @@ struct BindStruct { static const uint32 MAX_PP_LANGUAGE = 28; static const uint32 MAX_PP_SPELLBOOK = 400; static const uint32 MAX_PP_MEMSPELL = 9; -static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size +static const uint32 MAX_PP_SKILL = PACKET_SKILL_ARRAY_SIZE; // 100 - actual skills buffer size static const uint32 MAX_PP_AA_ARRAY = 240; static const uint32 MAX_GROUP_MEMBERS = 6; static const uint32 MAX_RECAST_TYPES = 20; diff --git a/common/patches/underfoot_structs.h b/common/patches/underfoot_structs.h index ebad98678..bdd1b3a99 100644 --- a/common/patches/underfoot_structs.h +++ b/common/patches/underfoot_structs.h @@ -623,8 +623,8 @@ struct GMTrainee_Struct { /*000*/ uint32 npcid; /*004*/ uint32 playerid; - /*008*/ uint32 skills[73]; - /*300*/ uint8 unknown300[148]; + /*008*/ uint32 skills[PACKET_SKILL_ARRAY_SIZE]; + /*408*/ uint8 unknown408[40]; /*448*/ }; @@ -839,7 +839,7 @@ struct BindStruct { static const uint32 MAX_PP_LANGUAGE = 25; // static const uint32 MAX_PP_SPELLBOOK = 720; // Confirmed 60 pages on Underfoot now static const uint32 MAX_PP_MEMSPELL = 10; //was 9 now 10 on Underfoot -static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size +static const uint32 MAX_PP_SKILL = PACKET_SKILL_ARRAY_SIZE; // 100 - actual skills buffer size static const uint32 MAX_PP_AA_ARRAY = 300; //was 299 static const uint32 MAX_GROUP_MEMBERS = 6; static const uint32 MAX_RECAST_TYPES = 20; diff --git a/common/skills.h b/common/skills.h index 23c3b0708..a589129ed 100644 --- a/common/skills.h +++ b/common/skills.h @@ -108,7 +108,7 @@ enum SkillUseTypes /*13869*/ SkillBerserking, /*13902*/ SkillTaunt, /*05837*/ SkillFrenzy, // This appears to be the only listed one not grouped with the others -/*00000*/ _SkillCount, +/*00000*/ _EmuSkillCount // move to last position of active enumeration labels // SoF+ specific skills // /*03670*/ SkillRemoveTraps, @@ -125,7 +125,6 @@ enum SkillUseTypes // Support values // /*-----*/ _SkillServerArraySize = _SkillCount_RoF2, // Should reflect last client '_SkillCount' -/*-----*/ _SkillPacketArraySize = 100, // Currently supported clients appear to iterate full 100 dword buffer range // Superfluous additions to SkillUseTypes..server-use only // /*-----*/ ExtSkillGenericTradeskill = 100 @@ -153,7 +152,7 @@ enum SkillUseTypes NOTE: Disregard this until it is sorted out I changed (tradeskill==75) to ExtSkillGenericTradeskill in tradeskills.cpp for both instances. If it's a pseudo-enumeration of - an AA ability, then use the 'ExtSkill' ('ExtentedSkill') prefix with a value >= 100. (current implementation) + an AA ability, then use the 'ExtSkill' ('ExtendedSkill') prefix with a value >= 100. (current implementation) We probably need to recode ALL of the skill checks to use the new Skill2HPiercing and ensure that the animation value is properly changed in the patch files. As far as earlier clients using this new skill, it can be done, but we just need to ensure @@ -164,6 +163,7 @@ enum SkillUseTypes In addition to the above re-coding, we're probably going to need to rework the database pp blob to reserve space for the current 100-dword buffer allocation. This way, we can just add new ones without having to rework it each time. + (Wasn't done for this in particular..but, thanks Akkadius!) -U */ @@ -172,6 +172,9 @@ enum SkillUseTypes // temporary until it can be sorted out... #define HIGHEST_SKILL SkillFrenzy +// server profile does not reflect this yet..so, prefixed with 'PACKET_' +#define PACKET_SKILL_ARRAY_SIZE 100 + // TODO: add string return for skill names /*