From 6843ae5cf9f4b7ffff5a37a40c5fa92dce586d8e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 31 Oct 2022 09:51:59 +0800 Subject: [PATCH] 1 --- server/gameserver/obstacle.cc | 8 ++++++-- server/gameserver/obstacle.h | 1 + server/gameserver/roomobstacle.cc | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/server/gameserver/obstacle.cc b/server/gameserver/obstacle.cc index a76e802d..547ce8b5 100644 --- a/server/gameserver/obstacle.cc +++ b/server/gameserver/obstacle.cc @@ -134,7 +134,9 @@ void Obstacle::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_d cs::MFObstaclePart* p = part_data->mutable_union_obj_2(); p->set_obj_uniid(GetUniId()); TypeConvert::ToPb(GetPos(), p->mutable_pos()); - p->set_scale(1.0f); + if (std::abs(scale - 1.0f) > 0.00001f) { + p->set_scale(scale); + } } void Obstacle::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) @@ -160,7 +162,9 @@ void Obstacle::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_d } p->set_obj_uniid(GetUniId()); TypeConvert::ToPb(GetPos(), p->mutable_pos()); - p->set_scale(1.0f); + if (std::abs(scale - 1.0f) > 0.00001f) { + p->set_scale(scale); + } p->set_obstacle_id(meta->i->thing_id()); p->set_health(GetHealth(room)); diff --git a/server/gameserver/obstacle.h b/server/gameserver/obstacle.h index eb787bee..652ff7ac 100644 --- a/server/gameserver/obstacle.h +++ b/server/gameserver/obstacle.h @@ -31,6 +31,7 @@ class Obstacle : public Entity int collider_tag = 0; int collider_param1 = 0; int collider_param2 = 0; + float scale = 1.0f; virtual ~Obstacle() override; virtual void Initialize() override; diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index a3590b06..e265d6d3 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -860,6 +860,13 @@ void RoomObstacle::ActiveMedicalStation() if (skill_meta->GetMagicId() != MAGIC_YLZ) { return; } + scale = 1.0f; + if (skill_meta->base_skill_meta) { + float base_range = SkillHelper::GetYlzRange(skill_meta->base_skill_meta); + if (std::abs(base_range) > 0.0001f) { + scale = SkillHelper::GetYlzRange(skill_meta) / base_range; + } + } room->xtimer.AddRepeatTimerAndAttach (