feat: Support SceneEnterStageC and remove avatar red DOM

This commit is contained in:
amizing25
2026-03-01 01:14:45 +08:00
parent b34e7af824
commit c697c799d6
6 changed files with 31 additions and 11 deletions
+1 -1
View File
@@ -172,7 +172,7 @@ impl AvatarJson {
equipment_unique_id: lightcone.map(|v| v.get_unique_id()).unwrap_or_default(), equipment_unique_id: lightcone.map(|v| v.get_unique_id()).unwrap_or_default(),
first_met_time_stamp: 1712924677, first_met_time_stamp: 1712924677,
cur_multi_path_avatar_type, cur_multi_path_avatar_type,
has_taken_promotion_reward_list: Vec::with_capacity(0), has_taken_promotion_reward_list: vec![1, 3, 5],
is_marked: false, is_marked: false,
exp: 0, exp: 0,
} }
+10 -1
View File
@@ -40,7 +40,7 @@ pub async fn on_get_avatar_data_cs_req(
first_met_time_stamp: 1712924677, first_met_time_stamp: 1712924677,
cur_multi_path_avatar_type: 0, cur_multi_path_avatar_type: 0,
equipment_unique_id: 0, equipment_unique_id: 0,
has_taken_promotion_reward_list: Vec::with_capacity(0), has_taken_promotion_reward_list: vec![1, 3, 5],
is_marked: false, is_marked: false,
exp: 0, exp: 0,
}) })
@@ -64,6 +64,15 @@ pub async fn on_get_avatar_data_cs_req(
.collect(); .collect();
} }
pub async fn on_take_promotion_reward_cs_req(
_session: &mut PlayerSession,
_req: &TakePromotionRewardCsReq,
_res: &mut TakePromotionRewardScRsp,
) {
// retcode defaults to 0, reward_list defaults to empty
// All avatars already report has_taken_promotion_reward_list = [0..=6] in GetAvatarData
}
pub async fn on_set_avatar_enhanced_id_cs_req( pub async fn on_set_avatar_enhanced_id_cs_req(
_session: &mut PlayerSession, _session: &mut PlayerSession,
_req: &SetAvatarEnhancedIdCsReq, _req: &SetAvatarEnhancedIdCsReq,
+10
View File
@@ -35,6 +35,16 @@ pub async fn on_quick_start_cocoon_stage_cs_req(
res.battle_info = Some(battle_info); res.battle_info = Some(battle_info);
} }
pub async fn on_scene_enter_stage_cs_req(
session: &mut PlayerSession,
_req: &SceneEnterStageCsReq,
res: &mut SceneEnterStageScRsp,
) {
let battle_info = create_battle_info(session, 0, 0).await;
res.battle_info = Some(battle_info);
}
pub async fn on_pve_battle_result_cs_req( pub async fn on_pve_battle_result_cs_req(
_session: &mut PlayerSession, _session: &mut PlayerSession,
req: &PveBattleResultCsReq, req: &PveBattleResultCsReq,
+2 -1
View File
@@ -178,7 +178,7 @@ trait_handler! {
GetCurSceneInfo; GetCurSceneInfo;
PlayerHeartBeat; PlayerHeartBeat;
SetAvatarEnhancedId; SetAvatarEnhancedId;
TakePromotionReward;
// Entity move (dummy!) // Entity move (dummy!)
SceneEntityMove; SceneEntityMove;
@@ -209,6 +209,7 @@ trait_handler! {
PveBattleResult; PveBattleResult;
SceneCastSkill; SceneCastSkill;
QuickStartCocoonStage; QuickStartCocoonStage;
SceneEnterStage;
// Teleport // Teleport
GetEnteredScene; GetEnteredScene;
+3 -3
View File
@@ -34184,7 +34184,7 @@ enum CmdSceneType {
CmdGetSceneMapInfoCsReq = 1432; CmdGetSceneMapInfoCsReq = 1432;
CmdGetEnteredSceneScRsp = 1495; CmdGetEnteredSceneScRsp = 1495;
CmdGetUnlockTeleportScRsp = 1438; CmdGetUnlockTeleportScRsp = 1438;
CmdSceneStageBattleCsReq = 1431; CmdSceneEnterStageCsReq = 1431;
CmdInteractPropScRsp = 1404; CmdInteractPropScRsp = 1404;
CmdReturnLastTownScRsp = 1409; CmdReturnLastTownScRsp = 1409;
CmdSetCurInteractEntityScRsp = 1468; CmdSetCurInteractEntityScRsp = 1468;
@@ -34707,10 +34707,10 @@ message SceneCastSkillMpUpdateScNotify {
uint32 cast_entity_id = 8; // offset: 24 uint32 cast_entity_id = 8; // offset: 24
} }
// Obf: SceneStageBattleCsReq // Obf: SceneEnterStageCsReq
// Type: Req // Type: Req
// CmdID: 1431 // CmdID: 1431
message SceneStageBattleCsReq { message SceneEnterStageCsReq {
uint32 event_id = 6; // offset: 32 uint32 event_id = 6; // offset: 32
RebattleType rebattle_type = 7; // offset: 28 RebattleType rebattle_type = 7; // offset: 28
bool CLGOFDEDIAN = 1; // offset: 24 bool CLGOFDEDIAN = 1; // offset: 24
+5 -5
View File
@@ -52863,12 +52863,12 @@ pub struct SceneCastSkillMpUpdateScNotify {
#[prost(uint32, tag = "8")] #[prost(uint32, tag = "8")]
pub cast_entity_id: u32, pub cast_entity_id: u32,
} }
/// Obf: SceneStageBattleCsReq /// Obf: SceneEnterStageCsReq
/// Type: Req /// Type: Req
#[derive(proto_derive::CmdID)] #[derive(proto_derive::CmdID)]
#[cmdid(1431)] #[cmdid(1431)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SceneStageBattleCsReq { pub struct SceneEnterStageCsReq {
/// offset: 32 /// offset: 32
#[prost(uint32, tag = "6")] #[prost(uint32, tag = "6")]
pub event_id: u32, pub event_id: u32,
@@ -92764,7 +92764,7 @@ pub enum CmdSceneType {
CmdGetSceneMapInfoCsReq = 1432, CmdGetSceneMapInfoCsReq = 1432,
CmdGetEnteredSceneScRsp = 1495, CmdGetEnteredSceneScRsp = 1495,
CmdGetUnlockTeleportScRsp = 1438, CmdGetUnlockTeleportScRsp = 1438,
CmdSceneStageBattleCsReq = 1431, CmdSceneEnterStageCsReq = 1431,
CmdInteractPropScRsp = 1404, CmdInteractPropScRsp = 1404,
CmdReturnLastTownScRsp = 1409, CmdReturnLastTownScRsp = 1409,
CmdSetCurInteractEntityScRsp = 1468, CmdSetCurInteractEntityScRsp = 1468,
@@ -92862,7 +92862,7 @@ impl CmdSceneType {
Self::CmdGetSceneMapInfoCsReq => "CmdGetSceneMapInfoCsReq", Self::CmdGetSceneMapInfoCsReq => "CmdGetSceneMapInfoCsReq",
Self::CmdGetEnteredSceneScRsp => "CmdGetEnteredSceneScRsp", Self::CmdGetEnteredSceneScRsp => "CmdGetEnteredSceneScRsp",
Self::CmdGetUnlockTeleportScRsp => "CmdGetUnlockTeleportScRsp", Self::CmdGetUnlockTeleportScRsp => "CmdGetUnlockTeleportScRsp",
Self::CmdSceneStageBattleCsReq => "CmdSceneStageBattleCsReq", Self::CmdSceneEnterStageCsReq => "CmdSceneEnterStageCsReq",
Self::CmdInteractPropScRsp => "CmdInteractPropScRsp", Self::CmdInteractPropScRsp => "CmdInteractPropScRsp",
Self::CmdReturnLastTownScRsp => "CmdReturnLastTownScRsp", Self::CmdReturnLastTownScRsp => "CmdReturnLastTownScRsp",
Self::CmdSetCurInteractEntityScRsp => "CmdSetCurInteractEntityScRsp", Self::CmdSetCurInteractEntityScRsp => "CmdSetCurInteractEntityScRsp",
@@ -92971,7 +92971,7 @@ impl CmdSceneType {
"CmdGetSceneMapInfoCsReq" => Some(Self::CmdGetSceneMapInfoCsReq), "CmdGetSceneMapInfoCsReq" => Some(Self::CmdGetSceneMapInfoCsReq),
"CmdGetEnteredSceneScRsp" => Some(Self::CmdGetEnteredSceneScRsp), "CmdGetEnteredSceneScRsp" => Some(Self::CmdGetEnteredSceneScRsp),
"CmdGetUnlockTeleportScRsp" => Some(Self::CmdGetUnlockTeleportScRsp), "CmdGetUnlockTeleportScRsp" => Some(Self::CmdGetUnlockTeleportScRsp),
"CmdSceneStageBattleCsReq" => Some(Self::CmdSceneStageBattleCsReq), "CmdSceneEnterStageCsReq" => Some(Self::CmdSceneEnterStageCsReq),
"CmdInteractPropScRsp" => Some(Self::CmdInteractPropScRsp), "CmdInteractPropScRsp" => Some(Self::CmdInteractPropScRsp),
"CmdReturnLastTownScRsp" => Some(Self::CmdReturnLastTownScRsp), "CmdReturnLastTownScRsp" => Some(Self::CmdReturnLastTownScRsp),
"CmdSetCurInteractEntityScRsp" => Some(Self::CmdSetCurInteractEntityScRsp), "CmdSetCurInteractEntityScRsp" => Some(Self::CmdSetCurInteractEntityScRsp),