continuity/hex-patterns/basemagicdata.hexpat

119 lines
2.4 KiB
Text
Raw Normal View History

2024-09-18 14:34:58 +00:00
#pragma once
#pragma pattern_limit 1500000
#include <std/sys.pat>
enum SkillType: u32{
2024-09-18 15:13:38 +00:00
_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
2024-09-18 14:34:58 +00:00
};
struct header {
u8 unk[3];
bool flag;
u8 unk2;
u32 amountOfItems;
};
enum CharacterJob : u32 {
NULL,
Swordsman = 1, /// 01
Mage, /// 02
Thief, /// 03
Scout, /// 04
Warrior, /// 05
Knight, /// 06
Priest, /// 07
Wizard, /// 08
Rogue, /// 09
Ninja, /// 10
Gunner, /// 11
Archer, /// 12
Berserker, /// 13
Pladin, /// 14
Saint, /// 15
Warlock, /// 16
Knave, /// 17
Assassin, /// 18
Gunslinger, /// 19
Ranger, /// 20
Juggernaut, /// 21
Temple_Knight, /// 22
Exorcist, /// 23
Necromancer, /// 24
Raider, /// 25
Nightstalker, /// 26
Sharpshooter, /// 27
Beast_Keeper, /// 28
};
enum SkillSourceEntity : u32{
2024-09-18 15:13:38 +00:00
Player,
2024-09-18 14:34:58 +00:00
Pet,
Mob,
Debuff, //Most likely Debuff/Buff Types
};
enum SkillBuffType : u32{
None,
Positive,
Negative
};
struct MagicData{
u32 Id;
u8 unk[24];
u32 IsPassive;
SkillBuffType unk2;
SkillType skillType;
SkillSourceEntity unk3;
CharacterJob requiredJob;
2024-09-18 15:13:38 +00:00
u32 unk4[3];
2024-09-18 14:34:58 +00:00
char name[20];
2024-09-18 15:13:38 +00:00
char description[291+52];
padding[169];
u32 appliesToSkillId;
padding[8];
u32 minLevelOfApplicableSkill;
padding[20];
u32 unk5;
u32 requiredItemType;
u32 unk6;
u32 maxLevel;
2024-09-18 15:31:42 +00:00
padding[600];
u32 duration[50];
padding[400];
padding[7800];
u32 physicalDamageMultiplier[50];
padding[2400];
u32 manaCost[50];
padding[0x5244-2600-7800-200-600-600-4-24-4-4-1-7-4-12-20-255-12-2-283-12];
2024-09-18 14:34:58 +00:00
};
2024-09-18 15:13:38 +00:00
std::print(std::format("{}",0x5244));
2024-09-18 14:34:58 +00:00
std::print(std::format("{}",sizeof(MagicData)));
std::assert(sizeof(MagicData) == 0x5244, "Struct isn't the right size");
header header @ 0x00;
MagicData items[header.amountOfItems] @0x09;