From d86d5f6d2fa132818e146731fd299d5115ef180c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 11 Apr 2019 17:55:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=91=E5=B0=84=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/player.cc | 9 ++++++++- server/gameserver/player.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 17f826e..dae7bf8 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -118,7 +118,13 @@ void Player::UpdateShot() if (series_shot_frames > 4) { shot_hold = false; series_shot_frames = 0; - Shot(); + if (last_shot_frameno_ == 0 || + ( + (room->frame_no - last_shot_frameno_) * (1000 / SERVER_FRAME_RATE)) > + curr_weapon->meta->i->fire_rate() + ) { + Shot(); + } } } } @@ -388,6 +394,7 @@ void Player::Shot() } break; } + last_shot_frameno_ = room->frame_no; need_sync_active_player = true; } diff --git a/server/gameserver/player.h b/server/gameserver/player.h index d82030e..1a97bd5 100644 --- a/server/gameserver/player.h +++ b/server/gameserver/player.h @@ -97,6 +97,7 @@ class Player : public Human private: int send_update_msg_times = 0; + long long last_shot_frameno_ = 0; cs::SMUpdate* update_msg = nullptr; long long last_sync_gas_frameno = 0; void MakeUpdateMsg();