From da188e71768c4640d0c5fbb2d2568a51bdb3dc39 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 14 Nov 2023 11:42:53 +0800 Subject: [PATCH] 1 --- README.md | 9 +++++++++ server/gameserver/hero_agent.cc | 20 ++++++++++++++++++++ server/gameserver/hero_agent.h | 5 +++++ 3 files changed, 34 insertions(+) diff --git a/README.md b/README.md index e69de29b..e013b352 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,9 @@ +# 拾取逻辑(涵盖上机甲) + +| 函数名 | 函数说明 | 返回值 | 输出参数1 | 输出参数2 | 输出参数3 | +|------------------|--------------------------|--------------------------------------|----------------------|-----------|-----------| +| SearchPickupObj | 查询可以拾取的对象 | 0:无可拾取对象 1:机甲 2:宝箱 3:其他 | out_point0:对象坐标 | | | +| PickupObjIsValid | 可拾取对象当前是否有效 | true: 有效 false:已失效 | | | | +| AbandonPickup | 放弃拾取当前物件一段时间 | | | | | +| Pickup | 开始拾取 | BT_FAILURE:失败 BT_SUCCESS:成功 | | | | + diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index a4d93bb3..9589718b 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -1254,3 +1254,23 @@ behaviac::EBTStatus HeroAgent::CoGetNextMobaModeRoadPoint() } return behaviac::BT_SUCCESS; } + +int HeroAgent::SearchPickupObj() +{ + +} + +bool HeroAgent::PickupObjIsValid() +{ + return curr_pickup_obj_.Get(); +} + +void HeroAgent::AbandonPickup(int min_time, int max_time) +{ + curr_pickup_obj_.Reset(); +} + +behaviac::EBTStatus HeroAgent::Pickup() +{ + +} diff --git a/server/gameserver/hero_agent.h b/server/gameserver/hero_agent.h index bc7562be..1d688712 100644 --- a/server/gameserver/hero_agent.h +++ b/server/gameserver/hero_agent.h @@ -88,6 +88,9 @@ public: bool SwitchToNewAttacker(); int GetReviveCount(); void SetBulletAngleOffset(int min_val, int max_val); + int SearchPickupObj(); + bool PickupObjIsValid(); + void AbandonPickup(int min_time, int max_time); behaviac::EBTStatus RegisterEvents(behaviac::vector events); behaviac::EBTStatus ClearEvents(); @@ -95,6 +98,7 @@ public: behaviac::EBTStatus TrySearchEnemy(float range, int min_interval, int max_interval); behaviac::EBTStatus DebugOut(std::string msg, int arg0, int arg1, int arg2); behaviac::EBTStatus RandomSafeZonePoint(int try_count, int step_len); + behaviac::EBTStatus Pickup(); behaviac::EBTStatus CoIdle(int min_val, int max_val); behaviac::EBTStatus CoMoveCurrentTargetRaycast(); @@ -145,6 +149,7 @@ protected: Creature* owner_ = nullptr; private: + EntityWeakPtr curr_pickup_obj_; bool bullet_trace_mode_ = false; long long flags_ = 0; int shot_times_ = 0;