537 only tells the client's ui to start searching, the handshake after it was missing: server sends 24106 StopHomeLogic, client answers 14105, server sends 21903. that last step now builds the same snapshot the npc mission does, using npcs row 0 as the opponent. battle type stays 1 so it runs on the client's offline path. a real pvp battle is type 0 and needs the udp sector channel, which does not exist here. 14107 CancelMatchmake now answers 24125 instead of being ignored.
18 lines
712 B
Rust
18 lines
712 B
Rust
use titan::Message;
|
|
use crate::commands::LogicCommand;
|
|
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Message)]
|
|
#[message(id = 24106, direction = "server", name = "StopHomeLogicMessage")]
|
|
pub struct StopHomeLogicMessage {}
|
|
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Message)]
|
|
#[message(id = 24125, direction = "server", name = "CancelMatchmakeDoneMessage")]
|
|
pub struct CancelMatchmakeDoneMessage {}
|
|
#[derive(Debug, Default, Message)]
|
|
#[message(id = 14105, direction = "client", name = "HomeLogicStoppedMessage")]
|
|
#[codec(partial)]
|
|
pub struct HomeLogicStoppedMessage {
|
|
#[codec(vint)]
|
|
pub tick: i32,
|
|
#[codec(vint)]
|
|
pub checksum: i32,
|
|
pub commands: Vec<Box<dyn LogicCommand>>,
|
|
}
|