Browse Source

0x60/0x62 Packets (#22)

pull/3/head
reason 4 years ago
committed by jake
parent
commit
4942a4ff28
  1. 449
      src/packet/messages.rs

449
src/packet/messages.rs

@ -10,10 +10,10 @@ pub trait PSOMessage {
fn as_bytes(&self) -> Vec<u8>;
}
//#[pso_message(0x05)]
//pub struct PlayerActivatedSwitch {
//}
#[pso_message(0x05)]
pub struct PlayerActivatedSwitch {
data: u16,
}
#[pso_message(0x06)]
pub struct GuildcardSend {
@ -132,20 +132,22 @@ pub struct TellOtherPlayerMyLocation {
z: f32,
}
//#[pso_message(0x21)]
//pub struct PlayerWarpingToFloor {
//}
#[pso_message(0x21)]
pub struct PlayerWarpingToFloor {
area: u8,
data: u16,
}
//#[pso_message(0x22)]
//pub struct PlayerWarping {
//}
#[pso_message(0x22)]
pub struct PlayerWarping {
//#[pso_message(0x23)]
//pub struct PlayerDoneChangingMap {
//}
}
#[pso_message(0x23)]
pub struct PlayerDoneChangingMap {
}
#[pso_message(0x24)]
pub struct PlayerTeleported {
@ -157,8 +159,8 @@ pub struct PlayerTeleported {
#[pso_message(0x25)]
pub struct PlayerEquipItem {
item_id: u32,
variety: [u8; 0x04],
unknown1: u32,
variety: u8,
unknown1: u16,
}
#[pso_message(0x26)]
@ -186,7 +188,12 @@ pub struct PlayerDropItem {
#[pso_message(0x2A)]
pub struct PlayerDropItem2 {
data: [u8; 20],
unknown1: u16,
area: u16,
item_id: u32,
x: f32,
y: f32,
z: f32,
}
#[pso_message(0x2B)]
@ -199,44 +206,54 @@ pub struct AddItemToInventory {
unknown1: u32,
}
//#[pso_message(0x2C)]
//pub struct InitializeSpeechNpc {
//}
#[pso_message(0x2C)]
pub struct InitializeSpeechNpc {
unknown1: u16,
unknown2: u16,
location: u32,
location2: u32,
unknown3: u32,
}
//#[pso_message(0x2D)]
//pub struct FinishSpeechNpc {
#[pso_message(0x2D)]
pub struct FinishSpeechNpc {
//}
}
//#[pso_message(0x2F)]
//pub struct FinishSpeechNpcBPD {
#[pso_message(0x2F)]
pub struct FinishSpeechNpcBPD {
//}
}
//#[pso_message(0x30)]
//pub struct PlayerLevelUp {
//}
#[pso_message(0x30)]
pub struct PlayerLevelUp {
atp: u16,
mst: u16,
evp: u16,
hp: u16,
dfp: u16,
ata: u16,
lvl: u32,
}
#[pso_message(0x31)]
pub struct PlayerResurrected {
data: [u8; 4],
}
#[pso_message(0x32)]
pub struct PlayerResurrectedMedicalCenter {
data: [u8; 4],
}
#[pso_message(0x33)]
pub struct PlayerUsedMoonAtomizer {
data: [u8; 4],
}
#[pso_message(0x36)]
pub struct PlayerPBDonation {
data: [u8; 4],
}
#[pso_message(0x37)]
@ -245,15 +262,15 @@ pub struct PlayerInitiatedPB {
unknown1: u32,
}
//#[pso_message(0x3A)]
//pub struct PlayerLeftArea {
#[pso_message(0x3A)]
pub struct PlayerLeftArea {
//}
}
//#[pso_message(0x3B)]
//pub struct PlayerSpawnedIntoArea {
#[pso_message(0x3B)]
pub struct PlayerSpawnedIntoArea {
//}
}
#[pso_message(0x3E)]
pub struct PlayerStopped {
@ -303,7 +320,7 @@ pub struct ComboStep3 {
#[pso_message(0x46)]
pub struct ComboStepDone {
data: [u8; 8],
data: [u8; 4],
}
#[pso_message(0x47)]
@ -332,38 +349,43 @@ pub struct PlayerPBUsed {
#[pso_message(0x4A)]
pub struct PlayerBlockedDamage {
data: [u8; 4],
}
#[pso_message(0x4B)]
pub struct PlayerReceivedDamage {
data: [u8; 12],
unknown1: u16,
hp: u16,
unknown2: u32,
}
#[pso_message(0x4C)]
pub struct PlayerReceivedDamage2 {
data: [u8; 12],
unknown1: u16,
hp: u16,
unknown2: u32,
}
#[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(0x50)]
pub struct PlayerActivatedSwitch2 {
data: u16,
}
#[pso_message(0x52)]
pub struct TalkToNpc {
@ -394,15 +416,27 @@ pub struct PickupItem {
item_id: u32,
}
#[pso_message(0x5A)]
pub struct PickupItem2 {
item_id: u32,
area: u8,
unknown1: u32,
}
//#[pso_message(0x5D)]
//pub struct SplittingStack {
//}
//#[pso_message(0x5F)]
//pub struct BoxDrops {
//}
#[pso_message(0x5F)]
pub struct BoxDrops {
area: u8,
variety: u8,
id: u16,
x: f32,
y: f32,
}
#[pso_message(0x60)]
pub struct RequestItem {
@ -427,26 +461,36 @@ pub struct FloorItemLimitItemDeletion {
unknown1: u32,
}
//#[pso_message(0x66)]
//pub struct PlayerUsedStarAtomizer {
#[pso_message(0x66)]
pub struct PlayerUsedStarAtomizer {
//}
}
#[pso_message(0x67)]
pub struct SpawningMonsters {
data: [u8; 12],
}
//#[pso_message(0x68)]
//pub struct PlayerTelepipe {
#[pso_message(0x68)]
pub struct PlayerTelepipe {
//}
}
#[pso_message(0x69)]
pub struct NpcSpawn {
data: [u8; 8],
}
//#[pso_message(0x6F)]
//pub struct PlayerJoiningGame {
//}
//#[pso_message(0x71)]
//pub struct PlayerJoiningGame2 {
//}
#[pso_message(0x74)]
pub struct WordSelect {
data: [u8; 28],
@ -523,12 +567,12 @@ pub struct PlayerKilledByMonster {
//}
//#[pso_message(0x94)]
//pub struct PlayerWarped2 {
#[pso_message(0x94)]
pub struct PlayerWarped2 {
//}
}
//#[pso_message(0x94)]
//#[pso_message(0x97)]
//pub struct CmodeTryAgain {
//}
@ -556,6 +600,11 @@ pub struct ModifyPlayerStats {
//}
//#[pso_message(0xA2)]
//pub struct BoxDropRequest {
//}
//#[pso_message(0xA3)]
//pub struct BossInteractionOlgaFlow {
@ -571,6 +620,11 @@ pub struct ModifyPlayerStats {
//}
//#[pso_message(0xA6)]
//pub struct TradeRequest {
//}
//#[pso_message(0xA8)]
//pub struct BossInteractionGolDragon {
@ -613,11 +667,51 @@ pub struct PhotonChairMove {
unknown1: u32,
}
//#[pso_message(0xB5)]
//pub struct ShopRequest {
//}
//#[pso_message(0xB7)]
//pub struct BuyItem {
//}
//#[pso_message(0xB8)]
//pub struct TechItem {
//}
//#[pso_message(0xBA)]
//pub struct TechWeaponAccept {
//}
//#[pso_message(0xBB)]
//pub struct BankRequest {
//}
//#[pso_message(0xBD)]
//pub struct BankInteraction {
//}
//#[pso_message(0xC0)]
//pub struct PlayerSoldItem {
//}
//#[pso_message(0xC1)]
//pub struct TeamInvite {
//}
//#[pso_message(0xC2)]
//pub struct AcceptTeamInvite {
//}
#[pso_message(0xC3)]
pub struct DropCoordinates {
drop_area: u32,
@ -631,10 +725,10 @@ pub struct DropCoordinates {
//}
//#[pso_message(0xC5)]
//pub struct PlayerUsedMedicalCenter {
#[pso_message(0xC5)]
pub struct PlayerUsedMedicalCenter {
//}
}
//#[pso_message(0xC6)]
//pub struct ExperienceSteal {
@ -654,6 +748,16 @@ pub struct RequestExp {
last_hitter: u32,
}
//#[pso_message(0xC9)]
//pub struct QuestRewardMeseta {
//}
//#[pso_message(0xCA)]
//pub struct QuestRewardItem {
//}
//#[pso_message(0xCB)]
//pub struct TransferItemRequest {
@ -664,11 +768,31 @@ pub struct RequestExp {
//}
//#[pso_message(0xCD)]
//pub struct MasterTransfer {
//}
//#[pso_message(0xCE)]
//pub struct AcceptMasterTransfer {
//}
//#[pso_message(0xCF)]
//pub struct RestartBattle {
//}
//#[pso_message(0xD0)]
//pub struct BmodeLevelUp {
//}
//#[pso_message(0xD1)]
//pub struct CmodeGrave {
//}
//#[pso_message(0xD2)]
//pub struct WriteQuestFlag {
@ -679,6 +803,11 @@ pub struct RequestExp {
//}
//#[pso_message(0xD6)]
//pub struct WrapItem {
//}
//#[pso_message(0xD7)]
//pub struct PaganiniPDExchange {
@ -709,14 +838,29 @@ pub struct RequestExp {
//}
//#[pso_message(0xDF)]
//pub struct BPDPhotonCrystalExchange {
//}
//#[pso_message(0xE0)]
//pub struct BPDRewards {
//}
//#[pso_message(0xE1)]
//pub struct GallonsPlanQuest {
//}
//#[pso_message(0xE2)]
//pub struct Coren {
//}
#[derive(Debug, Clone, PartialEq)]
pub enum GameMessage {
//PlayerActivatedSwitch(PlayerActivatedSwitch),
PlayerActivatedSwitch(PlayerActivatedSwitch),
GuildcardSend(GuildcardSend),
GuildcardRecv(GuildcardRecv),
//SymbolChat(SymbolChat),
@ -737,9 +881,9 @@ pub enum GameMessage {
PlayerChangedMap(PlayerChangedMap),
PlayerChangedMap2(PlayerChangedMap2),
TellOtherPlayerMyLocation(TellOtherPlayerMyLocation),
//PlayerWarpingToFloor(PlayerWarpingToFloor),
//PlayerWarping(PlayerWarping),
//PlayerDoneChangingMap(PlayerDoneChangingMap),
PlayerWarpingToFloor(PlayerWarpingToFloor),
PlayerWarping(PlayerWarping),
PlayerDoneChangingMap(PlayerDoneChangingMap),
PlayerTeleported(PlayerTeleported),
PlayerEquipItem(PlayerEquipItem),
PlayerUnequipItem(PlayerUnequipItem),
@ -748,17 +892,17 @@ pub enum GameMessage {
PlayerDropItem(PlayerDropItem),
PlayerDropItem2(PlayerDropItem2),
AddItemToInventory(AddItemToInventory),
//InitializeSpeechNpc(InitializeSpeechNpc),
//FinishSpeechNpc(FinishSpeechNpc),
//FinishSpeechNpcBPD(FinishSpeechNpcBPD),
//PlayerLevelUp(PlayerLevelUp),
InitializeSpeechNpc(InitializeSpeechNpc),
FinishSpeechNpc(FinishSpeechNpc),
FinishSpeechNpcBPD(FinishSpeechNpcBPD),
PlayerLevelUp(PlayerLevelUp),
PlayerResurrected(PlayerResurrected),
PlayerResurrectedMedicalCenter(PlayerResurrectedMedicalCenter),
PlayerUsedMoonAtomizer(PlayerUsedMoonAtomizer),
PlayerPBDonation(PlayerPBDonation),
PlayerInitiatedPB(PlayerInitiatedPB),
//PlayerLeftArea(PlayerLeftArea),
//PlayerSpawnedIntoArea(PlayerSpawnedIntoArea),
PlayerLeftArea(PlayerLeftArea),
PlayerSpawnedIntoArea(PlayerSpawnedIntoArea),
PlayerStopped(PlayerStopped),
PlayerLoadedIn(PlayerLoadedIn),
PlayerWalking(PlayerWalking),
@ -776,21 +920,24 @@ pub enum GameMessage {
PlayerDeath(PlayerDeath),
PlayerPostDeathAnimation(PlayerPostDeathAnimation),
PlayerScapedollResurrection(PlayerScapedollResurrection),
//PlayerActivatedSwitch2(PlayerActivatedSwitch2),
PlayerActivatedSwitch2(PlayerActivatedSwitch2),
TalkToNpc(TalkToNpc),
//Unknown53(Unknown53),
PlayerWarped(PlayerWarped),
LobbyEmote(LobbyEmote),
PickupItem(PickupItem),
PickupItem2(PickupItem2),
//SplittingStack(SplittingStack),
//BoxDrops(BoxDrops),
BoxDrops(BoxDrops),
RequestItem(RequestItem),
PlayerPBParticle(PlayerPBParticle),
FloorItemLimitItemDeletion(FloorItemLimitItemDeletion),
//PlayerUsedStarAtomizer(PlayerUsedStarAtomizer),
PlayerUsedStarAtomizer(PlayerUsedStarAtomizer),
SpawningMonsters(SpawningMonsters),
//PlayerTelepipe(PlayerTelepipe),
PlayerTelepipe(PlayerTelepipe),
NpcSpawn(NpcSpawn),
//PlayerJoiningGame(PlayerJoiningGame),
//PlayerJoiningGame2(PlayerJoiningGame2),
WordSelect(WordSelect),
PlayerChangedFloor(PlayerChangedFloor),
KillMonster(KillMonster),
@ -806,15 +953,17 @@ pub enum GameMessage {
PlayerKilledByMonster(PlayerKilledByMonster),
//CmodeStatistics(CmodeStatistics),
//PlayerTechStart(PlayerTechStart),
//PlayerWarped2(PlayerWarped2),
PlayerWarped2(PlayerWarped2),
//CmodeTryAgain(CmodeTryAgain),
ModifyPlayerStats(ModifyPlayerStats),
//CmodePartyWipe(CmodePartyWipe),
//BossInteractionGalGryphon(BossInteractionGalGryphon),
//PlayerMoonAtomizerResurrection(PlayerMoonAtomizerResurrection),
//BoxDropRequest(BoxDropRequest),
//BossInteractionOlgaFlow(BossInteractionOlgaFlow),
//BossInteractionOlgaFlow2(BossInteractionOlgaFlow2),
//BossInteractionOlgaFlow3(BossInteractionOlgaFlow3),
//TradeRequest(TradeRequest),
//BossInteractionGolDragon(BossInteractionGolDragon),
//BossInteractionBarbaRay(BossInteractionBarbaRay),
//BossInteractionBarbaRay2(BossInteractionBarbaRay2),
@ -823,25 +972,43 @@ pub enum GameMessage {
UnknownAE(UnknownAE),
PhotonChairTurn(PhotonChairTurn),
PhotonChairMove(PhotonChairMove),
//ShopRequest(ShopRequest),
//BuyItem(BuyItem),
//TechItem(TechItem),
//TechWeaponAccept(TechWeaponAccept),
//BankRequest(BankRequest),
//BankInteraction(BankInteraction),
//PlayerSoldItem(PlayerSoldItem),
//TeamInvite(TeamInvite),
//AcceptTeamInvite(AcceptTeamInvite),
DropCoordinates(DropCoordinates),
//SortItems(SortItems),
//PlayerUsedMedicalCenter(PlayerUsedMedicalCenter),
PlayerUsedMedicalCenter(PlayerUsedMedicalCenter),
//ExperienceSteal(ExperienceSteal),
//ChargeAttack(ChargeAttack),
RequestExp(RequestExp),
//QuestRewardMeseta(QuestRewardMeseta),
//QuestRewardItem(QuestRewardItem),
//TransferItemRequest(TransferItemRequest),
//ExchangeItemForTeampoints(ExchangeItemForTeampoints),
//MasterTransfer(MasterTransfer),
//AcceptMasterTransfer(AcceptMasterTransfer),
//RestartBattle(RestartBattle),
//BmodeLevelUp(BmodeLevelUp),
//CmodeGrave(CmodeGrave),
//WriteQuestFlag(WriteQuestFlag),
//QuestItemExchange(QuestItemExchange),
//WrapItem(WrapItem),
//PaganiniPDExchange(PaganiniPDExchange),
//SrankSpecialModification(SrankSpecialModification),
//MomokaItemShop(MomokaItemShop),
//WeaponAttributeEnhancement(WeaponAttributeEnhancement),
//BossInteractionSaintMillion(BossInteractionSaintMillion),
//GoodLuckQuest(GoodLuckQuest),
//BPDPhotonCrystalExchange(BPDPhotonCrystalExchange),
//BPDRewards(BPDRewards),
//GallonsPlanQuest(GallonsPlanQuest),
//Coren(Coren),
}
impl PSOPacketData for GameMessage {
@ -852,7 +1019,7 @@ impl PSOPacketData for GameMessage {
cur.read(&mut len);
cur.seek(SeekFrom::Current(-2)); // Cursor doesn't implement Peek?
match byte[0] {
//PlayerActivatedSwitch::CMD => Ok(GameMessage::PlayerActivatedSwitch(PlayerActivatedSwitch::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)?)),
@ -873,9 +1040,9 @@ impl PSOPacketData for GameMessage {
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)?)),
TellOtherPlayerMyLocation::CMD => Ok(GameMessage::TellOtherPlayerMyLocation(TellOtherPlayerMyLocation::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)?)),
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)?)),
@ -884,17 +1051,17 @@ impl PSOPacketData for GameMessage {
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)?)),
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)?)),
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)?)),
@ -912,21 +1079,24 @@ impl PSOPacketData for GameMessage {
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)?)),
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)?)),
PickupItem2::CMD => Ok(GameMessage::PickupItem2(PickupItem2::from_bytes(&mut cur)?)),
//SplittingStack::CMD => Ok(GameMessage::SplittingStack(SplittingStack::from_bytes(&mut cur)?)),
//BoxDrops::CMD => Ok(GameMessage::BoxDrops(BoxDrops::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)?)),
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)?)),
PlayerTelepipe::CMD => Ok(GameMessage::PlayerTelepipe(PlayerTelepipe::from_bytes(&mut cur)?)),
NpcSpawn::CMD => Ok(GameMessage::NpcSpawn(NpcSpawn::from_bytes(&mut cur)?)),
//PlayerJoiningGame::CMD => Ok(GameMessage::PlayerJoiningGame(PlayerJoiningGame::from_bytes(&mut cur)?)),
//PlayerJoiningGame2::CMD => Ok(GameMessage::PlayerJoiningGame2(PlayerJoiningGame2::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)?)),
@ -942,15 +1112,17 @@ impl PSOPacketData for GameMessage {
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)?)),
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)?)),
//BoxDropRequest::CMD => Ok(GameMessage::BoxDropRequest(BoxDropRequest::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)?)),
//TradeRequest::CMD => Ok(GameMessage::TradeRequest(TradeRequest::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)?)),
@ -959,25 +1131,43 @@ impl PSOPacketData for GameMessage {
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)?)),
//ShopRequest::CMD => Ok(GameMessage::ShopRequest(ShopRequest::from_bytes(&mut cur)?)),
//BuyItem::CMD => Ok(GameMessage::BuyItem(BuyItem::from_bytes(&mut cur)?)),
//TechItem::CMD => Ok(GameMessage::TechItem(TechItem::from_bytes(&mut cur)?)),
//TechWeaponAccept::CMD => Ok(GameMessage::TechWeaponAccept(TechWeaponAccept::from_bytes(&mut cur)?)),
//BankRequest::CMD => Ok(GameMessage::BankRequest(BankRequest::from_bytes(&mut cur)?)),
//BankInteraction::CMD => Ok(GameMessage::BankInteraction(BankInteraction::from_bytes(&mut cur)?)),
//PlayerSoldItem::CMD => Ok(GameMessage::PlayerSoldItem(PlayerSoldItem::from_bytes(&mut cur)?)),
//TeamInvite::CMD => Ok(GameMessage::TeamInvite(TeamInvite::from_bytes(&mut cur)?)),
//AcceptTeamInvite::CMD => Ok(GameMessage::AcceptTeamInvite(AcceptTeamInvite::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)?)),
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)?)),
//QuestRewardMeseta::CMD => Ok(GameMessage::QuestRewardMeseta(QuestRewardMeseta::from_bytes(&mut cur)?)),
//QuestRewardItem::CMD => Ok(GameMessage::QuestRewardItem(QuestRewardItem::from_bytes(&mut cur)?)),
//TransferItemRequest::CMD => Ok(GameMessage::TransferItemRequest(TransferItemRequest::from_bytes(&mut cur)?)),
//ExchangeItemForTeampoints::CMD => Ok(GameMessage::ExchangeItemForTeampoints(ExchangeItemForTeampoints::from_bytes(&mut cur)?)),
//MasterTransfer::CMD => Ok(GameMessage::MasterTransfer(MasterTransfer::from_bytes(&mut cur)?)),
//AcceptMasterTransfer::CMD => Ok(GameMessage::AcceptMasterTransfer(AcceptMasterTransfer::from_bytes(&mut cur)?)),
//RestartBattle::CMD => Ok(GameMessage::RestartBattle(RestartBattle::from_bytes(&mut cur)?)),
//BmodeLevelUp::CMD => Ok(GameMessage::BmodeLevelUp(BmodeLevelUp::from_bytes(&mut cur)?)),
//CmodeGrave::CMD => Ok(GameMessage::CmodeGrave(CmodeGrave::from_bytes(&mut cur)?)),
//WriteQuestFlag::CMD => Ok(GameMessage::WriteQuestFlag(WriteQuestFlag::from_bytes(&mut cur)?)),
//QuestItemExchange::CMD => Ok(GameMessage::QuestItemExchange(QuestItemExchange::from_bytes(&mut cur)?)),
//WrapItem::CMD => Ok(GameMessage::WrapItem(WrapItem::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)?)),
//BPDPhotonCrystalExchange::CMD => Ok(GameMessage::BPDPhotonCrystalExchange(BPDPhotonCrystalExchange::from_bytes(&mut cur)?)),
//BPDRewards::CMD => Ok(GameMessage::BPDRewards(BPDRewards::from_bytes(&mut cur)?)),
//GallonsPlanQuest::CMD => Ok(GameMessage::GallonsPlanQuest(GallonsPlanQuest::from_bytes(&mut cur)?)),
//Coren::CMD => Ok(GameMessage::Coren(Coren::from_bytes(&mut cur)?)),
_ => Err(PacketParseError::UnknownMessage(byte[0],
{
let mut b = vec![0; len[0] as usize * 4];
@ -990,7 +1180,7 @@ impl PSOPacketData for GameMessage {
fn as_bytes(&self) -> Vec<u8> {
match self {
//GameMessage::PlayerActivatedSwitch(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(),
@ -1011,9 +1201,9 @@ impl PSOPacketData for GameMessage {
GameMessage::PlayerChangedMap(data) => data.as_bytes(),
GameMessage::PlayerChangedMap2(data) => data.as_bytes(),
GameMessage::TellOtherPlayerMyLocation(data) => data.as_bytes(),
//GameMessage::PlayerWarpingToFloor(data) => data.as_bytes(),
//GameMessage::PlayerWarping(data) => data.as_bytes(),
//GameMessage::PlayerDoneChangingMap(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(),
@ -1022,17 +1212,17 @@ impl PSOPacketData for GameMessage {
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::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::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(),
@ -1050,21 +1240,24 @@ impl PSOPacketData for GameMessage {
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::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::PickupItem2(data) => data.as_bytes(),
//GameMessage::SplittingStack(data) => data.as_bytes(),
//GameMessage::BoxDrops(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::PlayerUsedStarAtomizer(data) => data.as_bytes(),
GameMessage::SpawningMonsters(data) => data.as_bytes(),
//GameMessage::PlayerTelepipe(data) => data.as_bytes(),
GameMessage::PlayerTelepipe(data) => data.as_bytes(),
GameMessage::NpcSpawn(data) => data.as_bytes(),
//GameMessage::PlayerJoiningGame(data) => data.as_bytes(),
//GameMessage::PlayerJoiningGame2(data) => data.as_bytes(),
GameMessage::WordSelect(data) => data.as_bytes(),
GameMessage::PlayerChangedFloor(data) => data.as_bytes(),
GameMessage::KillMonster(data) => data.as_bytes(),
@ -1080,15 +1273,17 @@ impl PSOPacketData for GameMessage {
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::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::BoxDropRequest(data) => data.as_bytes(),
//GameMessage::BossInteractionOlgaFlow(data) => data.as_bytes(),
//GameMessage::BossInteractionOlgaFlow2(data) => data.as_bytes(),
//GameMessage::BossInteractionOlgaFlow3(data) => data.as_bytes(),
//GameMessage::TradeRequest(data) => data.as_bytes(),
//GameMessage::BossInteractionGolDragon(data) => data.as_bytes(),
//GameMessage::BossInteractionBarbaRay(data) => data.as_bytes(),
//GameMessage::BossInteractionBarbaRay2(data) => data.as_bytes(),
@ -1097,25 +1292,43 @@ impl PSOPacketData for GameMessage {
GameMessage::UnknownAE(data) => data.as_bytes(),
GameMessage::PhotonChairTurn(data) => data.as_bytes(),
GameMessage::PhotonChairMove(data) => data.as_bytes(),
//GameMessage::ShopRequest(data) => data.as_bytes(),
//GameMessage::BuyItem(data) => data.as_bytes(),
//GameMessage::TechItem(data) => data.as_bytes(),
//GameMessage::TechWeaponAccept(data) => data.as_bytes(),
//GameMessage::BankRequest(data) => data.as_bytes(),
//GameMessage::BankInteraction(data) => data.as_bytes(),
//GameMessage::PlayerSoldItem(data) => data.as_bytes(),
//GameMessage::TeamInvite(data) => data.as_bytes(),
//GameMessage::AcceptTeamInvite(data) => data.as_bytes(),
GameMessage::DropCoordinates(data) => data.as_bytes(),
//GameMessage::SortItems(data) => data.as_bytes(),
//GameMessage::PlayerUsedMedicalCenter(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::QuestRewardMeseta(data) => data.as_bytes(),
//GameMessage::QuestRewardItem(data) => data.as_bytes(),
//GameMessage::TransferItemRequest(data) => data.as_bytes(),
//GameMessage::ExchangeItemForTeampoints(data) => data.as_bytes(),
//GameMessage::MasterTransfer(data) => data.as_bytes(),
//GameMessage::AcceptMasterTransfer(data) => data.as_bytes(),
//GameMessage::RestartBattle(data) => data.as_bytes(),
//GameMessage::BmodeLevelUp(data) => data.as_bytes(),
//GameMessage::CmodeGrave(data) => data.as_bytes(),
//GameMessage::WriteQuestFlag(data) => data.as_bytes(),
//GameMessage::QuestItemExchange(data) => data.as_bytes(),
//GameMessage::WrapItem(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::BPDPhotonCrystalExchange(data) => data.as_bytes(),
//GameMessage::BPDRewards(data) => data.as_bytes(),
//GameMessage::GallonsPlanQuest(data) => data.as_bytes(),
//GameMessage::Coren(data) => data.as_bytes(),
}
}
}
Loading…
Cancel
Save