From 8d983e2a93a06d2aa6b9dd710b1d19e10424b0df Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 6 May 2019 19:20:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=9E=AA=E6=97=B6=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=A3=85=E5=BC=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/player.cc | 4 ++++ server/gameserver/room.cc | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 4afa8f1..2c85fd0 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -438,6 +438,10 @@ void Player::Shot() return; } + if (action_type != AT_Reload) { + CancelAction(); + } + if (room->gas_data.gas_mode != GasInactive && !a8::HasBitFlag(status, HS_Fly) && !a8::HasBitFlag(status, HS_Jump) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 3646921..c2088dc 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -594,9 +594,16 @@ bool Room::OverBorder(const Vector2D pos, float radius) Human* Room::GetWatchWarTarget(Human* hum) { + if (hum->team_members) { + for (auto& member : *hum->team_members) { + if (member != hum && !member->dead) { + return member; + } + } + } std::vector humans; for (auto& pair : human_hash_) { - if (pair.first != hum->entity_uniid) { + if (pair.first != hum->entity_uniid && !pair.second->dead) { humans.push_back(pair.second); } }