From 6102b0714a6b94d1cb99a6d168543e893a547643 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 4 Apr 2023 10:25:49 +0800 Subject: [PATCH] 1 --- .../internal/behaviac_agent_member_visitor.h | 12 ++++++++++++ .../types/internal/behaviac_agent_meta.cpp | 7 +++++-- .../types/internal/behaviac_agent_meta.h | 3 +++ server/bin/exported/meta/game2006.meta.xml | 2 +- server/gameserver/hero_agent.cc | 18 ++++++++++++++++++ server/gameserver/hero_agent.h | 4 ++++ 6 files changed, 43 insertions(+), 3 deletions(-) diff --git a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h index 308c2c5f..f08a22a6 100644 --- a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h +++ b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h @@ -48,5 +48,17 @@ template<> inline behaviac::EBTStatus HeroAgent::_Execute_Method_HeroAgent::DoAttack(); } +struct METHOD_TYPE_HeroAgent_FlyToMasterAround { }; +template<> inline behaviac::EBTStatus HeroAgent::_Execute_Method_() +{ + return this->HeroAgent::FlyToMasterAround(); +} + +struct METHOD_TYPE_HeroAgent_FollowMaster { }; +template<> inline behaviac::EBTStatus HeroAgent::_Execute_Method_() +{ + return this->HeroAgent::FollowMaster(); +} + #endif // _BEHAVIAC_MEMBER_VISITOR_H_ diff --git a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp index 27bcb59d..c8ae11c6 100644 --- a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp +++ b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp @@ -237,7 +237,7 @@ namespace behaviac virtual bool load() { - AgentMeta::SetTotalSignature(3390921950u); + AgentMeta::SetTotalSignature(1153590554u); AgentMeta* meta = NULL; BEHAVIAC_UNUSED_VAR(meta); @@ -293,7 +293,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // HeroAgent - meta = BEHAVIAC_NEW AgentMeta(92585751u); + meta = BEHAVIAC_NEW AgentMeta(3034510267u); AgentMeta::GetAgentMetas()[2270112014u] = meta; meta->RegisterMethod(623091365u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_HeroAgent_CoAttackTarget)); meta->RegisterMethod(2886181657u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoAttack)); @@ -302,7 +302,10 @@ namespace behaviac meta->RegisterMethod(846782702u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoPursuit)); meta->RegisterMethod(1079343198u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoRandomShot)); meta->RegisterMethod(130097619u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoRandomWalk)); + meta->RegisterMethod(4119944363u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_FlyToMasterAround)); + meta->RegisterMethod(3850832265u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_FollowMaster)); meta->RegisterMethod(32551668u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetAttackRange)); + meta->RegisterMethod(3721974980u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetMasterDistance)); meta->RegisterMethod(3603629747u, BEHAVIAC_NEW CAgentMethod_1< bool, int >(FunctionPointer_HeroAgent_HasBuffEffect)); meta->RegisterMethod(3047011226u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_HeroAgent_HasTarget)); meta->RegisterMethod(400482748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_IsGameOver)); diff --git a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h index 3c496eac..2cb492f4 100644 --- a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h +++ b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h @@ -45,7 +45,10 @@ namespace behaviac inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoPursuit(Agent* self) { return ((HeroAgent*)self)->DoPursuit(); } inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoRandomShot(Agent* self) { return ((HeroAgent*)self)->DoRandomShot(); } inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoRandomWalk(Agent* self) { return ((HeroAgent*)self)->DoRandomWalk(); } + inline behaviac::EBTStatus FunctionPointer_HeroAgent_FlyToMasterAround(Agent* self) { return (behaviac::EBTStatus)((HeroAgent*)self)->_Execute_Method_(); } + inline behaviac::EBTStatus FunctionPointer_HeroAgent_FollowMaster(Agent* self) { return (behaviac::EBTStatus)((HeroAgent*)self)->_Execute_Method_(); } inline float FunctionPointer_HeroAgent_GetAttackRange(Agent* self) { return ((HeroAgent*)self)->GetAttackRange(); } + inline float FunctionPointer_HeroAgent_GetMasterDistance(Agent* self) { return ((HeroAgent*)self)->GetMasterDistance(); } inline bool FunctionPointer_HeroAgent_HasBuffEffect(Agent* self, int buff_effect) { return (bool)((BaseAgent*)self)->_Execute_Method_(buff_effect); } inline bool FunctionPointer_HeroAgent_HasTarget(Agent* self, float range) { return (bool)((BaseAgent*)self)->_Execute_Method_(range); } inline bool FunctionPointer_HeroAgent_IsGameOver(Agent* self) { return ((HeroAgent*)self)->IsGameOver(); } diff --git a/server/bin/exported/meta/game2006.meta.xml b/server/bin/exported/meta/game2006.meta.xml index e74855b1..33a32f46 100644 --- a/server/bin/exported/meta/game2006.meta.xml +++ b/server/bin/exported/meta/game2006.meta.xml @@ -1,3 +1,3 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index ecddfbab..47369a95 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -443,3 +443,21 @@ behaviac::EBTStatus HeroAgent::DoHelpAttack(int target_uniid) "CoHelpAttack" ); } + +behaviac::EBTStatus HeroAgent::FlyToMasterAround() +{ + +} + +behaviac::EBTStatus HeroAgent::FollowMaster() +{ + +} + +float HeroAgent::GetMasterDistance() +{ + if (!GetOwner()->AsHero()->master.Get()) { + return 0.0f; + } + return GetOwner()->GetPos().Distance2D2(GetOwner()->AsHero()->master.Get()->GetPos()); +} diff --git a/server/gameserver/hero_agent.h b/server/gameserver/hero_agent.h index f6189faf..81ad53f6 100644 --- a/server/gameserver/hero_agent.h +++ b/server/gameserver/hero_agent.h @@ -20,4 +20,8 @@ public: behaviac::EBTStatus DoAttack(); behaviac::EBTStatus DoPursuit(); behaviac::EBTStatus DoHelpAttack(int target_uniid); + behaviac::EBTStatus FlyToMasterAround(); + behaviac::EBTStatus FollowMaster(); + float GetMasterDistance(); + };