From 436e691245d846d16273509e599b66a3f537f54c Mon Sep 17 00:00:00 2001 From: YYHEggEgg <53960525+YYHEggEgg@users.noreply.github.com> Date: Tue, 6 Aug 2024 17:02:49 +0800 Subject: [PATCH] QuickMenu bugfix --- nap_gameserver/src/handlers/client_systems.rs | 6 ++--- nap_gameserver/src/logic/player/lock_model.rs | 23 +++++++++++-------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/nap_gameserver/src/handlers/client_systems.rs b/nap_gameserver/src/handlers/client_systems.rs index 8cdd318..2ccc34d 100644 --- a/nap_gameserver/src/handlers/client_systems.rs +++ b/nap_gameserver/src/handlers/client_systems.rs @@ -2,7 +2,7 @@ use crate::logic::{EOperator, ESystem}; use super::*; -use data::tables::{self, QuickAccessID}; +use data::tables::{self, QuickFuncID}; pub async fn on_get_tips_info( _session: &NetSession, @@ -205,13 +205,13 @@ pub async fn on_mod_quick_menu( quick_access_data_list.push( _player .lock_model - .mod_quick_access(data.quick_access_index, QuickAccessID::new(data.btn_id)), + .mod_quick_access(data.quick_access_index, QuickFuncID::new(data.btn_id)), ); } _session .notify(PlayerSyncScNotify { client_systems_sync: Some(ClientSystemsSync { - quick_access_data_list, + quick_access_data_list: _player.lock_model.quick_access_to_client(), ..Default::default() }), ..Default::default() diff --git a/nap_gameserver/src/logic/player/lock_model.rs b/nap_gameserver/src/logic/player/lock_model.rs index 9d0c011..7a735c3 100644 --- a/nap_gameserver/src/logic/player/lock_model.rs +++ b/nap_gameserver/src/logic/player/lock_model.rs @@ -1,12 +1,12 @@ use std::collections::{BTreeSet, HashMap}; -use data::tables::{quick_access_template_tb, QuickAccessID, UnlockConfigID}; +use data::tables::{quick_access_template_tb, QuickFuncID, UnlockConfigID}; use proto::{LockModelBin, QuickAccessData, QuickAccessType, UnlockData}; #[derive(Default)] pub struct LockModel { unlock_list: BTreeSet, - quick_access_list: HashMap, + quick_access_list: HashMap, } impl LockModel { @@ -20,7 +20,7 @@ impl LockModel { quick_access_list: bin .quick_access_list .into_iter() - .map(|(k, v)| (k, QuickAccessID::new_unchecked(v))) + .map(|(k, v)| (k, QuickFuncID::new_unchecked(v))) .collect(), } } @@ -35,14 +35,13 @@ impl LockModel { .collect(), quick_access_list: self .quick_access_list - .clone() - .into_iter() - .map(|(k, v)| (k, v.value())) + .iter() + .map(|(k, v)| (k.clone(), v.value())) .collect(), } } - pub fn to_client(&self) -> UnlockData { + pub fn quick_access_to_client(&self) -> Vec { let mut quick_access_data_list: Vec = vec![]; for quick_access in quick_access_template_tb::iter() { quick_access_data_list.push(QuickAccessData { @@ -51,7 +50,7 @@ impl LockModel { btn_id: quick_access.quick_func_id.value(), }); } - for quick_access_index in 1..7 { + for quick_access_index in 1..8 { let mut btn_id = 0; if let Some(id) = self.quick_access_list.get(&quick_access_index) { btn_id = id.value(); @@ -62,6 +61,10 @@ impl LockModel { btn_id, }); } + quick_access_data_list + } + + pub fn to_client(&self) -> UnlockData { UnlockData { unlock_id_list: self @@ -70,7 +73,7 @@ impl LockModel { .into_iter() .map(|i| i.value()) .collect(), - quick_access_data_list, + quick_access_data_list: self.quick_access_to_client(), ..Default::default() } } @@ -83,7 +86,7 @@ impl LockModel { self.unlock_list.contains(&id) } - pub fn mod_quick_access(&mut self, index: u32, id: Option) -> QuickAccessData { + pub fn mod_quick_access(&mut self, index: u32, id: Option) -> QuickAccessData { let btn_id = match id { Some(quick_access_id) => { if self.quick_access_list.contains_key(&index) {