Illusion and money on corpse

This commit is contained in:
KimLS 2024-12-24 12:03:30 -08:00
parent 2cb4c55613
commit d9132e84ab
4 changed files with 97 additions and 3 deletions

View File

@ -3228,6 +3228,47 @@ namespace Laurion
FINISH_ENCODE(); FINISH_ENCODE();
} }
ENCODE(OP_Illusion)
{
ENCODE_LENGTH_EXACT(Illusion_Struct);
SETUP_DIRECT_ENCODE(Illusion_Struct, structs::Illusion_Struct);
OUT(spawnid);
OUT_str(charname);
OUT(race);
eq->unknown006[0] = 0;
eq->unknown006[1] = 0;
OUT(gender);
OUT(texture);
OUT(helmtexture);
OUT(face);
OUT(hairstyle);
OUT(haircolor);
OUT(beard);
OUT(beardcolor);
OUT(size);
OUT(drakkin_heritage);
OUT(drakkin_tattoo);
OUT(drakkin_details);
FINISH_ENCODE();
}
ENCODE(OP_MoneyOnCorpse)
{
ENCODE_LENGTH_EXACT(moneyOnCorpseStruct);
SETUP_DIRECT_ENCODE(moneyOnCorpseStruct, structs::moneyOnCorpseStruct);
eq->type = emu->response;
OUT(platinum);
OUT(gold);
OUT(silver);
OUT(copper);
eq->flags = 0;
FINISH_ENCODE();
}
// DECODE methods // DECODE methods
DECODE(OP_EnterWorld) DECODE(OP_EnterWorld)

View File

@ -47,7 +47,8 @@ E(OP_RespondAA)
E(OP_BlockedBuffs) E(OP_BlockedBuffs)
E(OP_RemoveBlockedBuffs) E(OP_RemoveBlockedBuffs)
E(OP_ZonePlayerToBind) E(OP_ZonePlayerToBind)
E(OP_Illusion)
E(OP_MoneyOnCorpse)
//list of packets we need to decode on the way in: //list of packets we need to decode on the way in:
D(OP_EnterWorld) D(OP_EnterWorld)
D(OP_ZoneEntry) D(OP_ZoneEntry)

View File

@ -810,6 +810,58 @@ namespace Laurion {
/*025*/ uint32 unknown2; /*025*/ uint32 unknown2;
/*029*/ uint32 unknown3; /*029*/ uint32 unknown3;
}; };
struct ArmorPropertyStruct
{
/*000*/ uint32 type;
/*004*/ uint32 variation;
/*008*/ uint32 material;
/*012*/ uint32 newArmorID;
/*016*/ uint32 newArmorType;
/*020*/
};
struct Illusion_Struct {
/*000*/ uint32 spawnid;
/*004*/ char charname[64];
/*068*/ uint16 race; //according to eqlib this is s32
/*070*/ char unknown006[2];
/*072*/ uint8 gender;
/*073*/ uint8 texture;
/*074*/ uint8 armorVariation;
/*075*/ uint8 armorMaterial;
/*076*/ uint8 helmtexture;
/*077*/ uint8 unknown077; //padding from this being a pack(4) struct actually
/*078*/ uint8 unknown078;
/*079*/ uint8 unknown079;
/*080*/ uint32 face;
/*084*/ uint8 hairstyle;
/*085*/ uint8 haircolor;
/*086*/ uint8 beard;
/*087*/ uint8 beardcolor;
/*088*/ float size;
/*092*/ uint32_t npc_tint;
/*096*/ bool keep_armor_properties;
/*097*/ uint8 unknown097[3]; //padding from this being a pack(4) struct actually
/*100*/ ArmorPropertyStruct armorProperties[9];
/*280*/ uint32_t armorTints[9];
/*316*/ int32 class_;
/*320*/ uint32 drakkin_heritage;
/*324*/ uint32 drakkin_tattoo;
/*328*/ uint32 drakkin_details;
/*332*/
};
struct moneyOnCorpseStruct {
/*000*/ uint8 type;
/*001*/ uint8 padding1[3];
/*004*/ uint32 flags;
/*008*/ uint32 platinum;
/*012*/ uint32 gold;
/*016*/ uint32 silver;
/*020*/ uint32 copper;
/*024*/
}
#pragma pack() #pragma pack()
}; //end namespace structs }; //end namespace structs

View File

@ -184,8 +184,8 @@ OP_Consider=0x53e3
OP_FormattedMessage=0x7f7f OP_FormattedMessage=0x7f7f
OP_SimpleMessage=0x1943 OP_SimpleMessage=0x1943
OP_Buff=0x6ce5 OP_Buff=0x6ce5
OP_Illusion=0x0000 OP_Illusion=0x5a3f
OP_MoneyOnCorpse=0x0000 OP_MoneyOnCorpse=0x39d3
OP_RandomReply=0x0000 OP_RandomReply=0x0000
OP_DenyResponse=0x0000 OP_DenyResponse=0x0000
OP_SkillUpdate=0x6735 OP_SkillUpdate=0x6735