From f4a4f605538b6e75ebb566b3227f9c986ebaff0d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 7 Apr 2023 19:09:51 +0800 Subject: [PATCH] 1 --- server/bin/exported/android_pvp.xml | 4 ++-- server/gameserver/android_agent.cc | 32 ++++------------------------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/server/bin/exported/android_pvp.xml b/server/bin/exported/android_pvp.xml index b21f59aa..d92a585b 100644 --- a/server/bin/exported/android_pvp.xml +++ b/server/bin/exported/android_pvp.xml @@ -61,7 +61,7 @@ - + @@ -69,7 +69,7 @@ - + diff --git a/server/gameserver/android_agent.cc b/server/gameserver/android_agent.cc index a23e773b..927f337b 100644 --- a/server/gameserver/android_agent.cc +++ b/server/gameserver/android_agent.cc @@ -244,39 +244,14 @@ behaviac::EBTStatus AndroidAgent::DoPursuit() ( CreatureWeakPtr owner; CreatureWeakPtr target; - CreatureWeakPtr last_attacker; - long long last_attacked_frameno = 0; long long last_frameno = 0; long long last_pursuit_frameno = 0; - std::weak_ptr handler; ); context->owner = GetOwner()->GetWeakPtrRef(); context->target = enemy->GetWeakPtrRef(); context->last_frameno = GetOwner()->room->GetFrameNo(); context->last_pursuit_frameno = GetOwner()->room->GetFrameNo(); - #if 0 - context->handler = GetOwner()->GetTrigger()->AddListener - ( - kAttacked, - [context_wp = context->GetWp()] (const a8::Args& args) - { - if (!context_wp.expired()) { - auto context = context_wp.lock(); - Creature* c = args.Get(0); - context->last_attacker = c->GetWeakPtrRef(); - context->last_attacked_frameno = c->room->GetFrameNo(); - } - }); - context->_destory_cb = - ( - [context = context.get()] () - { - if (context->owner.Get()) { - context->owner.Get()->GetTrigger()->RemoveEventHandler(context->handler); - } - }); - #endif auto co = std::make_shared(context, "CoPursuit"); co->runing_cb = @@ -294,19 +269,20 @@ behaviac::EBTStatus AndroidAgent::DoPursuit() context->last_pursuit_frameno = GetOwner()->room->GetFrameNo(); } else { bool is_shot = false; - if (GlmHelper::Norm(dir) > 300) { + float distance = GlmHelper::Norm(dir) - GetAttackRange(); + if (distance > 0.001f) { if (GetOwner()->GetMovement()->GetPathSize() < 1) { GlmHelper::Normalize(dir); GetOwner()->SetMoveDir(dir); GetOwner()->SetAttackDir(dir); - GetOwner()->GetMovement()->CalcTargetPos(200); + GetOwner()->GetMovement()->CalcTargetPos(distance + 60); context->last_pursuit_frameno = GetOwner()->room->GetFrameNo(); } else { if (GetOwner()->room->GetFrameNo() - context->last_pursuit_frameno > SERVER_FRAME_RATE * 1) { GlmHelper::Normalize(dir); GetOwner()->SetMoveDir(dir); GetOwner()->SetAttackDir(dir); - GetOwner()->GetMovement()->CalcTargetPos(200); + GetOwner()->GetMovement()->CalcTargetPos(distance + 60); context->last_pursuit_frameno = GetOwner()->room->GetFrameNo(); } }