mirror of
https://github.com/redstrate/Kawari.git
synced 2025-07-13 17:07:45 +00:00
Begin figuring out various content finder thingies
This commit is contained in:
parent
fac241ce7b
commit
67d01513b1
3 changed files with 91 additions and 0 deletions
|
@ -249,6 +249,16 @@
|
||||||
"name": "InventoryTransactionFinish",
|
"name": "InventoryTransactionFinish",
|
||||||
"opcode": 854,
|
"opcode": 854,
|
||||||
"size": 16
|
"size": 16
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ContentFinderFound",
|
||||||
|
"opcode": 619,
|
||||||
|
"size": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ContentFinderFound2",
|
||||||
|
"opcode": 619,
|
||||||
|
"size": 812
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ClientZoneIpcType": [
|
"ClientZoneIpcType": [
|
||||||
|
@ -401,6 +411,11 @@
|
||||||
"name": "StandardControlsPivot",
|
"name": "StandardControlsPivot",
|
||||||
"opcode": 836,
|
"opcode": 836,
|
||||||
"size": 8
|
"size": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ContentFinderRegister",
|
||||||
|
"opcode": 991,
|
||||||
|
"size": 40
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ServerLobbyIpcType": [
|
"ServerLobbyIpcType": [
|
||||||
|
|
|
@ -1032,6 +1032,66 @@ async fn client_loop(
|
||||||
})
|
})
|
||||||
.await;
|
.await;
|
||||||
}
|
}
|
||||||
|
ClientZoneIpcData::ContentFinderRegister { .. } => {
|
||||||
|
let ipc = ServerZoneIpcSegment {
|
||||||
|
op_code: ServerZoneIpcType::ContentFinderFound,
|
||||||
|
timestamp: timestamp_secs(),
|
||||||
|
data: ServerZoneIpcData::ContentFinderFound {
|
||||||
|
state1: 2,
|
||||||
|
classjob_id: 1,
|
||||||
|
unk1: [
|
||||||
|
5,
|
||||||
|
2,
|
||||||
|
5,
|
||||||
|
2,
|
||||||
|
5,
|
||||||
|
2,
|
||||||
|
96,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
64,
|
||||||
|
2,
|
||||||
|
5,
|
||||||
|
2,
|
||||||
|
5,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
]
|
||||||
|
},
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
connection
|
||||||
|
.send_segment(PacketSegment {
|
||||||
|
source_actor: connection.player_data.actor_id,
|
||||||
|
target_actor: connection.player_data.actor_id,
|
||||||
|
segment_type: SegmentType::Ipc,
|
||||||
|
data: SegmentData::Ipc { data: ipc },
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
}
|
||||||
ClientZoneIpcData::Unknown { .. } => {
|
ClientZoneIpcData::Unknown { .. } => {
|
||||||
tracing::warn!("Unknown packet {:?} recieved, this should be handled!", data.op_code);
|
tracing::warn!("Unknown packet {:?} recieved, this should be handled!", data.op_code);
|
||||||
}
|
}
|
||||||
|
|
|
@ -422,6 +422,20 @@ pub enum ServerZoneIpcData {
|
||||||
/// Unknown, seems to always be 0x00000200.
|
/// Unknown, seems to always be 0x00000200.
|
||||||
unk4: u32,
|
unk4: u32,
|
||||||
},
|
},
|
||||||
|
#[br(pre_assert(*magic == ServerZoneIpcType::ContentFinderFound))]
|
||||||
|
ContentFinderFound {
|
||||||
|
/// 0 = Nothing happens
|
||||||
|
/// 1 = Reserving server
|
||||||
|
/// 2 = again? ^
|
||||||
|
/// 3 = duty ready
|
||||||
|
/// 4 = checking member status
|
||||||
|
/// nothing appears to happen above 5
|
||||||
|
state1: u8,
|
||||||
|
classjob_id: u8,
|
||||||
|
unk1: [u8; 38],
|
||||||
|
},
|
||||||
|
#[br(pre_assert(*magic == ServerZoneIpcType::ContentFinderFound2))]
|
||||||
|
ContentFinderFound2 { unk1: [u8; 8] },
|
||||||
Unknown {
|
Unknown {
|
||||||
#[br(count = size - 32)]
|
#[br(count = size - 32)]
|
||||||
unk: Vec<u8>,
|
unk: Vec<u8>,
|
||||||
|
@ -597,6 +611,8 @@ pub enum ClientZoneIpcData {
|
||||||
/// Unsure the true purpose of this, but it's needed for the Unending Journey to function.
|
/// Unsure the true purpose of this, but it's needed for the Unending Journey to function.
|
||||||
#[br(pre_assert(*magic == ClientZoneIpcType::UnkCall2))]
|
#[br(pre_assert(*magic == ClientZoneIpcType::UnkCall2))]
|
||||||
UnkCall2 { unk1: [u8; 8] },
|
UnkCall2 { unk1: [u8; 8] },
|
||||||
|
#[br(pre_assert(*magic == ClientZoneIpcType::ContentFinderRegister))]
|
||||||
|
ContentFinderRegister { unk1: [u8; 40] },
|
||||||
Unknown {
|
Unknown {
|
||||||
#[br(count = size - 32)]
|
#[br(count = size - 32)]
|
||||||
unk: Vec<u8>,
|
unk: Vec<u8>,
|
||||||
|
|
Loading…
Add table
Reference in a new issue