implement more substructs
This commit is contained in:
parent
15dab24125
commit
fcb6a82135
67
internal/packets/substructs/AASpellInfo.go
Normal file
67
internal/packets/substructs/AASpellInfo.go
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
import "eq2emu/internal/common"
|
||||||
|
|
||||||
|
// AASpellInfo client version 1193
|
||||||
|
type AASpellInfo struct {
|
||||||
|
ID uint32 `eq2:"int32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Icon2 uint16 `eq2:"int16"`
|
||||||
|
IconType uint16 `eq2:"int16"`
|
||||||
|
Version uint16 `eq2:"int16"`
|
||||||
|
SubVersion uint16 `eq2:"int16"`
|
||||||
|
Type uint8 `eq2:"int8"`
|
||||||
|
ClassSkill uint32 `eq2:"int32"`
|
||||||
|
MasterySkill uint32 `eq2:"int32"`
|
||||||
|
MinClassSkillReq uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SpellTextColor uint32 `eq2:"int32"`
|
||||||
|
Unknown605MJ3 uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
HealthReq uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
HealthUpkeep uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
PowerReq uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
PowerUpkeep uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ReqConcentration uint16 `eq2:"int16"`
|
||||||
|
Unknown uint16 `eq2:"int16"`
|
||||||
|
CastTime uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
Recovery uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
Recast float32 `eq2:"float"`
|
||||||
|
Radius float32 `eq2:"float"`
|
||||||
|
MaxAoeTargets uint16 `eq2:"int16"`
|
||||||
|
FriendlySpell uint8 `eq2:"int8"`
|
||||||
|
NumReagents uint8 `eq2:"int8"`
|
||||||
|
ReagentArray []AASpellReagent `eq2:"array,arraysize=NumReagents"`
|
||||||
|
NumEffects uint8 `eq2:"int8"`
|
||||||
|
EffectArray []AASpellEffect `eq2:"array,arraysize=NumEffects"`
|
||||||
|
DisplaySpellTier uint8 `eq2:"int8"`
|
||||||
|
Unknown1 uint8 `eq2:"int8"`
|
||||||
|
MinimumRange float32 `eq2:"float"`
|
||||||
|
Range float32 `eq2:"float"`
|
||||||
|
Duration1 uint32 `eq2:"int32"`
|
||||||
|
Duration2 uint32 `eq2:"int32"`
|
||||||
|
Unknown9 uint8 `eq2:"int8"`
|
||||||
|
DurationFlag uint8 `eq2:"int8"`
|
||||||
|
Target uint8 `eq2:"int8"`
|
||||||
|
CanEffectRaid uint8 `eq2:"int8"`
|
||||||
|
AffectOnlyGroupMembers uint8 `eq2:"int8"`
|
||||||
|
GroupSpell uint8 `eq2:"int8"`
|
||||||
|
Resistibility float32 `eq2:"float"`
|
||||||
|
Unknown11 []uint8 `eq2:"int8,len=7"`
|
||||||
|
HitBonus float32 `eq2:"float"`
|
||||||
|
Unknown12 uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
Unknown605MJ6 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AASpellReagent struct {
|
||||||
|
Reagent common.EQ2String8 `eq2:"string8"`
|
||||||
|
Consumed uint8 `eq2:"int8"`
|
||||||
|
QtyRequired uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AASpellEffect struct {
|
||||||
|
SubBulletFlag uint8 `eq2:"int8"`
|
||||||
|
Effect common.EQ2String16 `eq2:"string16"`
|
||||||
|
Percentage uint8 `eq2:"int8"`
|
||||||
|
}
|
304
internal/packets/substructs/BaseItemDescription.go
Normal file
304
internal/packets/substructs/BaseItemDescription.go
Normal file
@ -0,0 +1,304 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
import "eq2emu/internal/common"
|
||||||
|
|
||||||
|
// BaseItemDescription Version 1
|
||||||
|
type BaseItemDescriptionV1 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String16 `eq2:"string16"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||||
|
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SkillRecommended uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseItemDescription Version 373
|
||||||
|
type BaseItemDescriptionV373 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String16 `eq2:"string16"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||||
|
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SkillRecommended uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseItemDescription Version 546
|
||||||
|
type BaseItemDescriptionV546 struct {
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BrokerItemID uint64 `eq2:"int64"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint32 `eq2:"int32"`
|
||||||
|
Unknown81 []uint8 `eq2:"int8,len=15"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatV546 `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatStringV546 `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseItemDescription Version 1096
|
||||||
|
type BaseItemDescriptionV1096 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BrokerItemID uint64 `eq2:"int64"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
ItemCRC int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint16 `eq2:"int16"`
|
||||||
|
Flags2 uint16 `eq2:"int16"`
|
||||||
|
Unknown81096 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatV1096 `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatUnknown uint8 `eq2:"int8"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatStringV1096 `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Unknown19 uint16 `eq2:"int16"`
|
||||||
|
Unknown20 uint16 `eq2:"int16"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseItemDescription Version 1188
|
||||||
|
type BaseItemDescriptionV1188 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BrokerItemID uint64 `eq2:"int64"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
ItemCRC int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint16 `eq2:"int16"`
|
||||||
|
Flags2 uint16 `eq2:"int16"`
|
||||||
|
Unknown81188 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatV1188 `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatUnknown uint8 `eq2:"int8"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatStringV1188 `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Unknown19 uint16 `eq2:"int16"`
|
||||||
|
Unknown20 uint16 `eq2:"int16"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseItemDescription Version 1208
|
||||||
|
type BaseItemDescriptionV1208 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BrokerItemID uint64 `eq2:"int64"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
ItemCRC int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint16 `eq2:"int16"`
|
||||||
|
Flags2 uint16 `eq2:"int16"`
|
||||||
|
Unknown81208 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatV1208 `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatUnknown uint8 `eq2:"int8"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatStringV1208 `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Unknown19 uint16 `eq2:"int16"`
|
||||||
|
Unknown20 uint16 `eq2:"int16"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseItemDescription Version 63119
|
||||||
|
type BaseItemDescriptionV63119 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BrokerItemID uint64 `eq2:"int64"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
ItemCRC int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint16 `eq2:"int16"`
|
||||||
|
Flags2 uint16 `eq2:"int16"`
|
||||||
|
Unknown863119 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatUnknown uint8 `eq2:"int8"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatStringV63119 `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Unknown19 uint16 `eq2:"int16"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatV63119 `eq2:"array,arraysize=StatCount"`
|
||||||
|
Unknown20 uint8 `eq2:"int8"`
|
||||||
|
ModCount uint8 `eq2:"int8"`
|
||||||
|
ModArray []BaseItemMod `eq2:"array,arraysize=ModCount"`
|
||||||
|
Unknown21 []uint8 `eq2:"int8,len=4"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Common nested structs for BaseItemDescription
|
||||||
|
type BaseItemStat struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
Value int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatV546 struct {
|
||||||
|
StatType uint8 `eq2:"int8"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
Value int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatV1096 struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatV1188 struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||||
|
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
StatUnknown uint8 `eq2:"int8,ifequals=stat_type_%i"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatLevel uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatV1208 struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||||
|
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
StatUnknown uint8 `eq2:"int8,ifequals=stat_type_%i"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatLevel any `eq2:"int16,type2=int8,type2criteria=stat_name!>2"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatV63119 struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||||
|
Value any `eq2:"float,type2=sint32,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatLevel any `eq2:"int16,type2=int8,type2criteria=stat_name!>2"`
|
||||||
|
Value2 any `eq2:"float,type2=sint32,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatString struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
AdornmentFlag uint8 `eq2:"int8"`
|
||||||
|
AdornmentArray []AdornmentUnknown `eq2:"array,arraysize=AdornmentFlag"`
|
||||||
|
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatStringV546 struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatStringV1096 struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||||
|
StatStringUnknown uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatStringV1188 struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatStringUnknown uint8 `eq2:"int8"`
|
||||||
|
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatStringV1208 struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatStringUnknown uint8 `eq2:"int8"`
|
||||||
|
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatStringV63119 struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatStringUnknown uint8 `eq2:"int8"`
|
||||||
|
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornmentUnknown struct {
|
||||||
|
AdornmentUnknown uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemClass struct {
|
||||||
|
AdventureClass uint8 `eq2:"int8"`
|
||||||
|
TradeskillClass uint8 `eq2:"int8"`
|
||||||
|
Level uint16 `eq2:"int16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemMod struct {
|
||||||
|
ModString common.EQ2String8 `eq2:"string8"`
|
||||||
|
ModNeed uint8 `eq2:"int8"`
|
||||||
|
ModHave uint8 `eq2:"int8,ifvariableset=header_info_mod_need_0"`
|
||||||
|
ModUnknown []uint8 `eq2:"int8,len=2"`
|
||||||
|
}
|
26
internal/packets/substructs/BaseItemDescriptionGeneric.go
Normal file
26
internal/packets/substructs/BaseItemDescriptionGeneric.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
import "eq2emu/internal/common"
|
||||||
|
|
||||||
|
// BaseItemDescriptionGeneric Version 373
|
||||||
|
type BaseItemDescriptionGeneric struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String16 `eq2:"string16"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||||
|
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SkillRecommended uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
}
|
21
internal/packets/substructs/BaseItemDescriptionInspect.go
Normal file
21
internal/packets/substructs/BaseItemDescriptionInspect.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
import "eq2emu/internal/common"
|
||||||
|
|
||||||
|
// BaseItemDescriptionInspect Version 373
|
||||||
|
type BaseItemDescriptionInspect struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String16 `eq2:"string16"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
FlagNames common.EQ2String8 `eq2:"string8"`
|
||||||
|
Unknown81 []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
Unknown []uint8 `eq2:"int8,len=9"`
|
||||||
|
}
|
161
internal/packets/substructs/BaseMerchantItemDescription.go
Normal file
161
internal/packets/substructs/BaseMerchantItemDescription.go
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
import "eq2emu/internal/common"
|
||||||
|
|
||||||
|
// BaseMerchantItemDescription Version 1
|
||||||
|
type BaseMerchantItemDescriptionV1 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
Adornment common.EQ2String16 `eq2:"string16"`
|
||||||
|
Unknown3 uint32 `eq2:"int32"`
|
||||||
|
FirstDesc common.EQ2String16 `eq2:"string16"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint32 `eq2:"int32"`
|
||||||
|
Unknown81M []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStat `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseMerchantItemDescription Version 860
|
||||||
|
type BaseMerchantItemDescriptionV860 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
Adornment common.EQ2String16 `eq2:"string16"`
|
||||||
|
Unknown3 []uint32 `eq2:"int32,len=2"`
|
||||||
|
AdornmentDesc common.EQ2String16 `eq2:"string16"`
|
||||||
|
UnknownDesc common.EQ2String16 `eq2:"string16"`
|
||||||
|
FirstDesc common.EQ2String16 `eq2:"string16"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint32 `eq2:"int32"`
|
||||||
|
Unknown8860M []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatMerchant860 `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatString `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseMerchantItemDescription Version 1096
|
||||||
|
type BaseMerchantItemDescriptionV1096 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
ItemCRC int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint16 `eq2:"int16"`
|
||||||
|
Flags2 uint16 `eq2:"int16"`
|
||||||
|
Unknown81096M []uint8 `eq2:"int8,len=17"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatMerchant1096 `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatUnknown uint8 `eq2:"int8"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatStringMerchant1096 `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Unknown19 uint16 `eq2:"int16"`
|
||||||
|
Unknown20 uint16 `eq2:"int16"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BaseMerchantItemDescription Version 63119
|
||||||
|
type BaseMerchantItemDescriptionV63119 struct {
|
||||||
|
CreatorFlag uint8 `eq2:"int8"`
|
||||||
|
Creator common.EQ2String8 `eq2:"string8"`
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
ItemCRC int32 `eq2:"sint32"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
Flags uint16 `eq2:"int16"`
|
||||||
|
Flags2 uint16 `eq2:"int16"`
|
||||||
|
Unknown8 []uint8 `eq2:"int8,len=21"`
|
||||||
|
StatCount uint8 `eq2:"int8"`
|
||||||
|
StatArray []BaseItemStatMerchant63119 `eq2:"array,arraysize=StatCount"`
|
||||||
|
StatUnknown uint8 `eq2:"int8"`
|
||||||
|
StatStringCount uint8 `eq2:"int8"`
|
||||||
|
StatStringArray []BaseItemStatStringMerchant63119 `eq2:"array,arraysize=StatStringCount"`
|
||||||
|
Unknown19 uint16 `eq2:"int16"`
|
||||||
|
Unknown20 uint16 `eq2:"int16"`
|
||||||
|
Condition uint8 `eq2:"int8"`
|
||||||
|
Weight uint32 `eq2:"int32"`
|
||||||
|
SkillReq1 uint32 `eq2:"int32"`
|
||||||
|
SkillReq2 uint32 `eq2:"int32"`
|
||||||
|
SkillMin uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
ClassCount uint8 `eq2:"int8"`
|
||||||
|
ClassArray []BaseItemClass `eq2:"array,arraysize=ClassCount"`
|
||||||
|
SlotCount uint8 `eq2:"int8"`
|
||||||
|
SlotArray []uint8 `eq2:"array,arraysize=SlotCount"`
|
||||||
|
FooterType uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merchant-specific stat structs
|
||||||
|
type BaseItemStatMerchant860 struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
Value int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatMerchant1096 struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
Value any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatMerchant63119 struct {
|
||||||
|
StatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
StatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=stat_type_%i"`
|
||||||
|
Value any `eq2:"float,type2=sint32,type2criteria=stat_type!=6"`
|
||||||
|
StatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatLevel any `eq2:"int16,type2=int8,type2criteria=stat_name!>2"`
|
||||||
|
Value2 float32 `eq2:"float"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatStringMerchant1096 struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||||
|
StatStringUnknown uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseItemStatStringMerchant63119 struct {
|
||||||
|
StatString common.EQ2String8 `eq2:"string8"`
|
||||||
|
StatStringUnknown uint8 `eq2:"int8"`
|
||||||
|
StatDescription common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
193
internal/packets/substructs/GroupMember.go
Normal file
193
internal/packets/substructs/GroupMember.go
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
// GroupMember Version 1
|
||||||
|
type GroupMemberV1 struct {
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Name []byte `eq2:"char,len=16"`
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
HPMax int32 `eq2:"sint32"`
|
||||||
|
HPCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupMember Version 373
|
||||||
|
type GroupMemberV373 struct {
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Name []byte `eq2:"char,len=16"`
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
LevelMax uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
HPCurrent int32 `eq2:"sint32"`
|
||||||
|
HPMax int32 `eq2:"sint32"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupMember Version 546
|
||||||
|
type GroupMemberV546 struct {
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Name []byte `eq2:"char,len=41"`
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
LevelMax uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
HPCurrent int32 `eq2:"sint32"`
|
||||||
|
HPMax int32 `eq2:"sint32"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
Zone []byte `eq2:"char,len=60"`
|
||||||
|
Instance uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupMember Version 562
|
||||||
|
type GroupMemberV562 struct {
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
HPCurrent int32 `eq2:"sint32"`
|
||||||
|
HPMax int32 `eq2:"sint32"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
LevelMax uint16 `eq2:"int16"`
|
||||||
|
Name []byte `eq2:"char,len=41"`
|
||||||
|
Zone []byte `eq2:"char,len=60"`
|
||||||
|
Instance uint8 `eq2:"int8"`
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
CurseCount uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupMember Version 1188
|
||||||
|
type GroupMemberV1188 struct {
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
HPCurrent int32 `eq2:"sint32"`
|
||||||
|
HPMax int32 `eq2:"sint32"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
LevelMax uint16 `eq2:"int16"`
|
||||||
|
Name []byte `eq2:"char,len=41"`
|
||||||
|
Zone []byte `eq2:"char,len=60"`
|
||||||
|
Instance uint8 `eq2:"int8"`
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
CurseCount uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupMember Version 57048
|
||||||
|
type GroupMemberV57048 struct {
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
HPCurrent int64 `eq2:"sint64"`
|
||||||
|
HPMax int64 `eq2:"sint64"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
LevelMax uint16 `eq2:"int16"`
|
||||||
|
Name []byte `eq2:"char,len=41"`
|
||||||
|
Zone []byte `eq2:"char,len=60"`
|
||||||
|
Instance uint8 `eq2:"int8"`
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
CurseCount uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupMember Version 61532
|
||||||
|
type GroupMemberV61532 struct {
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
HPCurrent int64 `eq2:"sint64"`
|
||||||
|
HPCurrent2 int64 `eq2:"sint64"`
|
||||||
|
HPMax int32 `eq2:"sint32"`
|
||||||
|
HPMax2 int32 `eq2:"sint32"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
LevelMax uint16 `eq2:"int16"`
|
||||||
|
Name []byte `eq2:"char,len=41"`
|
||||||
|
Zone []byte `eq2:"char,len=60"`
|
||||||
|
Instance uint8 `eq2:"int8"`
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
CurseCount uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupMember Version 63167
|
||||||
|
type GroupMemberV63167 struct {
|
||||||
|
SpawnID uint32 `eq2:"int32"`
|
||||||
|
PetID uint32 `eq2:"int32"`
|
||||||
|
HPCurrent int64 `eq2:"sint64"`
|
||||||
|
HPMax int64 `eq2:"sint64"`
|
||||||
|
PowerCurrent int32 `eq2:"sint32"`
|
||||||
|
PowerMax int32 `eq2:"sint32"`
|
||||||
|
LevelCurrent uint16 `eq2:"int16"`
|
||||||
|
LevelMax uint16 `eq2:"int16"`
|
||||||
|
Name []byte `eq2:"char,len=41"`
|
||||||
|
Zone []byte `eq2:"char,len=60"`
|
||||||
|
Instance uint8 `eq2:"int8"`
|
||||||
|
ZoneStatus uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint16 `eq2:"int16"`
|
||||||
|
RaceID uint8 `eq2:"int8"`
|
||||||
|
ClassID uint8 `eq2:"int8"`
|
||||||
|
TraumaCount uint8 `eq2:"int8"`
|
||||||
|
ArcaneCount uint8 `eq2:"int8"`
|
||||||
|
NoxiousCount uint8 `eq2:"int8"`
|
||||||
|
ElementalCount uint8 `eq2:"int8"`
|
||||||
|
CurseCount uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
CoEUnknown []uint8 `eq2:"int8,len=9"`
|
||||||
|
}
|
20
internal/packets/substructs/InfoTemplate.go
Normal file
20
internal/packets/substructs/InfoTemplate.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
// InfoTemplate Version 63119
|
||||||
|
type InfoTemplate struct {
|
||||||
|
NumTabs uint16 `eq2:"int16"`
|
||||||
|
TabTemplateArray []TabTemplate `eq2:"array,arraysize=NumTabs"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TabTemplate struct {
|
||||||
|
TabNumber uint16 `eq2:"int16"`
|
||||||
|
TabUnknown1 uint32 `eq2:"int32"`
|
||||||
|
TemplateSize uint16 `eq2:"int16"`
|
||||||
|
TemplateArray []TemplateData `eq2:"array,arraysize=TemplateSize"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TemplateData struct {
|
||||||
|
TemplatePos uint16 `eq2:"int16"`
|
||||||
|
TemplateUnknown3 uint16 `eq2:"int16"`
|
||||||
|
TemplateID uint32 `eq2:"int32"`
|
||||||
|
}
|
207
internal/packets/substructs/Item.go
Normal file
207
internal/packets/substructs/Item.go
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
// Item Version 1
|
||||||
|
type ItemV1 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Count uint8 `eq2:"int8"`
|
||||||
|
Unknown uint8 `eq2:"int8"`
|
||||||
|
Level uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Name []byte `eq2:"char,len=81"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 373
|
||||||
|
type ItemV373 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
Count uint8 `eq2:"int8"`
|
||||||
|
Level uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 562
|
||||||
|
type ItemV562 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 893
|
||||||
|
type ItemV893 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Unknown3b uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 1193
|
||||||
|
type ItemV1193 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Unknown3b uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=18"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 1205
|
||||||
|
type ItemV1205 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Unknown3b uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint8 `eq2:"int8"`
|
||||||
|
Unknown4 uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 57048
|
||||||
|
type ItemV57048 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Unknown3b uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint16 `eq2:"int16"`
|
||||||
|
Unknown4b uint8 `eq2:"int8"`
|
||||||
|
Unknown4c uint8 `eq2:"int8"`
|
||||||
|
ItemLevel uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 57107
|
||||||
|
type ItemV57107 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Unknown3b uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint16 `eq2:"int16"`
|
||||||
|
Unknown4b uint8 `eq2:"int8"`
|
||||||
|
Unknown4c uint8 `eq2:"int8"`
|
||||||
|
ItemLevel uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
Unknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
BrokerID uint64 `eq2:"int64"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 63119
|
||||||
|
type ItemV63119 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Unknown3 uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint16 `eq2:"int16"`
|
||||||
|
Unknown4b uint8 `eq2:"int8"`
|
||||||
|
Unknown4c uint8 `eq2:"int8"`
|
||||||
|
ItemLevel uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
EmptySlots uint8 `eq2:"int8"`
|
||||||
|
Unknown52 uint8 `eq2:"int8"`
|
||||||
|
Unknown53 uint8 `eq2:"int8"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
BrokerID uint64 `eq2:"int64"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Item Version 63214 (latest)
|
||||||
|
type ItemV63214 struct {
|
||||||
|
UniqueID uint32 `eq2:"int32"`
|
||||||
|
BagID uint32 `eq2:"int32"`
|
||||||
|
InvSlotID uint32 `eq2:"int32"`
|
||||||
|
MenuType uint32 `eq2:"int32"`
|
||||||
|
Unknown3 uint32 `eq2:"int32"`
|
||||||
|
Index uint16 `eq2:"int16"`
|
||||||
|
Icon uint16 `eq2:"int16"`
|
||||||
|
SlotID uint8 `eq2:"int8"`
|
||||||
|
Count uint16 `eq2:"int16"`
|
||||||
|
Unknown4b uint8 `eq2:"int8"`
|
||||||
|
Unknown4c uint8 `eq2:"int8"`
|
||||||
|
ItemLevel uint8 `eq2:"int8"`
|
||||||
|
Tier uint8 `eq2:"int8"`
|
||||||
|
NumSlots uint8 `eq2:"int8"`
|
||||||
|
EmptySlots uint8 `eq2:"int8"`
|
||||||
|
Unknown52 uint8 `eq2:"int8"`
|
||||||
|
ItemID int32 `eq2:"sint32"`
|
||||||
|
BrokerID uint64 `eq2:"int64"`
|
||||||
|
Name []byte `eq2:"char,len=64"`
|
||||||
|
Unknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
}
|
59
internal/packets/substructs/ItemDescription.go
Normal file
59
internal/packets/substructs/ItemDescription.go
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
// ItemDescription Version 1
|
||||||
|
type ItemDescriptionV1 struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionV1 `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemDescription Version 373
|
||||||
|
type ItemDescriptionV373 struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionV373 `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemDescription Version 546
|
||||||
|
type ItemDescriptionV546 struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionV546 `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemDescription Version 1096
|
||||||
|
type ItemDescriptionV1096 struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionV1096 `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemDescription Version 1188
|
||||||
|
type ItemDescriptionV1188 struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionV1188 `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemDescription Version 1208
|
||||||
|
type ItemDescriptionV1208 struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionV1208 `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemDescription Version 63119
|
||||||
|
type ItemDescriptionV63119 struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionV63119 `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// WSExamineInfoHeader - referenced by ItemDescription structs
|
||||||
|
// This struct definition needs to be provided based on the actual WS_ExamineInfoHeader definition
|
||||||
|
type WSExamineInfoHeader struct {
|
||||||
|
// Fields need to be defined based on actual WS_ExamineInfoHeader structure
|
||||||
|
// Placeholder - replace with actual fields
|
||||||
|
Unknown1 uint32 `eq2:"int32"`
|
||||||
|
Unknown2 uint16 `eq2:"int16"`
|
||||||
|
}
|
8
internal/packets/substructs/ItemDescriptionGeneric.go
Normal file
8
internal/packets/substructs/ItemDescriptionGeneric.go
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
// ItemDescriptionGeneric Version 373
|
||||||
|
type ItemDescriptionGeneric struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionGeneric `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
8
internal/packets/substructs/ItemDescriptionInspect.go
Normal file
8
internal/packets/substructs/ItemDescriptionInspect.go
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
// ItemDescriptionInspect Version 373
|
||||||
|
type ItemDescriptionInspect struct {
|
||||||
|
InfoHeader WSExamineInfoHeader `eq2:"substruct"`
|
||||||
|
Info BaseItemDescriptionInspect `eq2:"substruct"`
|
||||||
|
ItemType uint8 `eq2:"int8"`
|
||||||
|
}
|
818
internal/packets/substructs/ItemFooter.go
Normal file
818
internal/packets/substructs/ItemFooter.go
Normal file
@ -0,0 +1,818 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
import "eq2emu/internal/common"
|
||||||
|
|
||||||
|
// Supporting structs for nested arrays
|
||||||
|
type EffectItem struct {
|
||||||
|
SubBulletFlag uint8 `eq2:"int8"`
|
||||||
|
Effect common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type EffectItemV546 struct {
|
||||||
|
SubBulletFlag uint8 `eq2:"int8"`
|
||||||
|
Effect common.EQ2String16 `eq2:"string16"`
|
||||||
|
Percentage uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetStatItem struct {
|
||||||
|
SetStatType uint8 `eq2:"int8"`
|
||||||
|
SetStatSubtype uint8 `eq2:"int8"`
|
||||||
|
SetValue int16 `eq2:"sint16,oversized=127,oversizedbyte=127"`
|
||||||
|
SetStatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetStatItemV1188 struct {
|
||||||
|
SetStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SetStatSubtype uint16 `eq2:"int16,oversized=127,oversizedbyte=127,ifnotequals=set_stat_type_%i"`
|
||||||
|
SetValue any `eq2:"float,type2=sint16,type2criteria=set_stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
SetStatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetStatUnknown uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetStatItemV63119 struct {
|
||||||
|
SetStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
SetStatSubtype uint16 `eq2:"int16,oversized=127,oversizedbyte=127,ifnotequals=set_stat_type_%i"`
|
||||||
|
SetValue any `eq2:"float,type2=sint32,type2criteria=set_stat_type!=6"`
|
||||||
|
SetStatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetStatUnknown uint32 `eq2:"int32"`
|
||||||
|
SetStatUnknownMJ uint16 `eq2:"int16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetEffectItem struct {
|
||||||
|
SetSubBulletFlag uint8 `eq2:"int8"`
|
||||||
|
SetEffect common.EQ2String16 `eq2:"string16"`
|
||||||
|
SetPercentage uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetBonusItem struct {
|
||||||
|
SetNumNeeded uint8 `eq2:"int8"`
|
||||||
|
SetStatCount uint8 `eq2:"int8"`
|
||||||
|
SetStatArray []SetStatItem `eq2:"array,arraysize=SetStatCount"`
|
||||||
|
NumSetEffects uint8 `eq2:"int8"`
|
||||||
|
SetEffectArray []SetEffectItem `eq2:"array,arraysize=NumSetEffects"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetBonusItemV1188 struct {
|
||||||
|
SetBonusItemsNeeded uint8 `eq2:"int8"`
|
||||||
|
SetBonusStatsCount uint8 `eq2:"int8"`
|
||||||
|
SetBonusStatsArray []SetStatItemV1188 `eq2:"array,arraysize=SetBonusStatsCount"`
|
||||||
|
SetBonusEffectsCount uint8 `eq2:"int8"`
|
||||||
|
SetBonusEffectsArray []SetBonusEffectItem `eq2:"array,arraysize=SetBonusEffectsCount"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetBonusItemV63119 struct {
|
||||||
|
SetBonusItemsNeeded uint8 `eq2:"int8"`
|
||||||
|
SetBonusStatsCount uint8 `eq2:"int8"`
|
||||||
|
SetBonusStatsArray []SetStatItemV63119 `eq2:"array,arraysize=SetBonusStatsCount"`
|
||||||
|
SetBonusEffectsCount uint8 `eq2:"int8"`
|
||||||
|
SetBonusEffectsArray []SetBonusEffectItem `eq2:"array,arraysize=SetBonusEffectsCount"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetBonusEffectItem struct {
|
||||||
|
SetBonusEffectSubBulletFlag uint8 `eq2:"int8"`
|
||||||
|
SetBonusEffectText common.EQ2String16 `eq2:"string16"`
|
||||||
|
SetBonusEffectPercentage uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SetItemsItem struct {
|
||||||
|
SetItemsUnknown1 uint8 `eq2:"int8"`
|
||||||
|
SetItemsUnknown2 uint8 `eq2:"int8"`
|
||||||
|
SetItemName common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornItem struct {
|
||||||
|
AdornSlot uint8 `eq2:"int8"`
|
||||||
|
AdornUnknown uint32 `eq2:"int32"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16"`
|
||||||
|
AdornTimeLeft float32 `eq2:"float"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornItemV1188 struct {
|
||||||
|
AdornUnknown1 uint8 `eq2:"int8"`
|
||||||
|
AdornSlot uint8 `eq2:"int8"`
|
||||||
|
AdornUnknown2 []uint8 `eq2:"int8,len=2"`
|
||||||
|
AdornItemID uint32 `eq2:"int32"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16"`
|
||||||
|
AdornTimeLeft float32 `eq2:"float"`
|
||||||
|
AdornUnknown3 uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornItemV63119 struct {
|
||||||
|
AdornSlot uint8 `eq2:"int8"`
|
||||||
|
AdornUnknown1 uint8 `eq2:"int8"`
|
||||||
|
AdornUnknown2 []uint8 `eq2:"int8,len=2"`
|
||||||
|
AdornItemID uint32 `eq2:"int32"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16"`
|
||||||
|
AdornTimeLeft float32 `eq2:"float"`
|
||||||
|
AdornUnknown3 uint32 `eq2:"int32"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornStatItem struct {
|
||||||
|
AdornStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
AdornStatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=adorn_stat_type_%i_%i"`
|
||||||
|
AdornValue any `eq2:"float,type2=sint16,type2criteria=stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
AdornStatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
AdornStatLevel uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornStatItemV63119 struct {
|
||||||
|
AdornStatType uint16 `eq2:"int16,oversized=127,oversizedbyte=127"`
|
||||||
|
AdornStatSubtype int16 `eq2:"sint16,oversized=127,oversizedbyte=127,ifnotequals=adorn_stat_type_%i_%i"`
|
||||||
|
AdornValue any `eq2:"float,type2=sint32,type2criteria=adorn_stat_type!=6,oversized=127,oversizedbyte=127"`
|
||||||
|
AdornStatName common.EQ2String8 `eq2:"string8"`
|
||||||
|
AdornStatLevel uint8 `eq2:"int8"`
|
||||||
|
AdornStatUnknown1 []uint8 `eq2:"int8,len=5"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornLevelItem struct {
|
||||||
|
NumAdornStats uint32 `eq2:"int32"`
|
||||||
|
AdornStatsArray []AdornStatItem `eq2:"array,arraysize=NumAdornStats"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdornLevelItemV63119 struct {
|
||||||
|
NumAdornStats uint32 `eq2:"int32"`
|
||||||
|
AdornStatsArray []AdornStatItemV63119 `eq2:"array,arraysize=NumAdornStats"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TierlineItem struct {
|
||||||
|
Addon common.EQ2String16 `eq2:"string16"`
|
||||||
|
TierlineUnknown []uint8 `eq2:"int8,len=5"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Version structs
|
||||||
|
type SubstructItemFooterV1 struct {
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV373 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifflagnotset=loot"`
|
||||||
|
EffectArray []EffectItem `eq2:"array,arraysize=NumEffects,ifflagnotset=loot"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV546 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifflagnotset=loot"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects,ifflagnotset=loot"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV562 struct {
|
||||||
|
// NOTE: Parser needs enhancement for comma-separated conditions
|
||||||
|
// Original: IfVariableNotSet="header_info_header_unknown_0_0,header_unknown_0"
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint8 `eq2:"int8"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||||
|
DisplayCharges uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV860 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint8 `eq2:"int8"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||||
|
FooterUnknown5 uint8 `eq2:"int8"`
|
||||||
|
DisplayCharges uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV893 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown3 uint8 `eq2:"int8"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||||
|
FooterUnknown5 uint8 `eq2:"int8"`
|
||||||
|
DisplayCharges uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV927 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown3 uint8 `eq2:"int8"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||||
|
FooterUnknown5 uint8 `eq2:"int8"`
|
||||||
|
DisplayCharges uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV1027 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown3 []uint8 `eq2:"int8,len=2"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
FooterUnknown4 []uint8 `eq2:"int8,len=4"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo uint32 `eq2:"int32,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info2_0"`
|
||||||
|
FooterUnknown5 []uint8 `eq2:"int8,len=2"`
|
||||||
|
DisplayCharges uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV1096 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint8 `eq2:"int8"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown3 uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown3A uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown3B uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown3C uint8 `eq2:"int8"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
NumSets uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetArray []SetBonusItem `eq2:"array,arraysize=NumSets"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
StatusItem uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown7 uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlagXXX uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItem `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV1188 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=6"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown4A uint8 `eq2:"int8,ifvariableset=footer_footer_unknown4_0"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 []uint8 `eq2:"int8,len=3,ifvariableset=footer_set_name_0"`
|
||||||
|
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6 uint8 `eq2:"int8"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknown7 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV57048 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RequiredClasses2 uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=6"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||||
|
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6 []uint8 `eq2:"int8,len=13"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknown7 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV58571 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RequiredClasses2 uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||||
|
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6 []uint8 `eq2:"int8,len=15"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknownVer58571 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV58617 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RequiredClasses2 uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8"` // Note: XML comment indicates removing ifvariablenotset condition
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||||
|
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
StatusItem []uint8 `eq2:"int8,len=2"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
Unknown58617_1_MJ uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6 []uint8 `eq2:"int8,len=17"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknownVer58617 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV60024 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RequiredClasses2 uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||||
|
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
StatusItem uint8 `eq2:"int8"`
|
||||||
|
Unknown60024A uint8 `eq2:"int8"`
|
||||||
|
Unknown60024B []uint8 `eq2:"int8,len=4,ifvariableset=footer_unknown60024a_0"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6 []uint8 `eq2:"int8,len=18"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknown7 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV60055 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RequiredClasses2 uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Unknown60055ZA uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
Unknown60055Z uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||||
|
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownEmem1 uint8 `eq2:"int8"`
|
||||||
|
UnknownEmem2 uint8 `eq2:"int8"`
|
||||||
|
UnknownEmem3 uint8 `eq2:"int8"`
|
||||||
|
UnknownEmem4 uint8 `eq2:"int8"`
|
||||||
|
StatusItem uint32 `eq2:"int32"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6A uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6B uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6C uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6D uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6E uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6F uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6G uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6H uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6I uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6J uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6K uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6L uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6M uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6N uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6O uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6 []uint8 `eq2:"int8,len=2"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknown7 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV60174 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
FooterUnknown2 uint8 `eq2:"int8"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RequiredClasses2 uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV1188 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItem `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Unknown60055ZA uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
Collectable uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
Unknown60055Z uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||||
|
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
StatusItem uint32 `eq2:"int32"`
|
||||||
|
Unknown60024A uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
AdornArray []AdornItemV1188 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6A uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6B []uint8 `eq2:"int8,len=21"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknown7 uint8 `eq2:"int8"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SubstructItemFooterV63119 struct {
|
||||||
|
NumEffects uint8 `eq2:"int8,ifvariablenotset=header_info_header_unknown_0_0"`
|
||||||
|
EffectArray []EffectItemV546 `eq2:"array,arraysize=NumEffects"`
|
||||||
|
Tierline uint8 `eq2:"int8"`
|
||||||
|
TierlineArray []TierlineItem `eq2:"array,arraysize=Tierline"`
|
||||||
|
RequiredClasses uint64 `eq2:"int64"`
|
||||||
|
RequiredClasses2 uint64 `eq2:"int64"`
|
||||||
|
RecommendedLevel uint8 `eq2:"int8"`
|
||||||
|
RequiredLevel uint8 `eq2:"int8"`
|
||||||
|
StackSize uint16 `eq2:"int16"`
|
||||||
|
AdornSlots []uint8 `eq2:"int8,len=11"`
|
||||||
|
FooterUnknown3MJ1 uint8 `eq2:"int8"`
|
||||||
|
SetName common.EQ2String8 `eq2:"string8"`
|
||||||
|
SetBonusListCount uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetBonusListArray []SetBonusItemV63119 `eq2:"array,arraysize=SetBonusListCount"`
|
||||||
|
NumItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
SetItemsArray []SetItemsItem `eq2:"array,arraysize=NumItemsInSet"`
|
||||||
|
TotalSetItemsEquipped uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
TotalSetItemsInSet uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
AdornFlag uint8 `eq2:"int8"`
|
||||||
|
AdornUnknown64A uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornUnknown64B uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsActive uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsTotal uint8 `eq2:"int8,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornName common.EQ2String16 `eq2:"string16,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
NumAdornLevels uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornStatsUnknown1 uint32 `eq2:"int32,ifvariableset=footer_adorn_flag_0"`
|
||||||
|
AdornLevelArray []AdornLevelItemV63119 `eq2:"array,arraysize=NumAdornLevels"`
|
||||||
|
FooterUnknown4 uint8 `eq2:"int8"`
|
||||||
|
Unknown60055ZA uint8 `eq2:"int8,ifvariableset=foot_set_name_0"`
|
||||||
|
Collectable uint8 `eq2:"int8"`
|
||||||
|
CollectionNeeded uint8 `eq2:"int8,ifvariableset=footer_collectable_0"`
|
||||||
|
Unknown60055Z uint8 `eq2:"int8"`
|
||||||
|
OffersQuest common.EQ2String8 `eq2:"string8"`
|
||||||
|
PartOfQuest common.EQ2String8 `eq2:"string8"`
|
||||||
|
OffersQuestColor uint8 `eq2:"int8,ifvariableset=footer_offers_quest_0"`
|
||||||
|
PartOfQuestColor uint8 `eq2:"int8,ifvariableset=footer_part_of_quest_0"`
|
||||||
|
UnknownSetData1 []uint8 `eq2:"int8,len=2,ifvariableset=footer_set_name_0"`
|
||||||
|
Charges uint8 `eq2:"int8"`
|
||||||
|
TotalCharges uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
ChargesLeft uint16 `eq2:"int16,ifvariableset=footer_charges_0"`
|
||||||
|
UnknownSetInfo2 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownSetInfo3A uint32 `eq2:"int32,ifvariableset=footer_unknown_set_info3_0"`
|
||||||
|
UnknownSetInfo4 uint8 `eq2:"int8,ifvariableset=footer_set_name_0"`
|
||||||
|
UnknownEmem1 []uint8 `eq2:"int8,len=4"`
|
||||||
|
StatusItem uint32 `eq2:"int32"`
|
||||||
|
Unknown60024B uint8 `eq2:"int8"`
|
||||||
|
TransmutedFlag uint8 `eq2:"int8"`
|
||||||
|
UnknownMJ38A uint8 `eq2:"int8"`
|
||||||
|
UnknownMJ38B uint8 `eq2:"int8"`
|
||||||
|
CraftingFlag uint8 `eq2:"int8"`
|
||||||
|
UnknownMJ38D uint8 `eq2:"int8"`
|
||||||
|
AdornCount uint8 `eq2:"int8"`
|
||||||
|
AdornArray []AdornItemV63119 `eq2:"array,arraysize=AdornCount"`
|
||||||
|
LockedFlag uint8 `eq2:"int8"`
|
||||||
|
UnknownMJ38C uint8 `eq2:"int8"`
|
||||||
|
AccountRestricted uint8 `eq2:"int8"`
|
||||||
|
FooterUnknown6B []uint8 `eq2:"int8,len=7"`
|
||||||
|
FooterUnknown6C uint32 `eq2:"int32,ifvariablenotset=footer_set_name_0"`
|
||||||
|
FooterUnknown6D uint8 `eq2:"int8,ifvariablenotset=footer_set_name_0"`
|
||||||
|
Name common.EQ2String8 `eq2:"string8"`
|
||||||
|
Description common.EQ2String16 `eq2:"string16"`
|
||||||
|
FooterUnknown7 uint8 `eq2:"int8"`
|
||||||
|
}
|
12
internal/packets/substructs/ItemInfo.go
Normal file
12
internal/packets/substructs/ItemInfo.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package substructs
|
||||||
|
|
||||||
|
// ItemInfo Version 63119
|
||||||
|
type ItemInfo struct {
|
||||||
|
NumItems uint16 `eq2:"int16"`
|
||||||
|
ItemsArray []ItemIndex `eq2:"array,arraysize=NumItems"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ItemIndex struct {
|
||||||
|
ItemIndex uint16 `eq2:"int16"`
|
||||||
|
TabUnknown2 uint32 `eq2:"int32"`
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user