From 8b7388d2dcd36c35eb7157f4c0ea40d66a49af95 Mon Sep 17 00:00:00 2001 From: reason Date: Fri, 27 Mar 2020 14:09:24 -0400 Subject: [PATCH] WIP 0x60Packets (#21) --- src/packet/messages.rs | 1085 ++++++++++++++++++++++++++++++++++------ 1 file changed, 930 insertions(+), 155 deletions(-) diff --git a/src/packet/messages.rs b/src/packet/messages.rs index 68ec3b6..ff81d99 100644 --- a/src/packet/messages.rs +++ b/src/packet/messages.rs @@ -10,29 +10,105 @@ pub trait PSOMessage { fn as_bytes(&self) -> Vec; } +//#[pso_message(0x05)] +//pub struct PlayerActivatedSwitch { + +//} + +#[pso_message(0x06)] +pub struct GuildcardSend { -#[pso_message(0x40)] -pub struct PlayerWalking { - x: f32, - y: f32, - z: f32, } -#[pso_message(0x42)] -pub struct PlayerRunning { - x: f32, - z: f32, +#[pso_message(0x06)] +pub struct GuildcardRecv { + guildcard: u32, + name: [u16; 0x18], + team: [u16; 0x10], + desc: [u16; 0x58], + one: u8, + language: u8, + section_id: u8, + class: u8, } -#[pso_message(0x3E)] -pub struct PlayerStopped { - unknown1: u32, - unknown2: u32, +//#[pso_message(0x07)] +//pub struct SymbolChat { + +//} + +#[pso_message(0x0A)] +pub struct MobAttack { + data: [u8; 8], +} + +#[pso_message(0x0B)] +pub struct BoxAttack { + data: [u8; 8], +} + +#[pso_message(0x0C)] +pub struct Unknown0C { + data: [u8; 8], +} + +#[pso_message(0x0D)] +pub struct Unknown0D { + data: [u8; 8], +} + +//#[pso_message(0x12)] +//pub struct BossInteractionDragon { + +//} + +//#[pso_message(0x13)] +//pub struct BossInteractionDeRolLe { + +//} + +//#[pso_message(0x14)] +//pub struct BossInteractionDeRolLe2 { + +//} + +//#[pso_message(0x15)] +//pub struct BossInteractionVolOpt { + +//} + +//#[pso_message(0x16)] +//pub struct BossInteractionVolOpt2 { + +//} + +#[pso_message(0x17)] +pub struct VolOptSecondPhase { x: f32, y: f32, z: f32, } +//#[pso_message(0x18)] +//pub struct VolOptSecondPhase2 { + +//} + +//#[pso_message(0x19)] +//pub struct BossInteractionDarkFalz { + +//} + +//#[pso_message(0x1B)] +//pub struct PlayerKillActivated { + +//} + +//#[pso_message(0x1C)] +//pub struct PlayerKillActivated2 { + +//} + #[pso_message(0x1F)] pub struct PlayerChangedMap { unknown1: u32, @@ -56,112 +132,178 @@ pub struct TellOtherPlayerMyLocation { z: f32, } -#[pso_message(0x3F)] -pub struct PlayerLoadedIn { - unknown1: u32, - unknown2: u32, +//#[pso_message(0x21)] +//pub struct PlayerWarpingToFloor { + +//} + +//#[pso_message(0x22)] +//pub struct PlayerWarping { + +//} + +//#[pso_message(0x23)] +//pub struct PlayerDoneChangingMap { + +//} + +#[pso_message(0x24)] +pub struct PlayerTeleported { x: f32, y: f32, z: f32, } +#[pso_message(0x25)] +pub struct PlayerEquipItem { + item_id: u32, + variety: [u8; 0x04], + unknown1: u32, +} -#[pso_message(0x23)] -pub struct PlayerDoneChangingMap { +#[pso_message(0x26)] +pub struct PlayerUnequipItem { + item_id: u32, + unknown1: u32, +} +#[pso_message(0x27)] +pub struct PlayerUseItem { + item_id: u32, } -#[pso_message(0x75)] -pub struct PlayerChangedFloor { - map: u32, +#[pso_message(0x28)] +pub struct PlayerFeedMag { + mag_id: u32, + item_id: u32, } +#[pso_message(0x29)] +pub struct PlayerDropItem { + item_id: u32, + amount: u32, +} -#[pso_message(0x52)] -pub struct TalkToNpc { +#[pso_message(0x2A)] +pub struct PlayerDropItem2 { + data: [u8; 20], +} + +#[pso_message(0x2B)] +pub struct AddItemToInventory { + item_data: u32, + item_data2: u32, + item_data3: u32, + slot: u32, + item_data4: u32, unknown1: u32, - unknown2: u32, } -#[pso_message(0x58)] -pub struct LobbyEmote { - emote: u32, +//#[pso_message(0x2C)] +//pub struct InitializeSpeechNpc { + +//} + +//#[pso_message(0x2D)] +//pub struct FinishSpeechNpc { + +//} + +//#[pso_message(0x2F)] +//pub struct FinishSpeechNpcBPD { + +//} + +//#[pso_message(0x30)] +//pub struct PlayerLevelUp { + +//} + +#[pso_message(0x31)] +pub struct PlayerResurrected { + data: [u8; 4], } -#[pso_message(0xAE)] -pub struct UnknownAE { - unknown1: u32, - unknown2: u32, - unknown3: u32, +#[pso_message(0x32)] +pub struct PlayerResurrectedMedicalCenter { + data: [u8; 4], } -#[pso_message(0xAB)] -pub struct PhotonChairSit { - unknown1: u32, +#[pso_message(0x33)] +pub struct PlayerUsedMoonAtomizer { + data: [u8; 4], } -#[pso_message(0xAF)] -pub struct PhotonChairTurn { - unknown1: u32, +#[pso_message(0x36)] +pub struct PlayerPBDonation { + data: [u8; 4], } -#[pso_message(0xB0)] -pub struct PhotonChairMove { +#[pso_message(0x37)] +pub struct PlayerInitiatedPB { + pb_amount: u8, unknown1: u32, } -#[pso_message(0x3B)] -pub struct PlayerSpawnedIntoArea { +//#[pso_message(0x3A)] +//pub struct PlayerLeftArea { + +//} -} +//#[pso_message(0x3B)] +//pub struct PlayerSpawnedIntoArea { + +//} -#[pso_message(0xC8)] -pub struct RequestExp { - enemy_id: u16, - client_id: u8, - unused: u8, - last_hitter: u32, +#[pso_message(0x3E)] +pub struct PlayerStopped { + unknown1: u32, + unknown2: u32, + x: f32, + y: f32, + z: f32, } - -#[pso_message(0x60)] -pub struct RequestItem { - area: u8, - pt_index: u8, - enemy_id: u16, +#[pso_message(0x3F)] +pub struct PlayerLoadedIn { + unknown1: u32, + unknown2: u32, x: f32, + y: f32, z: f32, +} + +#[pso_message(0x40)] +pub struct PlayerWalking { + x: f32, y: f32, + z: f32, } -#[pso_message(0x76)] -pub struct KillMonster { - _unknown: [u8; 4], +#[pso_message(0x42)] +pub struct PlayerRunning { + x: f32, + z: f32, } #[pso_message(0x43)] pub struct ComboStep1 { - + data: [u8; 4], } #[pso_message(0x44)] pub struct ComboStep2 { - + data: [u8; 4], } #[pso_message(0x45)] pub struct ComboStep3 { - + data: [u8; 4], } #[pso_message(0x46)] pub struct ComboStepDone { - -} - -#[pso_message(0x8D)] -pub struct PlayerTechStart { - + data: [u8; 8], } #[pso_message(0x47)] @@ -174,19 +316,171 @@ pub struct PlayerTechCast { #[pso_message(0x48)] pub struct PlayerTechDone { - + technique: u8, + unknown1: u8, + level: u8, + unknown2: u8, } -#[pso_message(0x0A)] -pub struct MobAttack { - +#[pso_message(0x49)] +pub struct PlayerPBUsed { + pb: u8, + unknown1: u32, + amount: u8, + unknown2: u32, } #[pso_message(0x4A)] pub struct PlayerBlockedDamage { + data: [u8; 4], +} + +#[pso_message(0x4B)] +pub struct PlayerReceivedDamage { + data: [u8; 12], +} + +#[pso_message(0x4C)] +pub struct PlayerReceivedDamage2 { + data: [u8; 12], +} + +#[pso_message(0x4D)] +pub struct PlayerDeath { + data: [u8; 4], +} + +#[pso_message(0x4E)] +pub struct PlayerPostDeathAnimation { + data: [u8; 4], +} + +#[pso_message(0x4F)] +pub struct PlayerScapedollResurrection { + data: [u8; 4], +} + +//#[pso_message(0x50)] +//pub struct PlayerActivatedSwitch2 { + +//} + +#[pso_message(0x52)] +pub struct TalkToNpc { + unknown1: u32, + unknown2: u32, +} + +//#[pso_message(0x53)] +//pub struct Unknown53 { + +//} + +#[pso_message(0x55)] +pub struct PlayerWarped { + x: f32, + y: f32, + z: f32, +} + +#[pso_message(0x58)] +pub struct LobbyEmote { + emote: u32, +} + +#[pso_message(0x59)] +pub struct PickupItem { + client_id: u32, + item_id: u32, +} + +//#[pso_message(0x5D)] +//pub struct SplittingStack { + +//} + +//#[pso_message(0x5F)] +//pub struct BoxDrops { + +//} +#[pso_message(0x60)] +pub struct RequestItem { + area: u8, + pt_index: u8, + enemy_id: u16, + x: f32, + z: f32, + y: f32, } +#[pso_message(0x61)] +pub struct PlayerPBParticle { + mag_id: u32, + effect: u8, + unknown1: u32, +} + +#[pso_message(0x63)] +pub struct FloorItemLimitItemDeletion { + item_id: u32, + unknown1: u32, +} + +//#[pso_message(0x66)] +//pub struct PlayerUsedStarAtomizer { + +//} + +#[pso_message(0x67)] +pub struct SpawningMonsters { + data: [u8; 12], +} + +//#[pso_message(0x68)] +//pub struct PlayerTelepipe { + +//} + +#[pso_message(0x69)] +pub struct NpcSpawn { + data: [u8; 8], +} + +#[pso_message(0x74)] +pub struct WordSelect { + data: [u8; 28], +} + +#[pso_message(0x75)] +pub struct PlayerChangedFloor { + map: u32, +} + +#[pso_message(0x76)] +pub struct KillMonster { + data: [u8; 4], +} + +//#[pso_message(0x77)] +//pub struct SyncQuestRegister { + +//} + +//#[pso_message(0x79)] +//pub struct GoGoBall { + +//} + +//#[pso_message(0x7C)] +//pub struct CmodeData { + +//} + +//#[pso_message(0x7D)] +//pub struct BmodeData { + +//} #[pso_message(0x83)] pub struct PlayerTrapSet { @@ -194,63 +488,360 @@ pub struct PlayerTrapSet { trap_count: u16, } -#[pso_message(0x80)] -pub struct PlayerTrapActivate { +//#[pso_message(0x84)] +//pub struct Unknown84 { + +//} + +//#[pso_message(0x80)] +//pub struct PlayerTrapActivate { + +//} + +//#[pso_message(0x87)] +//pub struct PlayerShrink { + +//} + +//#[pso_message(0x88)] +//pub struct PlayerUnshrink { +//} + +#[pso_message(0x89)] +pub struct PlayerKilledByMonster { + data: [u8; 4], } -#[pso_message(0x06)] -pub struct GuildcardSend { +//#[pso_message(0x8A)] +//pub struct CmodeStatistics { + +//} + +//#[pso_message(0x8D)] +//pub struct PlayerTechStart { + +//} + +//#[pso_message(0x94)] +//pub struct PlayerWarped2 { +//} + +//#[pso_message(0x94)] +//pub struct CmodeTryAgain { + +//} + +#[pso_message(0x9A)] +pub struct ModifyPlayerStats { + unknown1: u8, + unknown2: u8, + stat: u8, + amount: u8, } -#[pso_message(0x06)] -pub struct GuildcardRecv { - guildcard: u32, - name: [u16; 0x18], - team: [u16; 0x10], - desc: [u16; 0x58], - one: u8, - language: u8, - section_id: u8, - class: u8, +//#[pso_message(0x9D)] +//pub struct CmodePartyWipe { + +//} + +//#[pso_message(0xA0)] +//pub struct BossInteractionGalGryphon { + +//} + +//#[pso_message(0xA1)] +//pub struct PlayerMoonAtomizerResurrection { + +//} + +//#[pso_message(0xA3)] +//pub struct BossInteractionOlgaFlow { + +//} + +//#[pso_message(0xA4)] +//pub struct BossInteractionOlgaFlow2 { + +//} + +//#[pso_message(0xA5)] +//pub struct BossInteractionOlgaFlow3 { + +//} + +//#[pso_message(0xA8)] +//pub struct BossInteractionGolDragon { + +//} + +//#[pso_message(0xA9)] +//pub struct BossInteractionBarbaRay { + +//} + +//#[pso_message(0xAA)] +//pub struct BossInteractionBarbaRay2 { + +//} + +#[pso_message(0xAB)] +pub struct PhotonChairSit { + unknown1: u32, +} + +//#[pso_message(0xAD)] +//pub struct BossInteractionOlgaFlow4 { + +//} + +#[pso_message(0xAE)] +pub struct UnknownAE { + unknown1: u32, + unknown2: u32, + unknown3: u32, +} + +#[pso_message(0xAF)] +pub struct PhotonChairTurn { + unknown1: u32, +} + +#[pso_message(0xB0)] +pub struct PhotonChairMove { + unknown1: u32, } +//#[pso_message(0xC0)] +//pub struct PlayerSoldItem { + +//} + +#[pso_message(0xC3)] +pub struct DropCoordinates { + drop_area: u32, + x: f32, + z: f32, + drop_ID: u32, +} + +//#[pso_message(0xC4)] +//pub struct SortItems { + +//} + +//#[pso_message(0xC5)] +//pub struct PlayerUsedMedicalCenter { + +//} + +//#[pso_message(0xC6)] +//pub struct ExperienceSteal { + +//} + +//#[pso_message(0xC7)] +//pub struct ChargeAttack { + +//} + +#[pso_message(0xC8)] +pub struct RequestExp { + enemy_id: u16, + client_id: u8, + unused: u8, + last_hitter: u32, +} + +//#[pso_message(0xCB)] +//pub struct TransferItemRequest { + +//} + +//#[pso_message(0xCC)] +//pub struct ExchangeItemForTeampoints { + +//} + +//#[pso_message(0xCF)] +//pub struct RestartBattle { + +//} + +//#[pso_message(0xD2)] +//pub struct WriteQuestFlag { + +//} + +//#[pso_message(0xD5)] +//pub struct QuestItemExchange { + +//} + +//#[pso_message(0xD7)] +//pub struct PaganiniPDExchange { + +//} + +//#[pso_message(0xD8)] +//pub struct SrankSpecialModification { + +//} + +//#[pso_message(0xD9)] +//pub struct MomokaItemShop { + +//} + +//#[pso_message(0xDA)] +//pub struct WeaponAttributeEnhancement { + +//} + +//#[pso_message(0xDC)] +//pub struct BossInteractionSaintMillion { + +//} + +//#[pso_message(0xDE)] +//pub struct GoodLuckQuest { + +//} + +//#[pso_message(0xE1)] +//pub struct GallonsPlanQuest { + +//} #[derive(Debug, Clone, PartialEq)] pub enum GameMessage { - PlayerWalking(PlayerWalking), - PlayerRunning(PlayerRunning), - PlayerStopped(PlayerStopped), - PlayerLoadedIn(PlayerLoadedIn), + //PlayerActivatedSwitch(PlayerActivatedSwitch), + GuildcardSend(GuildcardSend), + GuildcardRecv(GuildcardRecv), + //SymbolChat(SymbolChat), + MobAttack(MobAttack), + BoxAttack(BoxAttack), + Unknown0C(Unknown0C), + Unknown0D(Unknown0D), + //BossInteractionDragon(BossInteractionDragon), + //BossInteractionDeRolLe(BossInteractionDeRolLe), + //BossInteractionDeRolLe2(BossInteractionDeRolLe2), + //BossInteractionVolOpt(BossInteractionVolOpt), + //BossInteractionVolOpt2(BossInteractionVolOpt2), + VolOptSecondPhase(VolOptSecondPhase), + //VolOptSecondPhase2(VolOptSecondPhase2), + //BossInteractionDarkFalz(BossInteractionDarkFalz), + //PlayerKillActivated(PlayerKillActivated), + //PlayerKillActivated2(PlayerKillActivated2), PlayerChangedMap(PlayerChangedMap), PlayerChangedMap2(PlayerChangedMap2), - PlayerDoneChangingMap(PlayerDoneChangingMap), - PlayerChangedFloor(PlayerChangedFloor), TellOtherPlayerMyLocation(TellOtherPlayerMyLocation), - LobbyEmote(LobbyEmote), - TalkToNpc(TalkToNpc), - UnknownAE(UnknownAE), - PhotonChairSit(PhotonChairSit), - PhotonChairTurn(PhotonChairTurn), - PhotonChairMove(PhotonChairMove), - PlayerSpawnedIntoArea(PlayerSpawnedIntoArea), - RequestExp(RequestExp), - RequestItem(RequestItem), - KillMonster(KillMonster), + //PlayerWarpingToFloor(PlayerWarpingToFloor), + //PlayerWarping(PlayerWarping), + //PlayerDoneChangingMap(PlayerDoneChangingMap), + PlayerTeleported(PlayerTeleported), + PlayerEquipItem(PlayerEquipItem), + PlayerUnequipItem(PlayerUnequipItem), + PlayerUseItem(PlayerUseItem), + PlayerFeedMag(PlayerFeedMag), + PlayerDropItem(PlayerDropItem), + PlayerDropItem2(PlayerDropItem2), + AddItemToInventory(AddItemToInventory), + //InitializeSpeechNpc(InitializeSpeechNpc), + //FinishSpeechNpc(FinishSpeechNpc), + //FinishSpeechNpcBPD(FinishSpeechNpcBPD), + //PlayerLevelUp(PlayerLevelUp), + PlayerResurrected(PlayerResurrected), + PlayerResurrectedMedicalCenter(PlayerResurrectedMedicalCenter), + PlayerUsedMoonAtomizer(PlayerUsedMoonAtomizer), + PlayerPBDonation(PlayerPBDonation), + PlayerInitiatedPB(PlayerInitiatedPB), + //PlayerLeftArea(PlayerLeftArea), + //PlayerSpawnedIntoArea(PlayerSpawnedIntoArea), + PlayerStopped(PlayerStopped), + PlayerLoadedIn(PlayerLoadedIn), + PlayerWalking(PlayerWalking), + PlayerRunning(PlayerRunning), ComboStep1(ComboStep1), ComboStep2(ComboStep2), ComboStep3(ComboStep3), ComboStepDone(ComboStepDone), - PlayerTechStart(PlayerTechStart), PlayerTechCast(PlayerTechCast), PlayerTechDone(PlayerTechDone), - MobAttack(MobAttack), + PlayerPBUsed(PlayerPBUsed), PlayerBlockedDamage(PlayerBlockedDamage), + PlayerReceivedDamage(PlayerReceivedDamage), + PlayerReceivedDamage2(PlayerReceivedDamage2), + PlayerDeath(PlayerDeath), + PlayerPostDeathAnimation(PlayerPostDeathAnimation), + PlayerScapedollResurrection(PlayerScapedollResurrection), + //PlayerActivatedSwitch2(PlayerActivatedSwitch2), + TalkToNpc(TalkToNpc), + //Unknown53(Unknown53), + PlayerWarped(PlayerWarped), + LobbyEmote(LobbyEmote), + PickupItem(PickupItem), + //SplittingStack(SplittingStack), + //BoxDrops(BoxDrops), + RequestItem(RequestItem), + PlayerPBParticle(PlayerPBParticle), + FloorItemLimitItemDeletion(FloorItemLimitItemDeletion), + //PlayerUsedStarAtomizer(PlayerUsedStarAtomizer), + SpawningMonsters(SpawningMonsters), + //PlayerTelepipe(PlayerTelepipe), + NpcSpawn(NpcSpawn), + WordSelect(WordSelect), + PlayerChangedFloor(PlayerChangedFloor), + KillMonster(KillMonster), + //SyncQuestRegister(SyncQuestRegister), + //GoGoBall(GoGoBall), + //CmodeData(CmodeData), + //BmodeData(BmodeData), PlayerTrapSet(PlayerTrapSet), - PlayerTrapActivate(PlayerTrapActivate), - GuildcardSend(GuildcardSend), - GuildcardRecv(GuildcardRecv), + //Unknown84(Unknown84), + //PlayerTrapActivate(PlayerTrapActivate), + //PlayerShrink(PlayerShrink), + //PlayerUnshrink(PlayerUnshrink), + PlayerKilledByMonster(PlayerKilledByMonster), + //CmodeStatistics(CmodeStatistics), + //PlayerTechStart(PlayerTechStart), + //PlayerWarped2(PlayerWarped2), + //CmodeTryAgain(CmodeTryAgain), + ModifyPlayerStats(ModifyPlayerStats), + //CmodePartyWipe(CmodePartyWipe), + //BossInteractionGalGryphon(BossInteractionGalGryphon), + //PlayerMoonAtomizerResurrection(PlayerMoonAtomizerResurrection), + //BossInteractionOlgaFlow(BossInteractionOlgaFlow), + //BossInteractionOlgaFlow2(BossInteractionOlgaFlow2), + //BossInteractionOlgaFlow3(BossInteractionOlgaFlow3), + //BossInteractionGolDragon(BossInteractionGolDragon), + //BossInteractionBarbaRay(BossInteractionBarbaRay), + //BossInteractionBarbaRay2(BossInteractionBarbaRay2), + PhotonChairSit(PhotonChairSit), + //BossInteractionOlgaFlow4(BossInteractionOlgaFlow4), + UnknownAE(UnknownAE), + PhotonChairTurn(PhotonChairTurn), + PhotonChairMove(PhotonChairMove), + //PlayerSoldItem(PlayerSoldItem), + DropCoordinates(DropCoordinates), + //SortItems(SortItems), + //PlayerUsedMedicalCenter(PlayerUsedMedicalCenter), + //ExperienceSteal(ExperienceSteal), + //ChargeAttack(ChargeAttack), + RequestExp(RequestExp), + //TransferItemRequest(TransferItemRequest), + //ExchangeItemForTeampoints(ExchangeItemForTeampoints), + //RestartBattle(RestartBattle), + //WriteQuestFlag(WriteQuestFlag), + //QuestItemExchange(QuestItemExchange), + //PaganiniPDExchange(PaganiniPDExchange), + //SrankSpecialModification(SrankSpecialModification), + //MomokaItemShop(MomokaItemShop), + //WeaponAttributeEnhancement(WeaponAttributeEnhancement), + //BossInteractionSaintMillion(BossInteractionSaintMillion), + //GoodLuckQuest(GoodLuckQuest), + //GallonsPlanQuest(GallonsPlanQuest), } impl PSOPacketData for GameMessage { @@ -261,38 +852,132 @@ impl PSOPacketData for GameMessage { cur.read(&mut len); cur.seek(SeekFrom::Current(-2)); // Cursor doesn't implement Peek? match byte[0] { - PlayerWalking::CMD => Ok(GameMessage::PlayerWalking(PlayerWalking::from_bytes(&mut cur)?)), - PlayerRunning::CMD => Ok(GameMessage::PlayerRunning(PlayerRunning::from_bytes(&mut cur)?)), - PlayerStopped::CMD => Ok(GameMessage::PlayerStopped(PlayerStopped::from_bytes(&mut cur)?)), - PlayerLoadedIn::CMD => Ok(GameMessage::PlayerLoadedIn(PlayerLoadedIn::from_bytes(&mut cur)?)), + //PlayerActivatedSwitch::CMD => Ok(GameMessage::PlayerActivatedSwitch(PlayerActivatedSwitch::from_bytes(&mut cur)?)), + GuildcardSend::CMD => Ok(GameMessage::GuildcardSend(GuildcardSend::from_bytes(&mut cur)?)), + GuildcardRecv::CMD => Ok(GameMessage::GuildcardRecv(GuildcardRecv::from_bytes(&mut cur)?)), + //SymbolChat::CMD => Ok(GameMessage::SymbolChat(SymbolChat::from_bytes(&mut cur)?)), + MobAttack::CMD => Ok(GameMessage::MobAttack(MobAttack::from_bytes(&mut cur)?)), + BoxAttack::CMD => Ok(GameMessage::BoxAttack(BoxAttack::from_bytes(&mut cur)?)), + Unknown0C::CMD => Ok(GameMessage::Unknown0C(Unknown0C::from_bytes(&mut cur)?)), + Unknown0D::CMD => Ok(GameMessage::Unknown0D(Unknown0D::from_bytes(&mut cur)?)), + //BossInteractionDragon::CMD => Ok(GameMessage::BossInteractionDragon(BossInteractionDragon::from_bytes(&mut cur)?)), + //BossInteractionDeRolLe::CMD => Ok(GameMessage::BossInteractionDeRolLe(BossInteractionDeRolLe::from_bytes(&mut cur)?)), + //BossInteractionDeRolLe2::CMD => Ok(GameMessage::BossInteractionDeRolLe2(BossInteractionDeRolLe2::from_bytes(&mut cur)?)), + //BossInteractionVolOpt::CMD => Ok(GameMessage::BossInteractionVolOpt(BossInteractionVolOpt::from_bytes(&mut cur)?)), + //BossInteractionVolOpt2::CMD => Ok(GameMessage::BossInteractionVolOpt2(BossInteractionVolOpt2::from_bytes(&mut cur)?)), + VolOptSecondPhase::CMD => Ok(GameMessage::VolOptSecondPhase(VolOptSecondPhase::from_bytes(&mut cur)?)), + //VolOptSecondPhase2::CMD => Ok(GameMessage::VolOptSecondPhase2(VolOptSecondPhase2::from_bytes(&mut cur)?)), + //BossInteractionDarkFalz::CMD => Ok(GameMessage::BossInteractionDarkFalz(BossInteractionDarkFalz::from_bytes(&mut cur)?)), + //PlayerKillActivated::CMD => Ok(GameMessage::PlayerKillActivated(PlayerKillActivated::from_bytes(&mut cur)?)), + //PlayerKillActivated2::CMD => Ok(GameMessage::PlayerKillActivated2(PlayerKillActivated2::from_bytes(&mut cur)?)), PlayerChangedMap::CMD if len[0] == 6 => Ok(GameMessage::PlayerChangedMap(PlayerChangedMap::from_bytes(&mut cur)?)), PlayerChangedMap2::CMD if len[0] == 2 => Ok(GameMessage::PlayerChangedMap2(PlayerChangedMap2::from_bytes(&mut cur)?)), - PlayerDoneChangingMap::CMD => Ok(GameMessage::PlayerDoneChangingMap(PlayerDoneChangingMap::from_bytes(&mut cur)?)), - PlayerChangedFloor::CMD => Ok(GameMessage::PlayerChangedFloor(PlayerChangedFloor::from_bytes(&mut cur)?)), TellOtherPlayerMyLocation::CMD => Ok(GameMessage::TellOtherPlayerMyLocation(TellOtherPlayerMyLocation::from_bytes(&mut cur)?)), - LobbyEmote::CMD => Ok(GameMessage::LobbyEmote(LobbyEmote::from_bytes(&mut cur)?)), - TalkToNpc::CMD => Ok(GameMessage::TalkToNpc(TalkToNpc::from_bytes(&mut cur)?)), - UnknownAE::CMD => Ok(GameMessage::UnknownAE(UnknownAE::from_bytes(&mut cur)?)), - PhotonChairSit::CMD => Ok(GameMessage::PhotonChairSit(PhotonChairSit::from_bytes(&mut cur)?)), - PhotonChairTurn::CMD => Ok(GameMessage::PhotonChairTurn(PhotonChairTurn::from_bytes(&mut cur)?)), - PhotonChairMove::CMD => Ok(GameMessage::PhotonChairMove(PhotonChairMove::from_bytes(&mut cur)?)), - PlayerSpawnedIntoArea::CMD => Ok(GameMessage::PlayerSpawnedIntoArea(PlayerSpawnedIntoArea::from_bytes(&mut cur)?)), - RequestExp::CMD => Ok(GameMessage::RequestExp(RequestExp::from_bytes(&mut cur)?)), - RequestItem::CMD => Ok(GameMessage::RequestItem(RequestItem::from_bytes(&mut cur)?)), - KillMonster::CMD => Ok(GameMessage::KillMonster(KillMonster::from_bytes(&mut cur)?)), + //PlayerWarpingToFloor::CMD => Ok(GameMessage::PlayerWarpingToFloor(PlayerWarpingToFloor::from_bytes(&mut cur)?)), + //PlayerWarping::CMD => Ok(GameMessage::PlayerWarping(PlayerWarping::from_bytes(&mut cur)?)), + //PlayerDoneChangingMap::CMD => Ok(GameMessage::PlayerDoneChangingMap(PlayerDoneChangingMap::from_bytes(&mut cur)?)), + PlayerTeleported::CMD => Ok(GameMessage::PlayerTeleported(PlayerTeleported::from_bytes(&mut cur)?)), + PlayerEquipItem::CMD => Ok(GameMessage::PlayerEquipItem(PlayerEquipItem::from_bytes(&mut cur)?)), + PlayerUnequipItem::CMD => Ok(GameMessage::PlayerUnequipItem(PlayerUnequipItem::from_bytes(&mut cur)?)), + PlayerUseItem::CMD => Ok(GameMessage::PlayerUseItem(PlayerUseItem::from_bytes(&mut cur)?)), + PlayerFeedMag::CMD => Ok(GameMessage::PlayerFeedMag(PlayerFeedMag::from_bytes(&mut cur)?)), + PlayerDropItem::CMD => Ok(GameMessage::PlayerDropItem(PlayerDropItem::from_bytes(&mut cur)?)), + PlayerDropItem2::CMD => Ok(GameMessage::PlayerDropItem2(PlayerDropItem2::from_bytes(&mut cur)?)), + AddItemToInventory::CMD => Ok(GameMessage::AddItemToInventory(AddItemToInventory::from_bytes(&mut cur)?)), + //InitializeSpeechNpc::CMD => Ok(GameMessage::InitializeSpeechNpc(InitializeSpeechNpc::from_bytes(&mut cur)?)), + //FinishSpeechNpc::CMD => Ok(GameMessage::FinishSpeechNpc(FinishSpeechNpc::from_bytes(&mut cur)?)), + //FinishSpeechNpcBPD::CMD => Ok(GameMessage::FinishSpeechNpcBPD(FinishSpeechNpcBPD::from_bytes(&mut cur)?)), + //PlayerLevelUp::CMD => Ok(GameMessage::PlayerLevelUp(PlayerLevelUp::from_bytes(&mut cur)?)), + PlayerResurrected::CMD => Ok(GameMessage::PlayerResurrected(PlayerResurrected::from_bytes(&mut cur)?)), + PlayerResurrectedMedicalCenter::CMD => Ok(GameMessage::PlayerResurrectedMedicalCenter(PlayerResurrectedMedicalCenter::from_bytes(&mut cur)?)), + PlayerUsedMoonAtomizer::CMD => Ok(GameMessage::PlayerUsedMoonAtomizer(PlayerUsedMoonAtomizer::from_bytes(&mut cur)?)), + PlayerPBDonation::CMD => Ok(GameMessage::PlayerPBDonation(PlayerPBDonation::from_bytes(&mut cur)?)), + PlayerInitiatedPB::CMD => Ok(GameMessage::PlayerInitiatedPB(PlayerInitiatedPB::from_bytes(&mut cur)?)), + //PlayerLeftArea::CMD => Ok(GameMessage::PlayerLeftArea(PlayerLeftArea::from_bytes(&mut cur)?)), + //PlayerSpawnedIntoArea::CMD => Ok(GameMessage::PlayerSpawnedIntoArea(PlayerSpawnedIntoArea::from_bytes(&mut cur)?)), + PlayerStopped::CMD => Ok(GameMessage::PlayerStopped(PlayerStopped::from_bytes(&mut cur)?)), + PlayerLoadedIn::CMD => Ok(GameMessage::PlayerLoadedIn(PlayerLoadedIn::from_bytes(&mut cur)?)), + PlayerWalking::CMD => Ok(GameMessage::PlayerWalking(PlayerWalking::from_bytes(&mut cur)?)), + PlayerRunning::CMD => Ok(GameMessage::PlayerRunning(PlayerRunning::from_bytes(&mut cur)?)), ComboStep1::CMD => Ok(GameMessage::ComboStep1(ComboStep1::from_bytes(&mut cur)?)), ComboStep2::CMD => Ok(GameMessage::ComboStep2(ComboStep2::from_bytes(&mut cur)?)), ComboStep3::CMD => Ok(GameMessage::ComboStep3(ComboStep3::from_bytes(&mut cur)?)), ComboStepDone::CMD => Ok(GameMessage::ComboStepDone(ComboStepDone::from_bytes(&mut cur)?)), - PlayerTechStart::CMD => Ok(GameMessage::PlayerTechStart(PlayerTechStart::from_bytes(&mut cur)?)), PlayerTechCast::CMD => Ok(GameMessage::PlayerTechCast(PlayerTechCast::from_bytes(&mut cur)?)), PlayerTechDone::CMD => Ok(GameMessage::PlayerTechDone(PlayerTechDone::from_bytes(&mut cur)?)), - MobAttack::CMD => Ok(GameMessage::MobAttack(MobAttack::from_bytes(&mut cur)?)), + PlayerPBUsed::CMD => Ok(GameMessage::PlayerPBUsed(PlayerPBUsed::from_bytes(&mut cur)?)), PlayerBlockedDamage::CMD => Ok(GameMessage::PlayerBlockedDamage(PlayerBlockedDamage::from_bytes(&mut cur)?)), + PlayerReceivedDamage::CMD => Ok(GameMessage::PlayerReceivedDamage(PlayerReceivedDamage::from_bytes(&mut cur)?)), + PlayerReceivedDamage2::CMD => Ok(GameMessage::PlayerReceivedDamage2(PlayerReceivedDamage2::from_bytes(&mut cur)?)), + PlayerDeath::CMD => Ok(GameMessage::PlayerDeath(PlayerDeath::from_bytes(&mut cur)?)), + PlayerPostDeathAnimation::CMD => Ok(GameMessage::PlayerPostDeathAnimation(PlayerPostDeathAnimation::from_bytes(&mut cur)?)), + PlayerScapedollResurrection::CMD => Ok(GameMessage::PlayerScapedollResurrection(PlayerScapedollResurrection::from_bytes(&mut cur)?)), + //PlayerActivatedSwitch2::CMD => Ok(GameMessage::PlayerActivatedSwitch2(PlayerActivatedSwitch2::from_bytes(&mut cur)?)), + TalkToNpc::CMD => Ok(GameMessage::TalkToNpc(TalkToNpc::from_bytes(&mut cur)?)), + //Unknown53::CMD => Ok(GameMessage::Unknown53(Unknown53::from_bytes(&mut cur)?)), + PlayerWarped::CMD => Ok(GameMessage::PlayerWarped(PlayerWarped::from_bytes(&mut cur)?)), + LobbyEmote::CMD => Ok(GameMessage::LobbyEmote(LobbyEmote::from_bytes(&mut cur)?)), + PickupItem::CMD => Ok(GameMessage::PickupItem(PickupItem::from_bytes(&mut cur)?)), + //SplittingStack::CMD => Ok(GameMessage::SplittingStack(SplittingStack::from_bytes(&mut cur)?)), + //BoxDrops::CMD => Ok(GameMessage::BoxDrops(BoxDrops::from_bytes(&mut cur)?)), + RequestItem::CMD => Ok(GameMessage::RequestItem(RequestItem::from_bytes(&mut cur)?)), + PlayerPBParticle::CMD => Ok(GameMessage::PlayerPBParticle(PlayerPBParticle::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)?)), + NpcSpawn::CMD => Ok(GameMessage::NpcSpawn(NpcSpawn::from_bytes(&mut cur)?)), + WordSelect::CMD => Ok(GameMessage::WordSelect(WordSelect::from_bytes(&mut cur)?)), + PlayerChangedFloor::CMD => Ok(GameMessage::PlayerChangedFloor(PlayerChangedFloor::from_bytes(&mut cur)?)), + KillMonster::CMD => Ok(GameMessage::KillMonster(KillMonster::from_bytes(&mut cur)?)), + //SyncQuestRegister::CMD => Ok(GameMessage::SyncQuestRegister(SyncQuestRegister::from_bytes(&mut cur)?)), + //GoGoBall::CMD => Ok(GameMessage::GoGoBall(GoGoBall::from_bytes(&mut cur)?)), + //CmodeData::CMD => Ok(GameMessage::CmodeData(CmodeData::from_bytes(&mut cur)?)), + //BmodeData::CMD => Ok(GameMessage::BmodeData(BmodeData::from_bytes(&mut cur)?)), PlayerTrapSet::CMD => Ok(GameMessage::PlayerTrapSet(PlayerTrapSet::from_bytes(&mut cur)?)), - PlayerTrapActivate::CMD => Ok(GameMessage::PlayerTrapActivate(PlayerTrapActivate::from_bytes(&mut cur)?)), - GuildcardSend::CMD => Ok(GameMessage::GuildcardSend(GuildcardSend::from_bytes(&mut cur)?)), - GuildcardRecv::CMD => Ok(GameMessage::GuildcardRecv(GuildcardRecv::from_bytes(&mut cur)?)), + //Unknown84::CMD => Ok(GameMessage::Unknown84(Unknown84::from_bytes(&mut cur)?)), + //PlayerTrapActivate::CMD => Ok(GameMessage::PlayerTrapActivate(PlayerTrapActivate::from_bytes(&mut cur)?)), + //PlayerShrink::CMD => Ok(GameMessage::PlayerShrink(PlayerShrink::from_bytes(&mut cur)?)), + //PlayerUnshrink::CMD => Ok(GameMessage::PlayerUnshrink(PlayerUnshrink::from_bytes(&mut cur)?)), + PlayerKilledByMonster::CMD => Ok(GameMessage::PlayerKilledByMonster(PlayerKilledByMonster::from_bytes(&mut cur)?)), + //CmodeStatistics::CMD => Ok(GameMessage::CmodeStatistics(CmodeStatistics::from_bytes(&mut cur)?)), + //PlayerTechStart::CMD => Ok(GameMessage::PlayerTechStart(PlayerTechStart::from_bytes(&mut cur)?)), + //PlayerWarped2::CMD => Ok(GameMessage::PlayerWarped2(PlayerWarped2::from_bytes(&mut cur)?)), + //CmodeTryAgain::CMD => Ok(GameMessage::CmodeTryAgain(CmodeTryAgain::from_bytes(&mut cur)?)), + ModifyPlayerStats::CMD => Ok(GameMessage::ModifyPlayerStats(ModifyPlayerStats::from_bytes(&mut cur)?)), + //CmodePartyWipe::CMD => Ok(GameMessage::CmodePartyWipe(CmodePartyWipe::from_bytes(&mut cur)?)), + //BossInteractionGalGryphon::CMD => Ok(GameMessage::BossInteractionGalGryphon(BossInteractionGalGryphon::from_bytes(&mut cur)?)), + //PlayerMoonAtomizerResurrection::CMD => Ok(GameMessage::PlayerMoonAtomizerResurrection(PlayerMoonAtomizerResurrection::from_bytes(&mut cur)?)), + //BossInteractionOlgaFlow::CMD => Ok(GameMessage::BossInteractionOlgaFlow(BossInteractionOlgaFlow::from_bytes(&mut cur)?)), + //BossInteractionOlgaFlow2::CMD => Ok(GameMessage::BossInteractionOlgaFlow2(BossInteractionOlgaFlow2::from_bytes(&mut cur)?)), + //BossInteractionOlgaFlow3::CMD => Ok(GameMessage::BossInteractionOlgaFlow3(BossInteractionOlgaFlow3::from_bytes(&mut cur)?)), + //BossInteractionGolDragon::CMD => Ok(GameMessage::BossInteractionGolDragon(BossInteractionGolDragon::from_bytes(&mut cur)?)), + //BossInteractionBarbaRay::CMD => Ok(GameMessage::BossInteractionBarbaRay(BossInteractionBarbaRay::from_bytes(&mut cur)?)), + //BossInteractionBarbaRay2::CMD => Ok(GameMessage::BossInteractionBarbaRay2(BossInteractionBarbaRay2::from_bytes(&mut cur)?)), + PhotonChairSit::CMD => Ok(GameMessage::PhotonChairSit(PhotonChairSit::from_bytes(&mut cur)?)), + //BossInteractionOlgaFlow4::CMD => Ok(GameMessage::BossInteractionOlgaFlow4(BossInteractionOlgaFlow4::from_bytes(&mut cur)?)), + UnknownAE::CMD => Ok(GameMessage::UnknownAE(UnknownAE::from_bytes(&mut cur)?)), + PhotonChairTurn::CMD => Ok(GameMessage::PhotonChairTurn(PhotonChairTurn::from_bytes(&mut cur)?)), + PhotonChairMove::CMD => Ok(GameMessage::PhotonChairMove(PhotonChairMove::from_bytes(&mut cur)?)), + //PlayerSoldItem::CMD => Ok(GameMessage::PlayerSoldItem(PlayerSoldItem::from_bytes(&mut cur)?)), + DropCoordinates::CMD => Ok(GameMessage::DropCoordinates(DropCoordinates::from_bytes(&mut cur)?)), + //SortItems::CMD => Ok(GameMessage::SortItems(SortItems::from_bytes(&mut cur)?)), + //PlayerUsedMedicalCenter::CMD => Ok(GameMessage::PlayerUsedMedicalCenter(PlayerUsedMedicalCenter::from_bytes(&mut cur)?)), + //ExperienceSteal::CMD => Ok(GameMessage::ExperienceSteal(ExperienceSteal::from_bytes(&mut cur)?)), + //ChargeAttack::CMD => Ok(GameMessage::ChargeAttack(ChargeAttack::from_bytes(&mut cur)?)), + RequestExp::CMD => Ok(GameMessage::RequestExp(RequestExp::from_bytes(&mut cur)?)), + //TransferItemRequest::CMD => Ok(GameMessage::TransferItemRequest(TransferItemRequest::from_bytes(&mut cur)?)), + //ExchangeItemForTeampoints::CMD => Ok(GameMessage::ExchangeItemForTeampoints(ExchangeItemForTeampoints::from_bytes(&mut cur)?)), + //RestartBattle::CMD => Ok(GameMessage::RestartBattle(RestartBattle::from_bytes(&mut cur)?)), + //WriteQuestFlag::CMD => Ok(GameMessage::WriteQuestFlag(WriteQuestFlag::from_bytes(&mut cur)?)), + //QuestItemExchange::CMD => Ok(GameMessage::QuestItemExchange(QuestItemExchange::from_bytes(&mut cur)?)), + //PaganiniPDExchange::CMD => Ok(GameMessage::PaganiniPDExchange(PaganiniPDExchange::from_bytes(&mut cur)?)), + //SrankSpecialModification::CMD => Ok(GameMessage::SrankSpecialModification(SrankSpecialModification::from_bytes(&mut cur)?)), + //MomokaItemShop::CMD => Ok(GameMessage::MomokaItemShop(MomokaItemShop::from_bytes(&mut cur)?)), + //WeaponAttributeEnhancement::CMD => Ok(GameMessage::WeaponAttributeEnhancement(WeaponAttributeEnhancement::from_bytes(&mut cur)?)), + //BossInteractionSaintMillion::CMD => Ok(GameMessage::BossInteractionSaintMillion(BossInteractionSaintMillion::from_bytes(&mut cur)?)), + //GoodLuckQuest::CMD => Ok(GameMessage::GoodLuckQuest(GoodLuckQuest::from_bytes(&mut cur)?)), + //GallonsPlanQuest::CMD => Ok(GameMessage::GallonsPlanQuest(GallonsPlanQuest::from_bytes(&mut cur)?)), _ => Err(PacketParseError::UnknownMessage(byte[0], { let mut b = vec![0; len[0] as usize * 4]; @@ -302,45 +987,135 @@ impl PSOPacketData for GameMessage { )), } } + fn as_bytes(&self) -> Vec { match self { - GameMessage::PlayerWalking(data) => data.as_bytes(), - GameMessage::PlayerRunning(data) => data.as_bytes(), - GameMessage::PlayerStopped(data) => data.as_bytes(), - GameMessage::PlayerLoadedIn(data) => data.as_bytes(), + //GameMessage::PlayerActivatedSwitch(data) => data.as_bytes(), + GameMessage::GuildcardSend(data) => data.as_bytes(), + GameMessage::GuildcardRecv(data) => data.as_bytes(), + //GameMessage::SymbolChat(data) => data.as_bytes(), + GameMessage::MobAttack(data) => data.as_bytes(), + GameMessage::BoxAttack(data) => data.as_bytes(), + GameMessage::Unknown0C(data) => data.as_bytes(), + GameMessage::Unknown0D(data) => data.as_bytes(), + //GameMessage::BossInteractionDragon(data) => data.as_bytes(), + //GameMessage::BossInteractionDeRolLe(data) => data.as_bytes(), + //GameMessage::BossInteractionDeRolLe2(data) => data.as_bytes(), + //GameMessage::BossInteractionVolOpt(data) => data.as_bytes(), + //GameMessage::BossInteractionVolOpt2(data) => data.as_bytes(), + GameMessage::VolOptSecondPhase(data) => data.as_bytes(), + //GameMessage::VolOptSecondPhase2(data) => data.as_bytes(), + //GameMessage::BossInteractionDarkFalz(data) => data.as_bytes(), + //GameMessage::PlayerKillActivated(data) => data.as_bytes(), + //GameMessage::PlayerKillActivated2(data) => data.as_bytes(), GameMessage::PlayerChangedMap(data) => data.as_bytes(), GameMessage::PlayerChangedMap2(data) => data.as_bytes(), - GameMessage::PlayerDoneChangingMap(data) => data.as_bytes(), GameMessage::TellOtherPlayerMyLocation(data) => data.as_bytes(), - GameMessage::LobbyEmote(data) => data.as_bytes(), - GameMessage::TalkToNpc(data) => data.as_bytes(), - GameMessage::UnknownAE(data) => data.as_bytes(), - GameMessage::PhotonChairSit(data) => data.as_bytes(), - GameMessage::PhotonChairTurn(data) => data.as_bytes(), - GameMessage::PhotonChairMove(data) => data.as_bytes(), - GameMessage::PlayerSpawnedIntoArea(data) => data.as_bytes(), - GameMessage::RequestExp(data) => data.as_bytes(), - GameMessage::RequestItem(data) => data.as_bytes(), - GameMessage::KillMonster(data) => data.as_bytes(), + //GameMessage::PlayerWarpingToFloor(data) => data.as_bytes(), + //GameMessage::PlayerWarping(data) => data.as_bytes(), + //GameMessage::PlayerDoneChangingMap(data) => data.as_bytes(), + GameMessage::PlayerTeleported(data) => data.as_bytes(), + GameMessage::PlayerEquipItem(data) => data.as_bytes(), + GameMessage::PlayerUnequipItem(data) => data.as_bytes(), + GameMessage::PlayerUseItem(data) => data.as_bytes(), + GameMessage::PlayerFeedMag(data) => data.as_bytes(), + GameMessage::PlayerDropItem(data) => data.as_bytes(), + GameMessage::PlayerDropItem2(data) => data.as_bytes(), + GameMessage::AddItemToInventory(data) => data.as_bytes(), + //GameMessage::InitializeSpeechNpc(data) => data.as_bytes(), + //GameMessage::FinishSpeechNpc(data) => data.as_bytes(), + //GameMessage::FinishSpeechNpcBPD(data) => data.as_bytes(), + //GameMessage::PlayerLevelUp(data) => data.as_bytes(), + GameMessage::PlayerResurrected(data) => data.as_bytes(), + GameMessage::PlayerResurrectedMedicalCenter(data) => data.as_bytes(), + GameMessage::PlayerUsedMoonAtomizer(data) => data.as_bytes(), + GameMessage::PlayerPBDonation(data) => data.as_bytes(), + GameMessage::PlayerInitiatedPB(data) => data.as_bytes(), + //GameMessage::PlayerLeftArea(data) => data.as_bytes(), + //GameMessage::PlayerSpawnedIntoArea(data) => data.as_bytes(), + GameMessage::PlayerStopped(data) => data.as_bytes(), + GameMessage::PlayerLoadedIn(data) => data.as_bytes(), + GameMessage::PlayerWalking(data) => data.as_bytes(), + GameMessage::PlayerRunning(data) => data.as_bytes(), GameMessage::ComboStep1(data) => data.as_bytes(), GameMessage::ComboStep2(data) => data.as_bytes(), GameMessage::ComboStep3(data) => data.as_bytes(), GameMessage::ComboStepDone(data) => data.as_bytes(), - GameMessage::PlayerTechStart(data) => data.as_bytes(), GameMessage::PlayerTechCast(data) => data.as_bytes(), GameMessage::PlayerTechDone(data) => data.as_bytes(), - GameMessage::MobAttack(data) => data.as_bytes(), + GameMessage::PlayerPBUsed(data) => data.as_bytes(), GameMessage::PlayerBlockedDamage(data) => data.as_bytes(), - GameMessage::PlayerTrapSet(data) => data.as_bytes(), - GameMessage::PlayerTrapActivate(data) => data.as_bytes(), + GameMessage::PlayerReceivedDamage(data) => data.as_bytes(), + GameMessage::PlayerReceivedDamage2(data) => data.as_bytes(), + GameMessage::PlayerDeath(data) => data.as_bytes(), + GameMessage::PlayerPostDeathAnimation(data) => data.as_bytes(), + GameMessage::PlayerScapedollResurrection(data) => data.as_bytes(), + //GameMessage::PlayerActivatedSwitch2(data) => data.as_bytes(), + GameMessage::TalkToNpc(data) => data.as_bytes(), + //GameMessage::Unknown53(data) => data.as_bytes(), + GameMessage::PlayerWarped(data) => data.as_bytes(), + GameMessage::LobbyEmote(data) => data.as_bytes(), + GameMessage::PickupItem(data) => data.as_bytes(), + //GameMessage::SplittingStack(data) => data.as_bytes(), + //GameMessage::BoxDrops(data) => data.as_bytes(), + GameMessage::RequestItem(data) => data.as_bytes(), + GameMessage::PlayerPBParticle(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(), + GameMessage::NpcSpawn(data) => data.as_bytes(), + GameMessage::WordSelect(data) => data.as_bytes(), GameMessage::PlayerChangedFloor(data) => data.as_bytes(), - GameMessage::GuildcardSend(data) => data.as_bytes(), - GameMessage::GuildcardRecv(data) => data.as_bytes(), + GameMessage::KillMonster(data) => data.as_bytes(), + //GameMessage::SyncQuestRegister(data) => data.as_bytes(), + //GameMessage::GoGoBall(data) => data.as_bytes(), + //GameMessage::CmodeData(data) => data.as_bytes(), + //GameMessage::BmodeData(data) => data.as_bytes(), + GameMessage::PlayerTrapSet(data) => data.as_bytes(), + //GameMessage::Unknown84(data) => data.as_bytes(), + //GameMessage::PlayerTrapActivate(data) => data.as_bytes(), + //GameMessage::PlayerShrink(data) => data.as_bytes(), + //GameMessage::PlayerUnshrink(data) => data.as_bytes(), + GameMessage::PlayerKilledByMonster(data) => data.as_bytes(), + //GameMessage::CmodeStatistics(data) => data.as_bytes(), + //GameMessage::PlayerTechStart(data) => data.as_bytes(), + //GameMessage::PlayerWarped2(data) => data.as_bytes(), + //GameMessage::CmodeTryAgain(data) => data.as_bytes(), + GameMessage::ModifyPlayerStats(data) => data.as_bytes(), + //GameMessage::CmodePartyWipe(data) => data.as_bytes(), + //GameMessage::BossInteractionGalGryphon(data) => data.as_bytes(), + //GameMessage::PlayerMoonAtomizerResurrection(data) => data.as_bytes(), + //GameMessage::BossInteractionOlgaFlow(data) => data.as_bytes(), + //GameMessage::BossInteractionOlgaFlow2(data) => data.as_bytes(), + //GameMessage::BossInteractionOlgaFlow3(data) => data.as_bytes(), + //GameMessage::BossInteractionGolDragon(data) => data.as_bytes(), + //GameMessage::BossInteractionBarbaRay(data) => data.as_bytes(), + //GameMessage::BossInteractionBarbaRay2(data) => data.as_bytes(), + GameMessage::PhotonChairSit(data) => data.as_bytes(), + //GameMessage::BossInteractionOlgaFlow4(data) => data.as_bytes(), + GameMessage::UnknownAE(data) => data.as_bytes(), + GameMessage::PhotonChairTurn(data) => data.as_bytes(), + GameMessage::PhotonChairMove(data) => data.as_bytes(), + //GameMessage::PlayerSoldItem(data) => data.as_bytes(), + GameMessage::DropCoordinates(data) => data.as_bytes(), + //GameMessage::SortItems(data) => data.as_bytes(), + //GameMessage::PlayerUsedMedicalCenter(data) => data.as_bytes(), + //GameMessage::ExperienceSteal(data) => data.as_bytes(), + //GameMessage::ChargeAttack(data) => data.as_bytes(), + GameMessage::RequestExp(data) => data.as_bytes(), + //GameMessage::TransferItemRequest(data) => data.as_bytes(), + //GameMessage::ExchangeItemForTeampoints(data) => data.as_bytes(), + //GameMessage::RestartBattle(data) => data.as_bytes(), + //GameMessage::WriteQuestFlag(data) => data.as_bytes(), + //GameMessage::QuestItemExchange(data) => data.as_bytes(), + //GameMessage::PaganiniPDExchange(data) => data.as_bytes(), + //GameMessage::SrankSpecialModification(data) => data.as_bytes(), + //GameMessage::MomokaItemShop(data) => data.as_bytes(), + //GameMessage::WeaponAttributeEnhancement(data) => data.as_bytes(), + //GameMessage::BossInteractionSaintMillion(data) => data.as_bytes(), + //GameMessage::GoodLuckQuest(data) => data.as_bytes(), + //GameMessage::GallonsPlanQuest(data) => data.as_bytes(), } } -} - - - - - +} \ No newline at end of file