mirror of
https://github.com/redstrate/Kawari.git
synced 2025-07-09 15:37:45 +00:00
Implement necessary packets for the Unending Journey event
This doesn't make cutscenes play *yet*, but stops the client from getting stuck waiting for a cutscene to begin. Now the event script continues, and ends the event.
This commit is contained in:
parent
de2d32266d
commit
cd55653077
3 changed files with 38 additions and 0 deletions
|
@ -234,6 +234,11 @@
|
|||
"name": "QuestCompleteList",
|
||||
"opcode": 637,
|
||||
"size": 760
|
||||
},
|
||||
{
|
||||
"name": "UnkResponse2",
|
||||
"opcode": 772,
|
||||
"size": 8
|
||||
}
|
||||
],
|
||||
"ClientZoneIpcType": [
|
||||
|
@ -376,6 +381,11 @@
|
|||
"name": "GilShopTransaction",
|
||||
"opcode": 327,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"name": "UnkCall2",
|
||||
"opcode": 632,
|
||||
"size": 8
|
||||
}
|
||||
],
|
||||
"ServerLobbyIpcType": [
|
||||
|
|
|
@ -935,6 +935,25 @@ async fn client_loop(
|
|||
})
|
||||
.await;
|
||||
}
|
||||
ClientZoneIpcData::UnkCall2 { .. } => {
|
||||
let ipc = ServerZoneIpcSegment {
|
||||
op_code: ServerZoneIpcType::UnkResponse2,
|
||||
timestamp: timestamp_secs(),
|
||||
data: ServerZoneIpcData::UnkResponse2 {
|
||||
unk1: 1,
|
||||
},
|
||||
..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 { .. } => {
|
||||
tracing::warn!("Unknown packet {:?} recieved, this should be handled!", data.op_code);
|
||||
}
|
||||
|
|
|
@ -341,6 +341,12 @@ pub enum ServerZoneIpcData {
|
|||
#[bw(pad_size_to = 760)]
|
||||
unk1: Vec<u8>,
|
||||
},
|
||||
/// Unsure the true purpose of this, but it's needed for the Unending Journey to function.
|
||||
#[br(pre_assert(*magic == ServerZoneIpcType::UnkResponse2))]
|
||||
UnkResponse2 {
|
||||
#[brw(pad_after = 7)]
|
||||
unk1: u8,
|
||||
},
|
||||
Unknown {
|
||||
#[br(count = size - 32)]
|
||||
unk: Vec<u8>,
|
||||
|
@ -504,6 +510,9 @@ pub enum ClientZoneIpcData {
|
|||
#[brw(pad_after = 8)]
|
||||
unk3: u8,
|
||||
},
|
||||
/// Unsure the true purpose of this, but it's needed for the Unending Journey to function.
|
||||
#[br(pre_assert(*magic == ClientZoneIpcType::UnkCall2))]
|
||||
UnkCall2 { unk1: [u8; 8] },
|
||||
Unknown {
|
||||
#[br(count = size - 32)]
|
||||
unk: Vec<u8>,
|
||||
|
|
Loading…
Add table
Reference in a new issue