From c1b4cc293fd69971bc747c9098fa34d4e10657c9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 16 Aug 2021 09:08:54 +0000 Subject: [PATCH] =?UTF-8?q?=E6=88=98=E6=96=97=E5=89=8D=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/creature.cc | 7 ++++++- server/gameserver/metamgr.cc | 2 ++ server/gameserver/metamgr.h | 2 ++ server/gameserver/player.cc | 7 ------- server/gameserver/room.cc | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 04bb651..42e5114 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -803,7 +803,12 @@ void Creature::DoSkill(int skill_id, float skill_distance, const a8::Vec2& target_pos) { - if (HasBuffEffect(kBET_Jump) || + if (room->GetGasData().gas_mode == GasInactive && + !MetaMgr::Instance()->prebattle_can_use_skill) { + return; + } + if (HasBuffEffect(kBET_Vertigo) || + HasBuffEffect(kBET_Jump) || HasBuffEffect(kBET_Fly) || HasBuffEffect(kBET_Sprint)) { return; diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 04aa901..aaecf9e 100644 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -250,6 +250,8 @@ public: METAMGR_READ(incubator_rand_length, 10); METAMGR_READ(incubator_canset_distance, 520); + METAMGR_READ(prebattle_can_use_skill, 0); + METAMGR_READ(refresh_view_time, 4); { METAMGR_READ_STR(level0room_spec_things, ""); diff --git a/server/gameserver/metamgr.h b/server/gameserver/metamgr.h index dbfb669..f6cf138 100644 --- a/server/gameserver/metamgr.h +++ b/server/gameserver/metamgr.h @@ -178,6 +178,8 @@ class MetaMgr : public a8::Singleton int prebattle_box_id_chiji = 0; int prebattle_box_id_zb = 0; + int prebattle_can_use_skill = 0; + private: MetaDataLoader* loader_ = nullptr; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index fd4a9f1..f384d8e 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -440,13 +440,6 @@ void Player::UpdateSwitchSeat() void Player::UpdateUseSkill() { - if (HasBuffEffect(kBET_Vertigo)) { - return; - } - if (room->GetGasData().gas_mode == GasInactive || - room->GetGasData().gas_mode == GasJump) { - return; - } DoSkill(use_skill_id, skill_target_id, skill_dir, skill_distance, a8::Vec2()); use_skill = false; } diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 781b180..097cd38 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -2416,7 +2416,7 @@ ObstacleData* Room::GetPermanentObstacleData(int obstacle_uniid) long long Room::GetGasInactiveTime() { #ifdef DEBUG - return 10; + return f8::IsOnlineEnv() ? 10 : 30; #endif if (room_mode_ == kZombieMode) { #if DEBUG