CNBeta 1.7.0 support

This commit is contained in:
traffic95 2025-03-11 18:20:56 +01:00
parent e512efe106
commit 7412dcec2d
20 changed files with 33310 additions and 33110 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -41,7 +41,7 @@ Start each service in order from option `a)`.
Most of the configuration (database, encryption keys) is stored in a shared environment configuration file (`environment.toml`). Some of server-specific options are stored in their respective configuration files (which are created upon first startup of each server). Most of the configuration (database, encryption keys) is stored in a shared environment configuration file (`environment.toml`). Some of server-specific options are stored in their respective configuration files (which are created upon first startup of each server).
### Logging in ### Logging in
To login to this server, you have to obtain a compatible game client. Currently supported one is `OSPRODWin1.6.0`, you can get it from game launcher. Next, you have to apply the necessary [client patch](https://git.xeondev.com/ObolSquad/trigger-patch). It allows you to connect to the local server and replaces encryption keys with custom ones. To login to this server, you have to obtain a compatible game client. Currently supported one is `CNBetaWin1.7.0`, you can get it from uploads found on [Our Discord Server](https://discord.gg/reversedrooms). Next, you have to apply the necessary [client patch](https://git.xeondev.com/ObolSquad/trigger-patch). It allows you to connect to the local server and replaces encryption keys with custom ones.
### Management ### Management
You can use the [trigger-muip-tool](https://git.xeondev.com/ObolSquad/trigger-muip-tool) to communicate with MUIP server and execute GM commands. You can use the [trigger-muip-tool](https://git.xeondev.com/ObolSquad/trigger-muip-tool) to communicate with MUIP server and execute GM commands.

View file

@ -13,7 +13,7 @@ area = 2
[bound_server] [bound_server]
name = "trigger_rs" name = "trigger_rs"
title = "Trigger-RS" title = "Trigger-RS"
seed = "70fed6d1bdf76412" seed = "789bd844f8c04bc3"
addr = "127.0.0.1" addr = "127.0.0.1"
port = 20501 port = 20501
is_kcp = false is_kcp = false

View file

@ -139,21 +139,21 @@ fn internal_process(
cdn_conf_ext: Some(CdnConfExt { cdn_conf_ext: Some(CdnConfExt {
// TODO: unhardcode this // TODO: unhardcode this
design_data: CdnDesignData { design_data: CdnDesignData {
base_url: Borrowed("https://autopatchos.zenlesszonezero.com/design_data/1.6_live/output_6898738_6ffe812558/client/"), base_url: Borrowed("https://autopatchcn.juequling.com/design_data/beta_live/output_7054632_323d17319c/client/"),
data_revision: Borrowed("6898738"), data_revision: Borrowed("7054632"),
md5_files: Borrowed(r#"[{"fileName": "data_version", "fileSize": 2065, "fileMD5": "16970197844668905690"}]"#), md5_files: Borrowed(r#"[{"fileName": "data_version", "fileSize": 4503, "fileMD5": "419987357302147246"}]"#),
}, },
game_res: CdnGameRes { game_res: CdnGameRes {
audio_revision: Borrowed("6898738"), audio_revision: Borrowed("7025371"),
base_url: Borrowed("https://autopatchos.zenlesszonezero.com/game_res/1.6_live/output_6898738_6ffe812558/client/"), base_url: Borrowed("https://autopatchcn.juequling.com/game_res/beta_live/output_7054632_323d17319c/client/"),
branch: Borrowed("beta_live"), branch: Borrowed("beta_live"),
md5_files: Borrowed(r#"[{"fileName": "res_version", "fileSize": 1167660, "fileMD5": "8072678507435758384"}, {"fileName": "audio_version", "fileSize": 15447, "fileMD5": "5401804085122358755"}, {"fileName": "base_revision", "fileSize": 4, "fileMD5": "4524394692449115962"}]"#), md5_files: Borrowed(r#"[{"fileName": "res_version", "fileSize": 2379030, "fileMD5": "15840336186912297231"}, {"fileName": "audio_version", "fileSize": 30435, "fileMD5": "15675397132378459243"}, {"fileName": "base_revision", "fileSize": 18, "fileMD5": "18079377284431001248"}]"#),
res_revision: Borrowed("6898738"), res_revision: Borrowed("7054632"),
}, },
silence_data: CdnSilenceData { silence_data: CdnSilenceData {
base_url: Borrowed("https://autopatchos.zenlesszonezero.com/design_data/1.6_live/output_6898738_6ffe812558/client_silence/"), base_url: Borrowed("https://autopatchcn.juequling.com/design_data/beta_live/output_7054632_323d17319c/client_silence/"),
md5_files: Borrowed(r#"[{"fileName": "silence_version", "fileSize": 130, "fileMD5": "2077712550601860122"}]"#), md5_files: Borrowed(r#"[{"fileName": "silence_version", "fileSize": 647, "fileMD5": "15019531890587528788"}]"#),
silence_revision: Borrowed("6898738"), silence_revision: Borrowed("7042559"),
}, },
pre_download: None, pre_download: None,
}), }),

View file

@ -23,8 +23,6 @@ pub struct AvatarPropertyChanges {
} }
impl RoleModel { impl RoleModel {
const PIDORS: &[i32] = &[1331, 1291];
pub async fn init(context: NapContext) -> Self { pub async fn init(context: NapContext) -> Self {
let avatar_map = Self::load_or_create_avatar_map(&context).await; let avatar_map = Self::load_or_create_avatar_map(&context).await;
@ -332,7 +330,6 @@ impl RoleModel {
pub async fn unlock_avatars(&mut self, avatar_id_list: &[i32]) -> Vec<u32> { pub async fn unlock_avatars(&mut self, avatar_id_list: &[i32]) -> Vec<u32> {
let models = avatar_id_list let models = avatar_id_list
.iter() .iter()
.filter(|id| !Self::PIDORS.contains(*id))
.filter(|id| !self.is_avatar_unlocked(**id as u32)) .filter(|id| !self.is_avatar_unlocked(**id as u32))
.map(|id| { .map(|id| {
self.context self.context

View file

@ -179,6 +179,20 @@ mod client_systems_module {
} }
} }
pub async fn on_end_newbie(
_context: &mut MessageContext<'_, '_>,
_request: EndNewbieCsReq,
) -> EndNewbieScRsp {
EndNewbieScRsp { retcode: 0 }
}
pub async fn on_sync_global_variables(
_context: &mut MessageContext<'_, '_>,
_request: SyncGlobalVariablesCsReq,
) -> SyncGlobalVariablesScRsp {
SyncGlobalVariablesScRsp { retcode: 0 }
}
pub async fn on_get_trashbin_hermit_data( pub async fn on_get_trashbin_hermit_data(
_context: &mut MessageContext<'_, '_>, _context: &mut MessageContext<'_, '_>,
_request: GetTrashbinHermitDataCsReq, _request: GetTrashbinHermitDataCsReq,

View file

@ -0,0 +1,12 @@
use super::MessageContext;
use trigger_codegen::handlers;
#[handlers]
mod flower_shop_module {
pub async fn on_get_flower_shop_data(
_context: &mut MessageContext<'_, '_>,
_request: GetFlowerShopDataCsReq,
) -> GetFlowerShopDataScRsp {
GetFlowerShopDataScRsp { retcode: 0 }
}
}

View file

@ -40,7 +40,8 @@ modules! {
miniscape_entrust, miniscape_entrust,
fishing_contest, fishing_contest,
ridus_got_boo, ridus_got_boo,
qa_game qa_game,
flower_shop
} }
client_message_forwarding! { client_message_forwarding! {

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -22,7 +22,7 @@ include!("../out/_.rs");
include!("../out/protocol_map.rs"); include!("../out/protocol_map.rs");
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(8128)] #[cmdid(5636)]
#[derive(trigger_protobuf_derive::XorFields, Clone, Copy, PartialEq, ::prost::Message)] #[derive(trigger_protobuf_derive::XorFields, Clone, Copy, PartialEq, ::prost::Message)]
pub struct FallbackRsp {} pub struct FallbackRsp {}

View file

@ -1222,6 +1222,30 @@ pub struct GetNewsStandDataScRsp {
pub news_stand_data: Option<NewsStandData>, pub news_stand_data: Option<NewsStandData>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1323)]
pub struct EndNewbieCsReq {
pub group_id: u32,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1324)]
pub struct EndNewbieScRsp {
pub retcode: i32,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1325)]
pub struct SyncGlobalVariablesCsReq {
pub global_variables: HashMap<u32, i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1326)]
pub struct SyncGlobalVariablesScRsp {
pub retcode: i32,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1340)] #[id(1340)]
pub struct GetTrashbinHermitDataCsReq {} pub struct GetTrashbinHermitDataCsReq {}
@ -1757,3 +1781,15 @@ pub struct GetQuestionsAnswerGameDataCsReq {}
pub struct GetQuestionsAnswerGameDataScRsp { pub struct GetQuestionsAnswerGameDataScRsp {
pub retcode: i32, pub retcode: i32,
} }
// FlowerShop
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(7150)]
pub struct GetFlowerShopDataCsReq {}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(7151)]
pub struct GetFlowerShopDataScRsp {
pub retcode: i32,
}

View file

@ -30,7 +30,7 @@ user = "root"
password = "root" password = "root"
[security] [security]
static_key = "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" static_key = "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"
[[security.rsa_versions]] [[security.rsa_versions]]
version = 3 version = 3