diff --git a/src/packet/messages.rs b/src/packet/messages.rs index 7ac1fa2..09a9e44 100644 --- a/src/packet/messages.rs +++ b/src/packet/messages.rs @@ -501,12 +501,11 @@ pub struct MagAnimation { unknown1: u16, } -//#[pso_message(0x63)] -//pub struct FloorItemLimitItemDeletion { -// client_id: u16, -// item_id: u8, -// amount: u8, -//} +#[pso_message(0x63)] +pub struct FloorItemLimitItemDeletion { + item_id: u32, + map_area: u16, +} #[pso_message(0x66)] pub struct PlayerUsedStarAtomizer { @@ -948,6 +947,7 @@ pub struct DropCoordinates { x: f32, z: f32, item_id: u32, + amount: u32, } #[pso_message(0xC4)] @@ -1166,7 +1166,7 @@ pub enum GameMessage { ItemDrop(ItemDrop), RequestItem(RequestItem), MagAnimation(MagAnimation), - //FloorItemLimitItemDeletion(FloorItemLimitItemDeletion), + FloorItemLimitItemDeletion(FloorItemLimitItemDeletion), PlayerUsedStarAtomizer(PlayerUsedStarAtomizer), SpawningMonsters(SpawningMonsters), PlayerTelepipe(PlayerTelepipe), @@ -1333,7 +1333,7 @@ impl PSOPacketData for GameMessage { ItemDrop::CMD => Ok(GameMessage::ItemDrop(ItemDrop::from_bytes(&mut cur)?)), RequestItem::CMD => Ok(GameMessage::RequestItem(RequestItem::from_bytes(&mut cur)?)), MagAnimation::CMD => Ok(GameMessage::MagAnimation(MagAnimation::from_bytes(&mut cur)?)), - //FloorItemLimitItemDeletion::CMD => Ok(GameMessage::FloorItemLimitItemDeletion(FloorItemLimitItemDeletion::from_bytes(&mut cur)?)), + FloorItemLimitItemDeletion::CMD => Ok(GameMessage::FloorItemLimitItemDeletion(FloorItemLimitItemDeletion::from_bytes(&mut cur)?)), PlayerUsedStarAtomizer::CMD => Ok(GameMessage::PlayerUsedStarAtomizer(PlayerUsedStarAtomizer::from_bytes(&mut cur)?)), SpawningMonsters::CMD => Ok(GameMessage::SpawningMonsters(SpawningMonsters::from_bytes(&mut cur)?)), PlayerTelepipe::CMD => Ok(GameMessage::PlayerTelepipe(PlayerTelepipe::from_bytes(&mut cur)?)), @@ -1502,7 +1502,7 @@ impl PSOPacketData for GameMessage { GameMessage::ItemDrop(data) => data.as_bytes(), GameMessage::RequestItem(data) => data.as_bytes(), GameMessage::MagAnimation(data) => data.as_bytes(), - //GameMessage::FloorItemLimitItemDeletion(data) => data.as_bytes(), + GameMessage::FloorItemLimitItemDeletion(data) => data.as_bytes(), GameMessage::PlayerUsedStarAtomizer(data) => data.as_bytes(), GameMessage::SpawningMonsters(data) => data.as_bytes(), GameMessage::PlayerTelepipe(data) => data.as_bytes(),