From 2c1c3e740d76809c26aede4fdfde077257c240df Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 13 Oct 2023 19:31:36 +0800 Subject: [PATCH] 1 --- .../types/internal/behaviac_agent_meta.cpp | 57 +++++++++++++++++-- .../types/internal/behaviac_agent_meta.h | 2 - server/gameserver/new_hero_agent.cc | 6 +- server/gameserver/new_hero_agent.h | 2 +- 4 files changed, 56 insertions(+), 11 deletions(-) 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 731634aa..b821b809 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 @@ -414,6 +414,53 @@ namespace behaviac } }; + class CMethod_HeroAgent_RandomPoint : public CAgentMethodBase + { + IInstanceMember* _center; + IInstanceMember* _range; + + public: + CMethod_HeroAgent_RandomPoint() : _center(0) , _range(0) + { + } + + CMethod_HeroAgent_RandomPoint(CMethod_HeroAgent_RandomPoint &rhs) : CAgentMethodBase(rhs) , _center(0) , _range(0) + { + } + + ~CMethod_HeroAgent_RandomPoint() + { + BEHAVIAC_DELETE _center; + BEHAVIAC_DELETE _range; + } + + virtual IInstanceMember* clone() + { + return BEHAVIAC_NEW CMethod_HeroAgent_RandomPoint(*this); + } + + virtual void load(const char* instance, behaviac::vector& paramStrs) + { + BEHAVIAC_ASSERT(paramStrs.size() == 2); + + behaviac::StringUtils::StringCopySafe(kInstanceNameMax, _instance, instance); + _center = AgentMeta::TParseProperty(paramStrs[0].c_str()); + _range = AgentMeta::TParseProperty(paramStrs[1].c_str()); + } + + virtual void run(Agent* self) + { + BEHAVIAC_ASSERT(_center != NULL); + BEHAVIAC_ASSERT(_range != NULL); + + const glm::vec3& pValue_center = *(const glm::vec3*)_center->GetValue(self, behaviac::Meta::IsVector::Result, behaviac::GetClassTypeNumberId()); + float& pValue_range = *(float*)_range->GetValue(self, behaviac::Meta::IsVector::Result, behaviac::GetClassTypeNumberId()); + self = Agent::GetParentAgent(self, _instance); + + _returnValue->value = ((HeroAgent*)self)->RandomPoint(pValue_center, pValue_range); + } + }; + class CMethod_HeroAgent_SetAttackDir : public CAgentMethodVoidBase { IInstanceMember* _dir; @@ -578,7 +625,7 @@ namespace behaviac virtual bool load() { - AgentMeta::SetTotalSignature(1707898316u); + AgentMeta::SetTotalSignature(4063247840u); AgentMeta* meta = NULL; BEHAVIAC_UNUSED_VAR(meta); @@ -673,7 +720,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // HeroAgent - meta = BEHAVIAC_NEW AgentMeta(3697005899u); + meta = BEHAVIAC_NEW AgentMeta(752687754u); AgentMeta::GetAgentMetas()[2270112014u] = meta; meta->RegisterMemberProperty(2706111800u, BEHAVIAC_NEW CMemberProperty< TargetAgent* >("current_target_agent", Set_HeroAgent_current_target_agent, Get_HeroAgent_current_target_agent)); meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< HeroAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent)); @@ -746,7 +793,7 @@ namespace behaviac meta->RegisterMethod(2059940772u, BEHAVIAC_NEW CAgentMethodVoid_1(FunctionPointer_HeroAgent_MobaMode) /* MobaMode */); meta->RegisterMethod(542998674u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_OpenBulletTraceMode)); meta->RegisterMethod(3156314303u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_Rand)); - meta->RegisterMethod(657529872u, BEHAVIAC_NEW CAgentMethod_1< glm::vec3, float >(FunctionPointer_HeroAgent_RandomPoint)); + meta->RegisterMethod(657529872u, BEHAVIAC_NEW CMethod_HeroAgent_RandomPoint()); meta->RegisterMethod(3929481793u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_RandomShot) /* RandomShot */); meta->RegisterMethod(2913172428u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_RandomWalk) /* RandomWalk */); meta->RegisterMethod(1110901686u, BEHAVIAC_NEW CAgentMethod_2< int, int, int >(FunctionPointer_HeroAgent_RandRange)); @@ -769,7 +816,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // AndroidAgent - meta = BEHAVIAC_NEW AgentMeta(2851357735u); + meta = BEHAVIAC_NEW AgentMeta(1768786932u); AgentMeta::GetAgentMetas()[2475098143u] = meta; meta->RegisterMemberProperty(2706111800u, BEHAVIAC_NEW CMemberProperty< TargetAgent* >("current_target_agent", Set_HeroAgent_current_target_agent, Get_HeroAgent_current_target_agent)); meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< HeroAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent)); @@ -843,7 +890,7 @@ namespace behaviac meta->RegisterMethod(2059940772u, BEHAVIAC_NEW CAgentMethodVoid_1(FunctionPointer_AndroidAgent_MobaMode) /* MobaMode */); meta->RegisterMethod(542998674u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_OpenBulletTraceMode)); meta->RegisterMethod(3156314303u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_Rand)); - meta->RegisterMethod(657529872u, BEHAVIAC_NEW CAgentMethod_1< glm::vec3, float >(FunctionPointer_AndroidAgent_RandomPoint)); + meta->RegisterMethod(657529872u, BEHAVIAC_NEW CMethod_HeroAgent_RandomPoint()); meta->RegisterMethod(3929481793u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_RandomShot) /* RandomShot */); meta->RegisterMethod(2913172428u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_RandomWalk) /* RandomWalk */); meta->RegisterMethod(1110901686u, BEHAVIAC_NEW CAgentMethod_2< int, int, int >(FunctionPointer_AndroidAgent_RandRange)); 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 b832d629..5f4cfbeb 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 @@ -173,7 +173,6 @@ namespace behaviac inline void FunctionPointer_HeroAgent_MobaMode(Agent* self, int hero_id) { } /* MobaMode */ inline void FunctionPointer_HeroAgent_OpenBulletTraceMode(Agent* self) { ((HeroAgent*)self)->OpenBulletTraceMode(); } inline int FunctionPointer_HeroAgent_Rand(Agent* self) { return (int)((BaseAgent*)self)->_Execute_Method_(); } - inline glm::vec3 FunctionPointer_HeroAgent_RandomPoint(Agent* self, float range) { return ((HeroAgent*)self)->RandomPoint(range); } inline void FunctionPointer_HeroAgent_RandomShot(Agent* self) { } /* RandomShot */ inline void FunctionPointer_HeroAgent_RandomWalk(Agent* self) { } /* RandomWalk */ inline int FunctionPointer_HeroAgent_RandRange(Agent* self, int min_val, int max_val) { return (int)((BaseAgent*)self)->_Execute_Method_(min_val, max_val); } @@ -229,7 +228,6 @@ namespace behaviac inline void FunctionPointer_AndroidAgent_MobaMode(Agent* self, int hero_id) { } /* MobaMode */ inline void FunctionPointer_AndroidAgent_OpenBulletTraceMode(Agent* self) { ((AndroidAgent*)self)->OpenBulletTraceMode(); } inline int FunctionPointer_AndroidAgent_Rand(Agent* self) { return (int)((BaseAgent*)self)->_Execute_Method_(); } - inline glm::vec3 FunctionPointer_AndroidAgent_RandomPoint(Agent* self, float range) { return ((AndroidAgent*)self)->RandomPoint(range); } inline void FunctionPointer_AndroidAgent_RandomShot(Agent* self) { } /* RandomShot */ inline void FunctionPointer_AndroidAgent_RandomWalk(Agent* self) { } /* RandomWalk */ inline int FunctionPointer_AndroidAgent_RandRange(Agent* self, int min_val, int max_val) { return (int)((BaseAgent*)self)->_Execute_Method_(min_val, max_val); } diff --git a/server/gameserver/new_hero_agent.cc b/server/gameserver/new_hero_agent.cc index 500bbdd8..fc101c89 100644 --- a/server/gameserver/new_hero_agent.cc +++ b/server/gameserver/new_hero_agent.cc @@ -144,12 +144,12 @@ void HeroAgent::SetAttackDir(const glm::vec3& dir) void HeroAgent::ShotNormal(const glm::vec3& dir) { - + abort(); } void HeroAgent::ShotTrace() { - + abort(); } glm::vec3 HeroAgent::GetRandomDir() @@ -169,7 +169,7 @@ glm::vec3 HeroAgent::GetTargetDir() return dir; } -glm::vec3 HeroAgent::RandomPoint(float range) +glm::vec3 HeroAgent::RandomPoint(const glm::vec3& center, float range) { abort(); } diff --git a/server/gameserver/new_hero_agent.h b/server/gameserver/new_hero_agent.h index eb2c61ca..94a3bf67 100644 --- a/server/gameserver/new_hero_agent.h +++ b/server/gameserver/new_hero_agent.h @@ -43,7 +43,7 @@ public: void ShotTrace(); glm::vec3 GetRandomDir(); glm::vec3 GetTargetDir(); - glm::vec3 RandomPoint(float range); + glm::vec3 RandomPoint(const glm::vec3& center, float range); float GetShotRange(); void SetV(int id, int val); int GetV(int id);