mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-14 17:23:52 +00:00
Client patch prep work for extending usable skill range
This commit is contained in:
parent
1c8aaf97bc
commit
28bcf074fc
@ -1,5 +1,8 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 10/28/2013 ==
|
||||
Uleat: Client patch prep work for extending usable skill range (no apparent issues with Ti through RoF[12-10-2012] testing - i.e., clients showed proper skills and they didn't crash)
|
||||
|
||||
== 10/27/2013 ==
|
||||
Uleat: Attempted fix for high level (12) debug compile failiures
|
||||
Notes:
|
||||
|
||||
@ -802,8 +802,8 @@ struct SuspendedMinion_Struct
|
||||
static const uint32 MAX_PP_LANGUAGE = 28;
|
||||
static const uint32 MAX_PP_SPELLBOOK = 480; // Increased to 480 to support SoF
|
||||
static const uint32 MAX_PP_MEMSPELL = 9;
|
||||
static const uint32 MAX_PP_SKILL = 75;
|
||||
//static const uint32 MAX_PP_SKILL = 100; // actual buffer size
|
||||
static const uint32 MAX_PP_SKILL = 75; // still in-use server-side - this must remain 75 until all code and database can be changed
|
||||
//static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100
|
||||
static const uint32 MAX_PP_AA_ARRAY = 240;
|
||||
static const uint32 MAX_GROUP_MEMBERS = 6;
|
||||
static const uint32 MAX_RECAST_TYPES = 20;
|
||||
@ -941,10 +941,10 @@ struct PlayerProfile_Struct
|
||||
/*4760*/ int32 silver_cursor; // Silver on cursor
|
||||
/*4764*/ int32 copper_cursor; // Copper on cursor
|
||||
/*4768*/ int32 platinum_shared; // Platinum shared between characters
|
||||
/*4772*/ uint8 unknown4808[24]; // @bp unknown skills?
|
||||
/*4796*/ uint32 skills[MAX_PP_SKILL];
|
||||
/*5096*/ uint8 unknown5132[284]; // @bp unknown skills?
|
||||
///*5196*/ uint8 unknown5132[184]; // @bp unknown skills?
|
||||
/*4772*/ uint8 unknown4808[24];
|
||||
/*4796*/ uint32 skills[MAX_PP_SKILL]; // currently, 75 dword buffer
|
||||
/*5096*/ uint8 unknown5132[284]; // this is for 75 dword buffer
|
||||
///*5196*/ uint8 unknown5132[184]; // this is for 100 dword buffer
|
||||
/*5380*/ uint32 pvp2; //
|
||||
/*5384*/ uint32 unknown5420; //
|
||||
/*5388*/ uint32 pvptype; //
|
||||
|
||||
@ -265,7 +265,22 @@ ENCODE(OP_PlayerProfile) {
|
||||
OUT(gold_cursor);
|
||||
OUT(silver_cursor);
|
||||
OUT(copper_cursor);
|
||||
OUT_array(skills, structs::MAX_PP_SKILL);
|
||||
|
||||
//OUT_array(skills, structs::MAX_PP_SKILL); // 1:1 direct copy (100 dword)
|
||||
OUT_array(skills, MAX_PP_SKILL); // copy first 75 from server struct
|
||||
for(r = MAX_PP_SKILL; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; } // zero the rest
|
||||
|
||||
/*
|
||||
// SKILLS TEST
|
||||
eq->skills[75] = (uint32)5; // SkillRemoveTrap
|
||||
eq->skills[76] = (uint32)10; // SkillTripleAttack
|
||||
eq->skills[77] = (uint32)15; // Skill2HPiercing
|
||||
eq->skills[78] = (uint32)20; // SkillNone
|
||||
|
||||
for(r = MAX_PP_SKILL + 4; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; }
|
||||
// END TEST
|
||||
*/
|
||||
|
||||
OUT(toxicity);
|
||||
OUT(thirst_level);
|
||||
OUT(hunger_level);
|
||||
|
||||
@ -626,8 +626,7 @@ struct RaidLeadershipAA_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 = 75;
|
||||
//static const uint32 MAX_PP_SKILL = 100; // actual buffer size
|
||||
static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 100 - actual skills buffer size
|
||||
static const uint32 MAX_PP_AA_ARRAY = 240;
|
||||
static const uint32 MAX_GROUP_MEMBERS = 6;
|
||||
struct PlayerProfile_Struct
|
||||
@ -723,10 +722,9 @@ struct PlayerProfile_Struct
|
||||
/*4760*/ int32 silver_cursor; // Silver on cursor
|
||||
/*4764*/ int32 copper_cursor; // Copper on cursor
|
||||
/*4768*/ int32 platinum_shared; // Platinum shared between characters
|
||||
/*4772*/ uint8 unknown3812[24]; // @bp unknown skills?
|
||||
/*4796*/ uint32 skills[MAX_PP_SKILL];
|
||||
/*5096*/ uint8 unknown5096[284]; // @bp unknown skills?
|
||||
///*5196*/ uint8 unknown5096[184]; // @bp unknown skills?
|
||||
/*4772*/ uint8 unknown3812[24];
|
||||
/*4796*/ uint32 skills[MAX_PP_SKILL]; // 100 dword buffer
|
||||
/*5196*/ uint8 unknown5096[184];
|
||||
/*5380*/ uint32 pvp2; //
|
||||
/*5384*/ uint32 unknown4420; //
|
||||
/*5388*/ uint32 pvptype; //
|
||||
|
||||
@ -1031,6 +1031,21 @@ ENCODE(OP_PlayerProfile)
|
||||
outapp->WriteUInt32(emu->skills[r]);
|
||||
}
|
||||
|
||||
/*
|
||||
// SKILLS TEST
|
||||
outapp->WriteUInt32(5); // SkillRemoveTrap
|
||||
outapp->WriteUInt32(10); // SkillTripleAttack
|
||||
outapp->WriteUInt32(15); // Skill2HPiercing
|
||||
outapp->WriteUInt32(20); // SkillNone
|
||||
|
||||
// Write zeroes for the rest of the skills
|
||||
for(uint32 r = 0; r < structs::MAX_PP_SKILL - MAX_PP_SKILL - 4; r++)
|
||||
{
|
||||
outapp->WriteUInt32(emu->skills[r]);
|
||||
}
|
||||
// END TEST
|
||||
*/
|
||||
|
||||
outapp->WriteUInt32(25); // Unknown count
|
||||
|
||||
for(uint32 r = 0; r < 25; r++)
|
||||
|
||||
@ -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 = 100; // was 75 <- delete this remark once new buffer size active
|
||||
static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 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;
|
||||
|
||||
@ -535,7 +535,22 @@ ENCODE(OP_PlayerProfile) {
|
||||
OUT(gold_cursor);
|
||||
OUT(silver_cursor);
|
||||
OUT(copper_cursor);
|
||||
OUT_array(skills, structs::MAX_PP_SKILL);
|
||||
|
||||
//OUT_array(skills, structs::MAX_PP_SKILL); // 1:1 direct copy (100 dword)
|
||||
OUT_array(skills, MAX_PP_SKILL); // copy first 75 from server struct
|
||||
for(r = MAX_PP_SKILL; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; } // zero the rest
|
||||
|
||||
/*
|
||||
// SKILLS TEST
|
||||
eq->skills[75] = (uint32)5; // SkillRemoveTrap
|
||||
eq->skills[76] = (uint32)10; // SkillTripleAttack
|
||||
eq->skills[77] = (uint32)15; // Skill2HPiercing
|
||||
eq->skills[78] = (uint32)20; // SkillNone
|
||||
|
||||
for(r = MAX_PP_SKILL + 4; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; }
|
||||
// END TEST
|
||||
*/
|
||||
|
||||
// OUT(unknown04760[236]);
|
||||
OUT(toxicity);
|
||||
OUT(thirst_level);
|
||||
|
||||
@ -740,8 +740,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 = 75;
|
||||
//static const uint32 MAX_PP_SKILL = 100; // actual buffer size
|
||||
static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 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;
|
||||
@ -861,9 +860,8 @@ struct PlayerProfile_Struct
|
||||
/*06484*/ uint32 gold_cursor; // Gold Pieces on cursor
|
||||
/*06488*/ uint32 silver_cursor; // Silver Pieces on cursor
|
||||
/*06492*/ uint32 copper_cursor; // Copper Pieces on cursor
|
||||
/*06496*/ uint32 skills[MAX_PP_SKILL]; // [300] List of skills
|
||||
/*06796*/ uint8 unknown04760[236];
|
||||
///*06896*/ uint8 unknown04760[136];
|
||||
/*06496*/ uint32 skills[MAX_PP_SKILL]; // [400] List of skills // 100 dword buffer
|
||||
/*06896*/ uint8 unknown04760[136];
|
||||
/*07032*/ uint32 toxicity; // Potion Toxicity (15=too toxic, each potion adds 3)
|
||||
/*07036*/ uint32 thirst_level; // Drink (ticks till next drink)
|
||||
/*07040*/ uint32 hunger_level; // Food (ticks till next eat)
|
||||
|
||||
@ -534,7 +534,22 @@ ENCODE(OP_PlayerProfile) {
|
||||
OUT(gold_cursor);
|
||||
OUT(silver_cursor);
|
||||
OUT(copper_cursor);
|
||||
OUT_array(skills, structs::MAX_PP_SKILL);
|
||||
|
||||
//OUT_array(skills, structs::MAX_PP_SKILL); // 1:1 direct copy (100 dword)
|
||||
OUT_array(skills, MAX_PP_SKILL); // copy first 75 from server struct
|
||||
for(r = MAX_PP_SKILL; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; } // zero the rest
|
||||
|
||||
/*
|
||||
// SKILLS TEST
|
||||
eq->skills[75] = (uint32)5; // SkillRemoveTrap
|
||||
eq->skills[76] = (uint32)10; // SkillTripleAttack
|
||||
eq->skills[77] = (uint32)15; // Skill2HPiercing
|
||||
eq->skills[78] = (uint32)20; // SkillNone
|
||||
|
||||
for(r = MAX_PP_SKILL + 4; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; }
|
||||
// END TEST
|
||||
*/
|
||||
|
||||
// OUT(unknown04760[236]);
|
||||
OUT(toxicity);
|
||||
OUT(thirst_level);
|
||||
|
||||
@ -718,8 +718,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 = 75;
|
||||
//static const uint32 MAX_PP_SKILL = 100; // actual buffer size
|
||||
static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 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;
|
||||
@ -838,9 +837,8 @@ struct PlayerProfile_Struct //23576 Octets
|
||||
/*06484*/ uint32 gold_cursor; // Gold Pieces on cursor
|
||||
/*06488*/ uint32 silver_cursor; // Silver Pieces on cursor
|
||||
/*06492*/ uint32 copper_cursor; // Copper Pieces on cursor
|
||||
/*06496*/ uint32 skills[MAX_PP_SKILL]; // [300] List of skills
|
||||
/*06796*/ uint8 unknown04760[236];
|
||||
///*06896*/ uint8 unknown04760[136];
|
||||
/*06496*/ uint32 skills[MAX_PP_SKILL]; // [400] List of skills // 100 dword buffer
|
||||
/*06896*/ uint8 unknown04760[136];
|
||||
/*07032*/ uint32 toxicity; // Potion Toxicity (15=too toxic, each potion adds 3)
|
||||
/*07036*/ uint32 thirst_level; // Drink (ticks till next drink)
|
||||
/*07040*/ uint32 hunger_level; // Food (ticks till next eat)
|
||||
|
||||
@ -269,7 +269,22 @@ ENCODE(OP_PlayerProfile) {
|
||||
OUT(gold_cursor);
|
||||
OUT(silver_cursor);
|
||||
OUT(copper_cursor);
|
||||
OUT_array(skills, structs::MAX_PP_SKILL);
|
||||
|
||||
//OUT_array(skills, structs::MAX_PP_SKILL); // 1:1 direct copy (100 dword)
|
||||
OUT_array(skills, MAX_PP_SKILL); // copy first 75 from server struct
|
||||
for(r = MAX_PP_SKILL; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; } // zero the rest
|
||||
|
||||
/*
|
||||
// SKILLS TEST
|
||||
eq->skills[75] = (uint32)5; // SkillRemoveTrap
|
||||
eq->skills[76] = (uint32)10; // SkillTripleAttack
|
||||
eq->skills[77] = (uint32)15; // Skill2HPiercing
|
||||
eq->skills[78] = (uint32)20; // SkillNone
|
||||
|
||||
for(r = MAX_PP_SKILL + 4; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; }
|
||||
// END TEST
|
||||
*/
|
||||
|
||||
// OUT(unknown04760[236]);
|
||||
OUT(toxicity);
|
||||
OUT(thirst_level);
|
||||
|
||||
@ -648,8 +648,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 = 75;
|
||||
//static const uint32 MAX_PP_SKILL = 100; // actual buffer size
|
||||
static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 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;
|
||||
@ -753,9 +752,8 @@ struct PlayerProfile_Struct
|
||||
/*04448*/ uint32 gold_cursor; // Gold Pieces on cursor
|
||||
/*04452*/ uint32 silver_cursor; // Silver Pieces on cursor
|
||||
/*04456*/ uint32 copper_cursor; // Copper Pieces on cursor
|
||||
/*04460*/ uint32 skills[MAX_PP_SKILL]; // List of skills
|
||||
/*04760*/ uint8 unknown04760[236];
|
||||
///*04860*/ uint8 unknown04760[136];
|
||||
/*04460*/ uint32 skills[MAX_PP_SKILL]; // [400] List of skills // 100 dword buffer
|
||||
/*04860*/ uint8 unknown04760[136];
|
||||
/*04996*/ uint32 toxicity; // Potion Toxicity (15=too toxic, each potion adds 3)
|
||||
/*05000*/ uint32 thirst_level; // Drink (ticks till next drink)
|
||||
/*05004*/ uint32 hunger_level; // Food (ticks till next eat)
|
||||
|
||||
@ -549,7 +549,22 @@ ENCODE(OP_PlayerProfile) {
|
||||
OUT(gold_cursor);
|
||||
OUT(silver_cursor);
|
||||
OUT(copper_cursor);
|
||||
OUT_array(skills, structs::MAX_PP_SKILL);
|
||||
|
||||
//OUT_array(skills, structs::MAX_PP_SKILL); // 1:1 direct copy (100 dword)
|
||||
OUT_array(skills, MAX_PP_SKILL); // copy first 75 from server struct
|
||||
for(r = MAX_PP_SKILL; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; } // zero the rest
|
||||
|
||||
/*
|
||||
// SKILLS TEST
|
||||
eq->skills[75] = (uint32)5; // SkillRemoveTrap
|
||||
eq->skills[76] = (uint32)10; // SkillTripleAttack
|
||||
eq->skills[77] = (uint32)15; // Skill2HPiercing
|
||||
eq->skills[78] = (uint32)20; // SkillNone
|
||||
|
||||
for(r = MAX_PP_SKILL + 4; r < structs::MAX_PP_SKILL; r++) { eq->skills[r] = (uint32)0; }
|
||||
// END TEST
|
||||
*/
|
||||
|
||||
// OUT(unknown04760[236]);
|
||||
OUT(toxicity);
|
||||
OUT(thirst_level);
|
||||
|
||||
@ -764,8 +764,7 @@ struct BindStruct {
|
||||
static const uint32 MAX_PP_LANGUAGE = 25; //
|
||||
static const uint32 MAX_PP_SPELLBOOK = 480; // 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 = 75;
|
||||
//static const uint32 MAX_PP_SKILL = 100; // actual buffer size
|
||||
static const uint32 MAX_PP_SKILL = _SkillPacketArraySize; // 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;
|
||||
@ -887,9 +886,8 @@ struct PlayerProfile_Struct
|
||||
/*07332*/ uint32 gold_cursor; // Gold Pieces on cursor
|
||||
/*07336*/ uint32 silver_cursor; // Silver Pieces on cursor
|
||||
/*07340*/ uint32 copper_cursor; // Copper Pieces on cursor
|
||||
/*07344*/ uint32 skills[MAX_PP_SKILL]; // [300] List of skills
|
||||
/*07644*/ uint8 unknown07644[236];
|
||||
///*07744*/ uint8 unknown07644[136];
|
||||
/*07344*/ uint32 skills[MAX_PP_SKILL]; // [400] List of skills // 100 dword buffer
|
||||
/*07744*/ uint8 unknown07644[136];
|
||||
/*07880*/ uint32 toxicity; // Potion Toxicity (15=too toxic, each potion adds 3)
|
||||
/*07884*/ uint32 thirst_level; // Drink (ticks till next drink)
|
||||
/*07888*/ uint32 hunger_level; // Food (ticks till next eat)
|
||||
|
||||
@ -123,7 +123,7 @@ enum SkillUseTypes : uint32
|
||||
|
||||
// Support values
|
||||
// /*-----*/ _SkillServerArraySize = _SkillCount_RoF2, // Should reflect last client '_SkillCount'
|
||||
// /*-----*/ _SkillPacketArraySize = 100, // Currently supported clients appear to iterate full 100 dword buffer range
|
||||
/*-----*/ _SkillPacketArraySize = 100, // Currently supported clients appear to iterate full 100 dword buffer range
|
||||
|
||||
// Superfluous additions to SkillUseTypes..server-use only
|
||||
// /*-----*/ ExtSkillGenericTradeskill = 100
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user