From 46ae86cacfa05d4f7c5e3ab01f513f8fc55b3275 Mon Sep 17 00:00:00 2001 From: amizing25 Date: Wed, 10 Apr 2024 00:49:17 +0700 Subject: [PATCH] set prop default state --- gameserver/src/net/handlers/scene.rs | 23 ++++++----------------- gameserver/src/net/tools_res.rs | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/gameserver/src/net/handlers/scene.rs b/gameserver/src/net/handlers/scene.rs index 372b330..38939d7 100644 --- a/gameserver/src/net/handlers/scene.rs +++ b/gameserver/src/net/handlers/scene.rs @@ -1,6 +1,5 @@ use lazy_static::lazy_static; use prost::Message; -use rand::Rng; use tokio::sync::Mutex; use crate::{ @@ -275,26 +274,21 @@ async fn load_scene( }), }; - let mut entities = 0; + let mut entity_id = 10; // LOAD PROPS for prop in level.props { - if entities >= 500 { - continue; - } - entities += 1; - - let mut rng = rand::thread_rng(); + entity_id += 1; let prop_state = if prop.anchor_id.unwrap_or_default() > 0 { 8 } else { - prop.prop_state_list.first().unwrap().clone() as u32 + prop.state as u32 }; let info = SceneEntityInfo { inst_id: prop.id as u32, group_id: prop.group_id, - entity_id: rng.gen(), + entity_id, motion: Some(MotionInfo { // pos aomilajjmii: Some(Vector { @@ -336,17 +330,12 @@ async fn load_scene( // LOAD MONSTERS for monster in level.monsters { - if entities >= 500 { - continue; - } - entities += 1; - - let mut rng = rand::thread_rng(); + entity_id += 1; let info = SceneEntityInfo { inst_id: monster.id as u32, group_id: monster.group_id, - entity_id: rng.gen(), + entity_id, motion: Some(MotionInfo { // pos aomilajjmii: Some(Vector { diff --git a/gameserver/src/net/tools_res.rs b/gameserver/src/net/tools_res.rs index 12ebe56..8b94201 100644 --- a/gameserver/src/net/tools_res.rs +++ b/gameserver/src/net/tools_res.rs @@ -62,11 +62,21 @@ pub struct LevelProp { pub anchor_group_id: Option, #[serde(rename = "MappingInfoID")] pub mapping_info_id: Option, + + #[serde(default)] + #[serde(rename = "State")] + pub state: PropState, #[serde(default)] pub prop_state_list: Vec, #[serde(default)] pub group_id: u32, + #[serde(rename = "IsDelete")] + #[serde(default)] + pub is_delete: bool, + #[serde(rename = "IsClientOnly")] + #[serde(default)] + pub client_only: bool, } #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -250,6 +260,12 @@ pub enum PropState { CustomState09 = 109, } +impl Default for PropState { + fn default() -> Self { + PropState::Closed + } +} + pub type IntMap = HashMap; pub type StringMap = HashMap;