diff --git a/hex-patterns/basecharacterstatdata.hexproj b/hex-patterns/basecharacterstatdata.hexproj new file mode 100644 index 0000000..31093c0 Binary files /dev/null and b/hex-patterns/basecharacterstatdata.hexproj differ diff --git a/hex-patterns/basemagicdata.hexpat b/hex-patterns/basemagicdata.hexpat index e616db0..0de0bf6 100644 --- a/hex-patterns/basemagicdata.hexpat +++ b/hex-patterns/basemagicdata.hexpat @@ -2,6 +2,37 @@ #pragma pattern_limit 1500000 #include enum SkillType: u32{ + _0, + _1, + _2, + _3, + _4, + _5, + _6, + _7, + _8, + _9, + _10, + _11, + _12, + _13, + _14, + _15, + _16, + _17, + _18, + _19, + _20, + _21, + _22, + _23, + _24, + _25, + _26, + _27, + _28, + _29, + _30 }; struct header { u8 unk[3]; @@ -41,7 +72,7 @@ enum CharacterJob : u32 { Beast_Keeper, /// 28 }; enum SkillSourceEntity : u32{ - Player,S + Player, Pet, Mob, Debuff, //Most likely Debuff/Buff Types @@ -59,11 +90,22 @@ struct MagicData{ SkillType skillType; SkillSourceEntity unk3; CharacterJob requiredJob; - u8 unk4[12]; + u32 unk4[3]; char name[20]; - char description[255]; - padding[0x5244-4-24-4-4-1-7-4-12-20-255]; + char description[291+52]; + padding[169]; + u32 appliesToSkillId; + padding[8]; + u32 minLevelOfApplicableSkill; + padding[20]; + u32 unk5; + u32 requiredItemType; + u32 unk6; + u32 maxLevel; + padding[0x5244-4-24-4-4-1-7-4-12-20-255-12-2-283-12]; }; + +std::print(std::format("{}",0x5244)); std::print(std::format("{}",sizeof(MagicData))); std::assert(sizeof(MagicData) == 0x5244, "Struct isn't the right size"); header header @ 0x00;