From debf6938e56607cd1195679bfb97dc75c33c4755 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 31 May 2023 12:08:47 +0800 Subject: [PATCH] 1 --- server/gameserver/human.h | 2 ++ server/gameserver/player.cc | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/server/gameserver/human.h b/server/gameserver/human.h index ccb179ff..f7042166 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -71,6 +71,8 @@ class Human : public Creature std::shared_ptr throw_bomb; std::map> pending_throw_bomb; std::shared_ptr sand_table_target_pos; + std::shared_ptr shot_target_pos; + std::shared_ptr shot_client_pos; std::string name; std::string avatar_url; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 2f6bb02d..15e7f497 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1130,6 +1130,20 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg) GetMovement()->CalcTargetPos(distance); } } + if (msg.has_shot_target_pos() && + msg.has_shot_client_pos()) { + if (!shot_target_pos) { + shot_target_pos = std::make_shared(0.0f, 0.0f, 0.0f); + } + if (!shot_client_pos) { + shot_client_pos = std::make_shared(0.0f, 0.0f, 0.0f); + } + TypeConvert::FromPb(*shot_target_pos, &msg.shot_target_pos()); + TypeConvert::FromPb(*shot_client_pos, &msg.shot_client_pos()); + } else { + shot_target_pos = nullptr; + shot_client_pos = nullptr; + } last_cmmove_frameno = room->GetFrameNo(); trace_target_uniid = msg.trace_target_uniid(); #ifdef DEBUG1