diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 8941e997..29f9c132 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -764,16 +764,16 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg) if (std::abs(msg.move_dir().x()) > FLT_EPSILON || std::abs(msg.move_dir().y()) > FLT_EPSILON ) { - #if 0 - a8::Vec2 old_move_dir; - a8::Vec2 new_move_dir; + glm::vec3 old_move_dir; + glm::vec3 new_move_dir; TypeConvert::FromPb(new_move_dir, &msg.move_dir()); if (!HasBuffEffect(kBET_Vertigo)) { if (!(HasBuffEffect(kBET_Jump) && follow_target.Get())) { if (GetDisableMoveDirTimes() <= 0) { - new_move_dir.Normalize(); + GlmHelper::Normalize(new_move_dir); if (std::fabs(new_move_dir.x - GetMoveDir().x) > 0.00001f || - std::fabs(new_move_dir.y - GetMoveDir().y) > 0.00001f) { + std::fabs(new_move_dir.y - GetMoveDir().y) > 0.00001f || + std::fabs(new_move_dir.z - GetMoveDir().z) > 0.00001f) { SetMoveDir(new_move_dir); GetMoveHelper()->CalcTargetPos(500); } @@ -781,7 +781,6 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg) } } } - #endif } } assert(!isnan(GetMoveDir().x) && !isnan(GetMoveDir().y)); diff --git a/server/gameserver/typeconvert.cc b/server/gameserver/typeconvert.cc index 56cc65d4..f5d4252b 100644 --- a/server/gameserver/typeconvert.cc +++ b/server/gameserver/typeconvert.cc @@ -82,6 +82,13 @@ namespace TypeConvert v.z = pb_obj->z(); } + void FromPb(glm::vec3& v, const cs::MFVec3* pb_obj) + { + v.x = pb_obj->x(); + v.y = pb_obj->y(); + v.z = pb_obj->z(); + } + void ToPb(const OverReward& v, cs::MFOverReward* pb_obj) { pb_obj->mutable_hero()->set_id(v.hero.id); diff --git a/server/gameserver/typeconvert.h b/server/gameserver/typeconvert.h index d25a814f..4c0adb40 100644 --- a/server/gameserver/typeconvert.h +++ b/server/gameserver/typeconvert.h @@ -18,6 +18,7 @@ namespace TypeConvert void ToPb(const glm::vec3& v, cs::MFVec3* pb_obj); void FromPb(a8::Vec2& v, const cs::MFVec2* pb_obj); void FromPb(a8::Vec2& v, const cs::MFVec3* pb_obj); + void FromPb(glm::vec3& v, const cs::MFVec3* pb_obj); void ToPb(const a8::Vec3& v, cs::MFVec3* pb_obj); void FromPb(a8::Vec3& v, const cs::MFVec3* pb_obj);