mirror of
https://github.com/redstrate/Kawari.git
synced 2025-07-09 23:47:46 +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",
|
"name": "QuestCompleteList",
|
||||||
"opcode": 637,
|
"opcode": 637,
|
||||||
"size": 760
|
"size": 760
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "UnkResponse2",
|
||||||
|
"opcode": 772,
|
||||||
|
"size": 8
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ClientZoneIpcType": [
|
"ClientZoneIpcType": [
|
||||||
|
@ -376,6 +381,11 @@
|
||||||
"name": "GilShopTransaction",
|
"name": "GilShopTransaction",
|
||||||
"opcode": 327,
|
"opcode": 327,
|
||||||
"size": 24
|
"size": 24
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "UnkCall2",
|
||||||
|
"opcode": 632,
|
||||||
|
"size": 8
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ServerLobbyIpcType": [
|
"ServerLobbyIpcType": [
|
||||||
|
|
|
@ -935,6 +935,25 @@ async fn client_loop(
|
||||||
})
|
})
|
||||||
.await;
|
.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 { .. } => {
|
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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -341,6 +341,12 @@ pub enum ServerZoneIpcData {
|
||||||
#[bw(pad_size_to = 760)]
|
#[bw(pad_size_to = 760)]
|
||||||
unk1: Vec<u8>,
|
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 {
|
Unknown {
|
||||||
#[br(count = size - 32)]
|
#[br(count = size - 32)]
|
||||||
unk: Vec<u8>,
|
unk: Vec<u8>,
|
||||||
|
@ -504,6 +510,9 @@ pub enum ClientZoneIpcData {
|
||||||
#[brw(pad_after = 8)]
|
#[brw(pad_after = 8)]
|
||||||
unk3: u8,
|
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 {
|
Unknown {
|
||||||
#[br(count = size - 32)]
|
#[br(count = size - 32)]
|
||||||
unk: Vec<u8>,
|
unk: Vec<u8>,
|
||||||
|
|
Loading…
Add table
Reference in a new issue