From d2f663663590b9903ed375289a9244a2df598c91 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 24 Oct 2023 10:42:31 +0800 Subject: [PATCH] 1 --- .../types/internal/behaviac_agent_meta.cpp | 11 ++-- .../types/internal/behaviac_agent_meta.h | 3 + server/bin/exported/meta/counterfire.meta.xml | 6 +- server/bin/exported/task/ChaseToKill.xml | 60 ++++++++++++++++++- server/gameserver/hero_agent.cc | 5 ++ server/gameserver/hero_agent.h | 1 + server/gameserver/target_agent.cc | 5 ++ server/gameserver/target_agent.h | 1 + 8 files changed, 83 insertions(+), 9 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 416568a5..383bdd19 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 @@ -633,7 +633,7 @@ namespace behaviac virtual bool load() { - AgentMeta::SetTotalSignature(2045821862u); + AgentMeta::SetTotalSignature(11432057u); AgentMeta* meta = NULL; BEHAVIAC_UNUSED_VAR(meta); @@ -708,12 +708,13 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // TargetAgent - meta = BEHAVIAC_NEW AgentMeta(3502735268u); + meta = BEHAVIAC_NEW AgentMeta(3584474458u); AgentMeta::GetAgentMetas()[498664641u] = meta; meta->RegisterMethod(347903289u, BEHAVIAC_NEW CAgentMethodVoid_1(FunctionPointer_TargetAgent_Abandon)); meta->RegisterMethod(97826769u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_TargetAgent_ClearAbandon)); meta->RegisterMethod(2524021140u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_TargetAgent_GetHeroId)); meta->RegisterMethod(3358849663u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_TargetAgent_GetHp)); + meta->RegisterMethod(3597666367u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_TargetAgent_GetHPRate)); meta->RegisterMethod(3451565888u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_TargetAgent_GetLevel)); meta->RegisterMethod(3311091192u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_TargetAgent_GetMaxHp)); meta->RegisterMethod(3533946671u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_TargetAgent_GetPos)); @@ -733,7 +734,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // HeroAgent - meta = BEHAVIAC_NEW AgentMeta(2121418526u); + meta = BEHAVIAC_NEW AgentMeta(1984263157u); 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< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent)); @@ -787,6 +788,7 @@ namespace behaviac meta->RegisterMethod(755433673u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetBattleTimes)); meta->RegisterMethod(2524021140u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetHeroId)); meta->RegisterMethod(3358849663u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetHp)); + meta->RegisterMethod(3597666367u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetHPRate)); meta->RegisterMethod(667805456u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetLastAttackPassTime)); meta->RegisterMethod(3354832405u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetLastShotPassTime)); meta->RegisterMethod(829569018u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetLastUseSkillPassTime)); @@ -862,7 +864,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // AndroidAgent - meta = BEHAVIAC_NEW AgentMeta(1763976988u); + meta = BEHAVIAC_NEW AgentMeta(210764546u); 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< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent)); @@ -917,6 +919,7 @@ namespace behaviac meta->RegisterMethod(755433673u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetBattleTimes)); meta->RegisterMethod(2524021140u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetHeroId)); meta->RegisterMethod(3358849663u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetHp)); + meta->RegisterMethod(3597666367u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetHPRate)); meta->RegisterMethod(667805456u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetLastAttackPassTime)); meta->RegisterMethod(3354832405u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetLastShotPassTime)); meta->RegisterMethod(829569018u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetLastUseSkillPassTime)); 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 8853de6c..a68798cd 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,6 +45,7 @@ namespace behaviac inline void FunctionPointer_TargetAgent_ClearAbandon(Agent* self) { ((TargetAgent*)self)->ClearAbandon(); } inline int FunctionPointer_TargetAgent_GetHeroId(Agent* self) { return ((TargetAgent*)self)->GetHeroId(); } inline float FunctionPointer_TargetAgent_GetHp(Agent* self) { return ((TargetAgent*)self)->GetHp(); } + inline float FunctionPointer_TargetAgent_GetHPRate(Agent* self) { return ((TargetAgent*)self)->GetHPRate(); } inline int FunctionPointer_TargetAgent_GetLevel(Agent* self) { return ((TargetAgent*)self)->GetLevel(); } inline float FunctionPointer_TargetAgent_GetMaxHp(Agent* self) { return ((TargetAgent*)self)->GetMaxHp(); } inline glm::vec3 FunctionPointer_TargetAgent_GetPos(Agent* self) { return ((TargetAgent*)self)->GetPos(); } @@ -159,6 +160,7 @@ namespace behaviac inline int FunctionPointer_HeroAgent_GetBattleTimes(Agent* self) { return ((HeroAgent*)self)->GetBattleTimes(); } inline int FunctionPointer_HeroAgent_GetHeroId(Agent* self) { return ((HeroAgent*)self)->GetHeroId(); } inline float FunctionPointer_HeroAgent_GetHp(Agent* self) { return ((HeroAgent*)self)->GetHp(); } + inline float FunctionPointer_HeroAgent_GetHPRate(Agent* self) { return ((HeroAgent*)self)->GetHPRate(); } inline int FunctionPointer_HeroAgent_GetLastAttackPassTime(Agent* self) { return ((HeroAgent*)self)->GetLastAttackPassTime(); } inline int FunctionPointer_HeroAgent_GetLastShotPassTime(Agent* self) { return ((HeroAgent*)self)->GetLastShotPassTime(); } inline int FunctionPointer_HeroAgent_GetLastUseSkillPassTime(Agent* self) { return ((HeroAgent*)self)->GetLastUseSkillPassTime(); } @@ -247,6 +249,7 @@ namespace behaviac inline int FunctionPointer_AndroidAgent_GetBattleTimes(Agent* self) { return ((AndroidAgent*)self)->GetBattleTimes(); } inline int FunctionPointer_AndroidAgent_GetHeroId(Agent* self) { return ((AndroidAgent*)self)->GetHeroId(); } inline float FunctionPointer_AndroidAgent_GetHp(Agent* self) { return ((AndroidAgent*)self)->GetHp(); } + inline float FunctionPointer_AndroidAgent_GetHPRate(Agent* self) { return ((AndroidAgent*)self)->GetHPRate(); } inline int FunctionPointer_AndroidAgent_GetLastAttackPassTime(Agent* self) { return ((AndroidAgent*)self)->GetLastAttackPassTime(); } inline int FunctionPointer_AndroidAgent_GetLastShotPassTime(Agent* self) { return ((AndroidAgent*)self)->GetLastShotPassTime(); } inline int FunctionPointer_AndroidAgent_GetLastUseSkillPassTime(Agent* self) { return ((AndroidAgent*)self)->GetLastUseSkillPassTime(); } diff --git a/server/bin/exported/meta/counterfire.meta.xml b/server/bin/exported/meta/counterfire.meta.xml index 890dc8bb..160ee854 100644 --- a/server/bin/exported/meta/counterfire.meta.xml +++ b/server/bin/exported/meta/counterfire.meta.xml @@ -1,7 +1,7 @@ - - + + @@ -31,7 +31,7 @@ - + diff --git a/server/bin/exported/task/ChaseToKill.xml b/server/bin/exported/task/ChaseToKill.xml index 4247bc81..66803c69 100644 --- a/server/bin/exported/task/ChaseToKill.xml +++ b/server/bin/exported/task/ChaseToKill.xml @@ -127,11 +127,67 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index e432bacd..77f10a5b 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -922,3 +922,8 @@ int HeroAgent::GetLastAttackPassTime() { return std::min(GetLastShotPassTime(), GetLastUseSkillPassTime()); } + +float HeroAgent::GetHPRate() +{ + return GetHp() / std::max(1.0f, GetMaxHp()); +} diff --git a/server/gameserver/hero_agent.h b/server/gameserver/hero_agent.h index a3f0ad8b..780d040a 100644 --- a/server/gameserver/hero_agent.h +++ b/server/gameserver/hero_agent.h @@ -78,6 +78,7 @@ public: int GetLastShotPassTime(); int GetLastUseSkillPassTime(); int GetLastAttackPassTime(); + float GetHPRate(); behaviac::EBTStatus RegisterEvents(behaviac::vector events); behaviac::EBTStatus SearchEnemy(float range); diff --git a/server/gameserver/target_agent.cc b/server/gameserver/target_agent.cc index 45365139..99dffae6 100644 --- a/server/gameserver/target_agent.cc +++ b/server/gameserver/target_agent.cc @@ -104,3 +104,8 @@ void TargetAgent::ClearAbandon() { } + +float TargetAgent::GetHPRate() +{ + return GetHp() / std::max(1.0f, GetMaxHp()); +} diff --git a/server/gameserver/target_agent.h b/server/gameserver/target_agent.h index 87ea79c2..0095ad21 100644 --- a/server/gameserver/target_agent.h +++ b/server/gameserver/target_agent.h @@ -24,6 +24,7 @@ public: void Abandon(int time); float GetShotRange(); void ClearAbandon(); + float GetHPRate(); void SetOwner(Creature* owner); void SetTarget(Creature* target);