mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-31 10:22:32 +00:00
Add tradeskill opcodes, some encodes and decodes to match rof2; i think they're all still the same but i could be wrong.
This commit is contained in:
parent
0241a90505
commit
24dbe6da0e
@ -434,6 +434,22 @@ namespace Laurion
|
|||||||
dest->FastQueuePacket(&in, ack_req);
|
dest->FastQueuePacket(&in, ack_req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ENCODE(OP_ClickObjectAction)
|
||||||
|
{
|
||||||
|
ENCODE_LENGTH_EXACT(ClickObjectAction_Struct);
|
||||||
|
SETUP_DIRECT_ENCODE(ClickObjectAction_Struct, structs::ClickObjectAction_Struct);
|
||||||
|
|
||||||
|
OUT(drop_id);
|
||||||
|
eq->unknown04 = -1;
|
||||||
|
eq->unknown08 = -1;
|
||||||
|
OUT(type);
|
||||||
|
OUT(icon);
|
||||||
|
eq->unknown16 = 0;
|
||||||
|
OUT_str(object_name);
|
||||||
|
|
||||||
|
FINISH_ENCODE();
|
||||||
|
}
|
||||||
|
|
||||||
ENCODE(OP_ClientUpdate)
|
ENCODE(OP_ClientUpdate)
|
||||||
{
|
{
|
||||||
ENCODE_LENGTH_EXACT(PlayerPositionUpdateServer_Struct);
|
ENCODE_LENGTH_EXACT(PlayerPositionUpdateServer_Struct);
|
||||||
@ -2187,6 +2203,28 @@ namespace Laurion
|
|||||||
delete in;
|
delete in;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ENCODE(OP_RecipeAutoCombine)
|
||||||
|
{
|
||||||
|
ENCODE_LENGTH_EXACT(RecipeAutoCombine_Struct);
|
||||||
|
SETUP_DIRECT_ENCODE(RecipeAutoCombine_Struct, structs::RecipeAutoCombine_Struct);
|
||||||
|
|
||||||
|
OUT(object_type);
|
||||||
|
OUT(some_id);
|
||||||
|
eq->container_slot = ServerToLaurionSlot(emu->unknown1);
|
||||||
|
structs::InventorySlot_Struct LaurionSlot;
|
||||||
|
LaurionSlot.Type = 8; // Observed
|
||||||
|
LaurionSlot.Padding1 = 0;
|
||||||
|
LaurionSlot.Slot = 0xffff;
|
||||||
|
LaurionSlot.SubIndex = 0xffff;
|
||||||
|
LaurionSlot.AugIndex = 0xffff;
|
||||||
|
LaurionSlot.Padding2 = 0;
|
||||||
|
eq->unknown_slot = LaurionSlot;
|
||||||
|
OUT(recipe_id);
|
||||||
|
OUT(reply_code);
|
||||||
|
|
||||||
|
FINISH_ENCODE();
|
||||||
|
}
|
||||||
|
|
||||||
ENCODE(OP_RemoveBlockedBuffs) { ENCODE_FORWARD(OP_BlockedBuffs); }
|
ENCODE(OP_RemoveBlockedBuffs) { ENCODE_FORWARD(OP_BlockedBuffs); }
|
||||||
|
|
||||||
ENCODE(OP_RespondAA)
|
ENCODE(OP_RespondAA)
|
||||||
@ -3613,6 +3651,17 @@ namespace Laurion
|
|||||||
FINISH_DIRECT_DECODE();
|
FINISH_DIRECT_DECODE();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECODE(OP_TradeSkillCombine)
|
||||||
|
{
|
||||||
|
DECODE_LENGTH_EXACT(structs::NewCombine_Struct);
|
||||||
|
SETUP_DIRECT_DECODE(NewCombine_Struct, structs::NewCombine_Struct);
|
||||||
|
|
||||||
|
emu->container_slot = RoF2ToServerSlot(eq->container_slot);
|
||||||
|
emu->guildtribute_slot = RoF2ToServerSlot(eq->guildtribute_slot); // this should only return INVALID_INDEX until implemented
|
||||||
|
|
||||||
|
FINISH_DIRECT_DECODE();
|
||||||
|
}
|
||||||
|
|
||||||
DECODE(OP_WearChange)
|
DECODE(OP_WearChange)
|
||||||
{
|
{
|
||||||
DECODE_LENGTH_EXACT(structs::WearChange_Struct);
|
DECODE_LENGTH_EXACT(structs::WearChange_Struct);
|
||||||
|
|||||||
@ -11,6 +11,7 @@ E(OP_BuffCreate)
|
|||||||
E(OP_CastSpell)
|
E(OP_CastSpell)
|
||||||
E(OP_ChannelMessage)
|
E(OP_ChannelMessage)
|
||||||
E(OP_CharInventory)
|
E(OP_CharInventory)
|
||||||
|
E(OP_ClickObjectAction)
|
||||||
E(OP_ClientUpdate)
|
E(OP_ClientUpdate)
|
||||||
E(OP_Consider)
|
E(OP_Consider)
|
||||||
E(OP_Damage)
|
E(OP_Damage)
|
||||||
@ -37,6 +38,7 @@ E(OP_PlayerProfile)
|
|||||||
E(OP_RemoveBlockedBuffs)
|
E(OP_RemoveBlockedBuffs)
|
||||||
E(OP_RespondAA)
|
E(OP_RespondAA)
|
||||||
E(OP_RequestClientZoneChange)
|
E(OP_RequestClientZoneChange)
|
||||||
|
E(OP_RecipeAutoCombine)
|
||||||
E(OP_SendAATable)
|
E(OP_SendAATable)
|
||||||
E(OP_SendCharInfo)
|
E(OP_SendCharInfo)
|
||||||
E(OP_SendMaxCharacters)
|
E(OP_SendMaxCharacters)
|
||||||
@ -76,6 +78,7 @@ D(OP_RemoveBlockedBuffs)
|
|||||||
D(OP_SetServerFilter)
|
D(OP_SetServerFilter)
|
||||||
D(OP_ShopRequest)
|
D(OP_ShopRequest)
|
||||||
D(OP_SpawnAppearance)
|
D(OP_SpawnAppearance)
|
||||||
|
D(OP_TradeSkillCombine)
|
||||||
D(OP_WearChange)
|
D(OP_WearChange)
|
||||||
D(OP_ZoneEntry)
|
D(OP_ZoneEntry)
|
||||||
D(OP_ZoneChange)
|
D(OP_ZoneChange)
|
||||||
|
|||||||
@ -904,6 +904,50 @@ namespace Laurion {
|
|||||||
TypelessInventorySlot_Struct inventorySlot;
|
TypelessInventorySlot_Struct inventorySlot;
|
||||||
uint32 success;
|
uint32 success;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Click Object Acknowledgement Struct
|
||||||
|
** Response to client clicking on a World Container (ie, forge)
|
||||||
|
** Seems to have not changed from RoF2
|
||||||
|
*/
|
||||||
|
struct ClickObjectAction_Struct {
|
||||||
|
/*00*/ //uint32 player_id; // Appears to have been removed
|
||||||
|
/*00*/ uint32 drop_id; // Appears to use the object_count field now
|
||||||
|
/*04*/ int32 unknown04; // Seen -1
|
||||||
|
/*08*/ int32 unknown08; // Seen -1
|
||||||
|
/*08*/ //uint32 open; // 1=opening, 0=closing - Removed?
|
||||||
|
/*12*/ uint32 type; // See object.h, "Object Types"
|
||||||
|
/*16*/ uint32 unknown16; //
|
||||||
|
/*20*/ uint32 icon; // Icon to display for tradeskill containers
|
||||||
|
/*24*/ uint32 unknown24; //
|
||||||
|
/*28*/ char object_name[64]; // Object name to display
|
||||||
|
/*92*/
|
||||||
|
};
|
||||||
|
|
||||||
|
//received and sent back as an ACK with different reply_code
|
||||||
|
struct RecipeAutoCombine_Struct {
|
||||||
|
/*00*/ uint32 object_type;
|
||||||
|
/*04*/ uint32 some_id;
|
||||||
|
/*08*/ InventorySlot_Struct container_slot; //echoed in reply - Was uint32 unknown1
|
||||||
|
/*20*/ InventorySlot_Struct unknown_slot; //echoed in reply
|
||||||
|
/*32*/ uint32 recipe_id;
|
||||||
|
/*36*/ uint32 reply_code;
|
||||||
|
/*40*/
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
** New Combine Struct
|
||||||
|
** Client requesting to perform a tradeskill combine
|
||||||
|
** Size: 24 bytes
|
||||||
|
** Used In: OP_TradeSkillCombine
|
||||||
|
** Last Updated: 01-05-2013
|
||||||
|
*/
|
||||||
|
struct NewCombine_Struct
|
||||||
|
{
|
||||||
|
/*00*/ InventorySlot_Struct container_slot;
|
||||||
|
/*12*/ InventorySlot_Struct guildtribute_slot; // Slot type is 8? (MapGuildTribute = 8)
|
||||||
|
/*24*/
|
||||||
|
};
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
}; //end namespace structs
|
}; //end namespace structs
|
||||||
|
|||||||
@ -475,15 +475,15 @@ OP_ShopRetrieveParcel=0x0000
|
|||||||
OP_ShopParcelIcon=0x0000
|
OP_ShopParcelIcon=0x0000
|
||||||
|
|
||||||
# tradeskill stuff:
|
# tradeskill stuff:
|
||||||
OP_ClickObject=0x0000
|
OP_ClickObject=0x687e
|
||||||
OP_ClickObjectAction=0x0000
|
OP_ClickObjectAction=0x110f
|
||||||
OP_ClearObject=0x0000
|
OP_ClearObject=0x6155
|
||||||
OP_RecipeDetails=0x0000
|
OP_RecipeDetails=0x01e7
|
||||||
OP_RecipesFavorite=0x0000
|
OP_RecipesFavorite=0x0495
|
||||||
OP_RecipesSearch=0x0000
|
OP_RecipesSearch=0x2f4e
|
||||||
OP_RecipeReply=0x0000
|
OP_RecipeReply=0x2cd2
|
||||||
OP_RecipeAutoCombine=0x0000
|
OP_RecipeAutoCombine=0x5dba
|
||||||
OP_TradeSkillCombine=0x0000
|
OP_TradeSkillCombine=0x4ed8
|
||||||
|
|
||||||
# Tribute Packets:
|
# Tribute Packets:
|
||||||
OP_OpenTributeMaster=0x0000
|
OP_OpenTributeMaster=0x0000
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user