More work in progress

This commit is contained in:
KimLS 2024-11-22 22:58:43 -08:00
parent d713ff69bf
commit 9d5a9ee6df

View File

@ -3027,62 +3027,152 @@ namespace Larion
for (int j = 0; j < 78; ++j) { for (int j = 0; j < 78; ++j) {
buffer.WriteUInt8(0); //unsure what this is exactly buffer.WriteUInt8(0); //unsure what this is exactly
} }
/*
ItemSpellType_Clicky = 0, /* SpellData:
ItemSpellType_Proc, s32 SpellId;
ItemSpellType_Worn, u8 RequiredLevel;
ItemSpellType_Focus, u8 EffectType;
ItemSpellType_Scroll, s32 EffectiveCasterLevel;
ItemSpellType_Focus2, s32 MaxCharges;
ItemSpellType_Blessing, s32 CastTime;
s32 RecastTime;
s32 RecastType;
s32 ProcRate;
char OverrideName[];
s32 OverrideDesc;
*/ */
/* //SpellData SpellDataClicky;
struct ProcEffectStruct buffer.WriteInt32(item->Click.Effect);
{ buffer.WriteUInt8(item->Click.Level2);
int32 effect; buffer.WriteUInt8(item->Click.Type);
uint8 level2; buffer.WriteInt32(item->Click.Level);
uint32 type; buffer.WriteInt32(item->MaxCharges);
uint8 level; buffer.WriteInt32(item->CastTime);
uint32 unknown1; // poison? buffer.WriteInt32(item->RecastDelay);
uint32 unknown2; buffer.WriteInt32(item->RecastType);
uint32 unknown3; buffer.WriteInt32(0); //unsupported atm
uint32 unknown4; if (strlen(item->ClickName) > 0) {
uint32 procrate; buffer.WriteString(item->ClickName);
//uint8 effect_string; }
//uint32 unknown5; else {
}; buffer.WriteString("");
*/ }
buffer.WriteInt32(0); //unsupported atm
/* //SpellData SpellDataProc;
ipes.effect = item->Proc.Effect; buffer.WriteInt32(item->Proc.Effect);
ipes.level2 = item->Proc.Level2; buffer.WriteUInt8(item->Proc.Level2);
ipes.type = item->Proc.Type; buffer.WriteUInt8(item->Proc.Type);
ipes.level = item->Proc.Level; buffer.WriteInt32(item->Proc.Level);
ipes.procrate = item->ProcRate; buffer.WriteInt32(0);
*/ buffer.WriteInt32(0);
//SpellData spell_data[7]; buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0); //unsupported atm; even live sets this to 0 for procs
if (strlen(item->ProcName) > 0) {
buffer.WriteString(item->ProcName);
}
else {
buffer.WriteString("");
}
buffer.WriteInt32(0); //unsupported atm
/* //SpellData SpellDataWorn;
s32 SpellId; buffer.WriteInt32(item->Worn.Effect);
u8 RequiredLevel; buffer.WriteUInt8(item->Worn.Level2);
u8 EffectType; buffer.WriteUInt8(item->Worn.Type);
s32 EffectiveCasterLevel; buffer.WriteInt32(item->Worn.Level);
s32 MaxCharges; buffer.WriteInt32(0);
s32 CastTime; buffer.WriteInt32(0);
s32 RecastTime; buffer.WriteInt32(0);
s32 RecastType; buffer.WriteInt32(0);
s32 ProcRate; buffer.WriteInt32(0);
char OverrideName[]; if (strlen(item->WornName) > 0) {
s32 OverrideDesc; buffer.WriteString(item->WornName);
*/ }
else {
buffer.WriteString("");
}
buffer.WriteInt32(0); //unsupported atm
//SpellData SpellDataFocus;
buffer.WriteInt32(item->Focus.Effect);
buffer.WriteUInt8(item->Focus.Level2);
buffer.WriteUInt8(item->Focus.Type);
buffer.WriteInt32(item->Focus.Level);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
if (strlen(item->FocusName) > 0) {
buffer.WriteString(item->FocusName);
}
else {
buffer.WriteString("");
}
buffer.WriteInt32(0); //unsupported atm
//SpellData SpellDataScroll;
buffer.WriteInt32(item->Scroll.Effect);
buffer.WriteUInt8(item->Scroll.Level2);
buffer.WriteUInt8(item->Scroll.Type);
buffer.WriteInt32(item->Scroll.Level);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
if (strlen(item->ScrollName) > 0) {
buffer.WriteString(item->ScrollName);
}
else {
buffer.WriteString("");
}
buffer.WriteInt32(0); //unsupported atm
//SpellData SpellDataFocus2; //unsupported atm
buffer.WriteInt32(-1);
buffer.WriteUInt8(0);
buffer.WriteUInt8(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteString("");
buffer.WriteInt32(0);
//SpellData SpellDataBlessing; //unsupported atm
buffer.WriteInt32(-1);
buffer.WriteUInt8(0);
buffer.WriteUInt8(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteInt32(0);
buffer.WriteString("");
buffer.WriteInt32(0);
//s32 RightClickScriptID; //s32 RightClickScriptID;
buffer.WriteInt32(0); //unsupported atm
//bool QuestItem; //bool QuestItem;
buffer.WriteInt8(item->QuestItemFlag);
//s32 MaxPower; //s32 MaxPower;
buffer.WriteInt32(0); //unsupported atm
//s32 Purity; //s32 Purity;
buffer.WriteInt32(item->Purity);
//s32 BackstabDamage; //s32 BackstabDamage;
buffer.WriteInt32(item->BackstabDmg);
//s32 HeroicSTR; //s32 HeroicSTR;
//s32 HeroicINT; //s32 HeroicINT;
//s32 HeroicWIS; //s32 HeroicWIS;
@ -3090,47 +3180,126 @@ namespace Larion
//s32 HeroicDEX; //s32 HeroicDEX;
//s32 HeroicSTA; //s32 HeroicSTA;
//s32 HeroicCHA; //s32 HeroicCHA;
buffer.WriteInt32(item->HeroicStr);
buffer.WriteInt32(item->HeroicInt);
buffer.WriteInt32(item->HeroicWis);
buffer.WriteInt32(item->HeroicAgi);
buffer.WriteInt32(item->HeroicDex);
buffer.WriteInt32(item->HeroicSta);
buffer.WriteInt32(item->HeroicCha);
//s32 HealAmount; //s32 HealAmount;
//s32 SpellDamage; //s32 SpellDamage;
//s32 Clairvoyance; //s32 Clairvoyance;
buffer.WriteInt32(item->HealAmt);
buffer.WriteInt32(item->SpellDmg);
buffer.WriteInt32(item->Clairvoyance);
//s32 SubClass; //s32 SubClass;
buffer.WriteInt32(item->SubType);
//bool bLoginRegReqItem; //bool bLoginRegReqItem;
buffer.WriteUInt8(0); //unsupported atm
//s32 ItemLaunchScriptID; //s32 ItemLaunchScriptID;
buffer.WriteInt32(0); //unsupported atm
//bool Heirloom; //bool Heirloom;
buffer.WriteUInt8(0); //unsupported atm
//s32 Placeable; //s32 Placeable;
buffer.WriteInt32(0); //unsupported atm
//bool bPlaceableIgnoreCollisions; //bool bPlaceableIgnoreCollisions;
buffer.WriteUInt8(0);
//s32 PlacementType; //s32 PlacementType;
buffer.WriteInt32(0); //unsupported atm
//s32 RealEstateDefID; //s32 RealEstateDefID;
buffer.WriteInt32(0); //unsupported atm
//float PlaceableScaleRangeMin; //float PlaceableScaleRangeMin;
//float PlaceableScaleRangeMax; //float PlaceableScaleRangeMax;
buffer.WriteFloat(0.0f); //unsupported atm
buffer.WriteFloat(0.0f); //unsupported atm
//s32 RealEstateUpkeepID; //s32 RealEstateUpkeepID;
buffer.WriteInt32(0); //unsupported atm
//s32 MaxPerRealEstate; //s32 MaxPerRealEstate;
buffer.WriteInt32(-1); //unsupported atm
//char HousepetFileName[]; //char HousepetFileName[];
buffer.WriteString(""); //unsupported atm
//bool bInteractiveObject; //bool bInteractiveObject;
buffer.WriteUInt8(0); //unsupported atm
//s32 TrophyBenefitID; //s32 TrophyBenefitID;
buffer.WriteInt32(-1); //unsupported atm
//bool bDisablePlacementRotation; //bool bDisablePlacementRotation;
//bool bDisableFreePlacement; //bool bDisableFreePlacement;
buffer.WriteUInt8(0); //unsupported atm
buffer.WriteUInt8(0); //unsupported atm
//s32 NpcRespawnInterval; //s32 NpcRespawnInterval;
buffer.WriteInt32(0); //unsupported atm
//float PlaceableDefScale; //float PlaceableDefScale;
//float PlaceableDefHeading; //float PlaceableDefHeading;
//float PlaceableDefPitch; //float PlaceableDefPitch;
//float PlaceableDefRoll; //float PlaceableDefRoll;
buffer.WriteFloat(0.0f);
buffer.WriteFloat(0.0f);
buffer.WriteFloat(0.0f);
buffer.WriteFloat(0.0f);
//u8 SocketSubClassCount; //u8 SocketSubClassCount;
//s32 SocketSubClass[SocketSubClassCount]; //s32 SocketSubClass[SocketSubClassCount];
buffer.WriteUInt8(0); //unsupported atm
//bool Collectible; //bool Collectible;
buffer.WriteUInt8(0); //unsupported atm
//bool NoDestroy; //bool NoDestroy;
buffer.WriteUInt8(0); //unsupported atm
//bool bNoNPC; //bool bNoNPC;
buffer.WriteUInt8(0); //unsupported atm
//bool NoZone; //bool NoZone;
buffer.WriteUInt8(0); //unsupported atm
//s32 MakerId; //s32 MakerId;
buffer.WriteInt32(0); //unsupported atm
//bool NoGround; //bool NoGround;
buffer.WriteUInt8(0); //unsupported atm
//bool bNoLoot; //bool bNoLoot;
buffer.WriteUInt8(0); //unsupported atm
//bool MarketPlace; //bool MarketPlace;
buffer.WriteUInt8(0); //unsupported atm
//bool bFreeSlot; //bool bFreeSlot;
buffer.WriteUInt8(0); //unsupported atm
//bool bAutoUse; //bool bAutoUse;
buffer.WriteUInt8(0); //unsupported atm
//s32 Unknown0x0e4; //s32 Unknown0x0e4;
buffer.WriteInt32(-1); //unsupported atm
//s32 MinLuck; //s32 MinLuck;
//s32 MaxLuck; //s32 MaxLuck;
buffer.WriteUInt32(0); //unsupported atm
buffer.WriteUInt32(0); //unsupported atm
//s32 LoreEquipped; //s32 LoreEquipped;
buffer.WriteUInt32(0); //unsupported atm
} }
void SerializeItem(SerializeBuffer& buffer, const EQ::ItemInstance* inst, int16 slot_id_in, uint8 depth, ItemPacketType packet_type) { void SerializeItem(SerializeBuffer& buffer, const EQ::ItemInstance* inst, int16 slot_id_in, uint8 depth, ItemPacketType packet_type) {
@ -3272,6 +3441,15 @@ namespace Larion
buffer.WriteInt8(0); buffer.WriteInt8(0);
//u32 SubContentSize; //u32 SubContentSize;
//SubItems
//bool bCollected;
buffer.WriteInt8(0); //unsupported atm
//u64 DontKnow;
buffer.WriteUInt64(0); //unsupported atm
//s32 Luck;
buffer.WriteInt32(0); //unsupported atm
} }
static inline structs::InventorySlot_Struct ServerToLarionSlot(uint32 server_slot) static inline structs::InventorySlot_Struct ServerToLarionSlot(uint32 server_slot)