From 69fb17f647a74a0866c648ab13c134f135580cea Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 24 Mar 2023 12:14:04 +0800 Subject: [PATCH] 1 --- server/gameserver/hero.cc | 30 ++++++++++++++++++++++++++++++ server/gameserver/player.cc | 3 +-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc index 163e6fe8..47249578 100644 --- a/server/gameserver/hero.cc +++ b/server/gameserver/hero.cc @@ -18,6 +18,7 @@ #include "battledatacontext.h" #include "stats.h" #include "hero_agent.h" +#include "movement.h" #include "f8/btmgr.h" @@ -85,6 +86,35 @@ void Hero::Update(int delta_time) poisoning_time += delta_time; UpdatePoisoning(); } + if (GetMovement()->GetPathSize() > 0) { + Global::Instance()->verify_set_pos = 1; + UpdateMove(); +#ifdef DEBUG1 + a8::XPrintf("updatemove old_pos:%f,%f new_pos:%f,%f\n", + { + old_pos.x, + old_pos.y, + GetPos().x, + GetPos().y, + }); +#endif + Global::Instance()->verify_set_pos = 0; + } else { + if (HasBuffEffect(kBET_Jump)) { + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, (10 + rand() % 360)/ 180.0f); + GlmHelper::Normalize(dir); + GetMovement()->CalcTargetPos(60 + rand() % 200); + return; + } + } +#ifdef DEBUG + if (!room->stop_world) { + agent_->Exec(); + } +#else + agent_->Exec(); +#endif } void Hero::OnExplosionHit(Explosion* e) diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 06c5bb4e..ad304359 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1297,11 +1297,10 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg) url_params->SetVal("num", 1); long long room_uuid = room->GetRoomUuid(); - std::string account_id = account_id; auto target_uniid = msg.target_uniid(); HttpProxy::Instance()->HttpGet ( - [room_uuid, account_id, target_uniid] + [room_uuid, account_id = account_id, target_uniid] (bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx) { Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);