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 eaf140b5..416568a5 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(2907398068u); + AgentMeta::SetTotalSignature(2045821862u); AgentMeta* meta = NULL; BEHAVIAC_UNUSED_VAR(meta); @@ -708,9 +708,10 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // TargetAgent - meta = BEHAVIAC_NEW AgentMeta(3594818698u); + meta = BEHAVIAC_NEW AgentMeta(3502735268u); 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(3451565888u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_TargetAgent_GetLevel)); @@ -732,7 +733,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // HeroAgent - meta = BEHAVIAC_NEW AgentMeta(995930905u); + meta = BEHAVIAC_NEW AgentMeta(2121418526u); 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)); @@ -782,9 +783,13 @@ namespace behaviac meta->RegisterMethod(961264360u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_HeroAgent_DecV)); meta->RegisterMethod(3850832265u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_HeroAgent_FollowMaster) /* FollowMaster */); meta->RegisterMethod(3395125024u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetAgentType)); + meta->RegisterMethod(1962280222u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetAliveEnemyNum)); 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(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)); meta->RegisterMethod(3451565888u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetLevel)); meta->RegisterMethod(3311091192u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetMaxHp)); meta->RegisterMethod(3533946671u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_HeroAgent_GetPos)); @@ -801,6 +806,7 @@ namespace behaviac meta->RegisterMethod(4271568288u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetUseSkillTimes)); meta->RegisterMethod(1736603085u, BEHAVIAC_NEW CAgentMethod_1< int, int >(FunctionPointer_HeroAgent_GetV)); meta->RegisterMethod(3603629747u, BEHAVIAC_NEW CAgentMethod_1< bool, BuffEffectType_e >(FunctionPointer_HeroAgent_HasBuffEffect)); + meta->RegisterMethod(565983082u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_HasObserver)); meta->RegisterMethod(1837541310u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_HasUseableSkill)); meta->RegisterMethod(383449432u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_HeroAgent_IncV)); meta->RegisterMethod(750137748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_InTargetShotRange)); @@ -856,7 +862,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // AndroidAgent - meta = BEHAVIAC_NEW AgentMeta(2742274347u); + meta = BEHAVIAC_NEW AgentMeta(1763976988u); 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)); @@ -907,9 +913,13 @@ namespace behaviac meta->RegisterMethod(3850832265u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_AndroidAgent_FollowMaster) /* FollowMaster */); meta->RegisterMethod(397371422u, BEHAVIAC_NEW CAgentMethod< behaviac::string >(FunctionPointer_AndroidAgent_GetAccountId)); meta->RegisterMethod(3395125024u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetAgentType)); + meta->RegisterMethod(1962280222u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetAliveEnemyNum)); 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(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)); meta->RegisterMethod(3451565888u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetLevel)); meta->RegisterMethod(3311091192u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetMaxHp)); meta->RegisterMethod(3533946671u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_AndroidAgent_GetPos)); @@ -926,6 +936,7 @@ namespace behaviac meta->RegisterMethod(4271568288u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetUseSkillTimes)); meta->RegisterMethod(1736603085u, BEHAVIAC_NEW CAgentMethod_1< int, int >(FunctionPointer_AndroidAgent_GetV)); meta->RegisterMethod(3603629747u, BEHAVIAC_NEW CAgentMethod_1< bool, BuffEffectType_e >(FunctionPointer_AndroidAgent_HasBuffEffect)); + meta->RegisterMethod(565983082u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_HasObserver)); meta->RegisterMethod(1837541310u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_HasUseableSkill)); meta->RegisterMethod(383449432u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_AndroidAgent_IncV)); meta->RegisterMethod(750137748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_InTargetShotRange)); 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 ab4fa777..8853de6c 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 @@ -42,6 +42,7 @@ namespace behaviac inline int FunctionPointer_TeamAgent_GetPlayerNum(Agent* self) { return ((TeamAgent*)self)->GetPlayerNum(); } inline void FunctionPointer_TeamAgent_LogMessage(char* param0) { TeamAgent::LogMessage(param0); } inline void FunctionPointer_TargetAgent_Abandon(Agent* self, int time) { ((TargetAgent*)self)->Abandon(time); } + 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 int FunctionPointer_TargetAgent_GetLevel(Agent* self) { return ((TargetAgent*)self)->GetLevel(); } @@ -154,9 +155,13 @@ namespace behaviac inline void FunctionPointer_HeroAgent_DecV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_(id, val); } inline void FunctionPointer_HeroAgent_FollowMaster(Agent* self, glm::vec3& loc_point0, float loc_val0) { } /* FollowMaster */ inline int FunctionPointer_HeroAgent_GetAgentType(Agent* self) { return ((HeroAgent*)self)->GetAgentType(); } + inline int FunctionPointer_HeroAgent_GetAliveEnemyNum(Agent* self) { return ((HeroAgent*)self)->GetAliveEnemyNum(); } 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 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(); } inline int FunctionPointer_HeroAgent_GetLevel(Agent* self) { return ((HeroAgent*)self)->GetLevel(); } inline float FunctionPointer_HeroAgent_GetMaxHp(Agent* self) { return ((HeroAgent*)self)->GetMaxHp(); } inline glm::vec3 FunctionPointer_HeroAgent_GetPos(Agent* self) { return ((HeroAgent*)self)->GetPos(); } @@ -173,6 +178,7 @@ namespace behaviac inline int FunctionPointer_HeroAgent_GetUseSkillTimes(Agent* self) { return ((HeroAgent*)self)->GetUseSkillTimes(); } inline int FunctionPointer_HeroAgent_GetV(Agent* self, int id) { return ((HeroAgent*)self)->GetV(id); } inline bool FunctionPointer_HeroAgent_HasBuffEffect(Agent* self, BuffEffectType_e buff_effect) { return ((HeroAgent*)self)->HasBuffEffect(buff_effect); } + inline bool FunctionPointer_HeroAgent_HasObserver(Agent* self) { return ((HeroAgent*)self)->HasObserver(); } inline bool FunctionPointer_HeroAgent_HasUseableSkill(Agent* self) { return ((HeroAgent*)self)->HasUseableSkill(); } inline void FunctionPointer_HeroAgent_IncV(Agent* self, int id, int val) { ((HeroAgent*)self)->IncV(id, val); } inline bool FunctionPointer_HeroAgent_InTargetShotRange(Agent* self) { return ((HeroAgent*)self)->InTargetShotRange(); } @@ -237,9 +243,13 @@ namespace behaviac inline void FunctionPointer_AndroidAgent_FollowMaster(Agent* self, glm::vec3& loc_point0, float loc_val0) { } /* FollowMaster */ inline behaviac::string FunctionPointer_AndroidAgent_GetAccountId(Agent* self) { return ((AndroidAgent*)self)->GetAccountId(); } inline int FunctionPointer_AndroidAgent_GetAgentType(Agent* self) { return ((AndroidAgent*)self)->GetAgentType(); } + inline int FunctionPointer_AndroidAgent_GetAliveEnemyNum(Agent* self) { return ((AndroidAgent*)self)->GetAliveEnemyNum(); } 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 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(); } inline int FunctionPointer_AndroidAgent_GetLevel(Agent* self) { return ((AndroidAgent*)self)->GetLevel(); } inline float FunctionPointer_AndroidAgent_GetMaxHp(Agent* self) { return ((AndroidAgent*)self)->GetMaxHp(); } inline glm::vec3 FunctionPointer_AndroidAgent_GetPos(Agent* self) { return ((AndroidAgent*)self)->GetPos(); } @@ -256,6 +266,7 @@ namespace behaviac inline int FunctionPointer_AndroidAgent_GetUseSkillTimes(Agent* self) { return ((AndroidAgent*)self)->GetUseSkillTimes(); } inline int FunctionPointer_AndroidAgent_GetV(Agent* self, int id) { return ((AndroidAgent*)self)->GetV(id); } inline bool FunctionPointer_AndroidAgent_HasBuffEffect(Agent* self, BuffEffectType_e buff_effect) { return ((AndroidAgent*)self)->HasBuffEffect(buff_effect); } + inline bool FunctionPointer_AndroidAgent_HasObserver(Agent* self) { return ((AndroidAgent*)self)->HasObserver(); } inline bool FunctionPointer_AndroidAgent_HasUseableSkill(Agent* self) { return ((AndroidAgent*)self)->HasUseableSkill(); } inline void FunctionPointer_AndroidAgent_IncV(Agent* self, int id, int val) { ((AndroidAgent*)self)->IncV(id, val); } inline bool FunctionPointer_AndroidAgent_InTargetShotRange(Agent* self) { return ((AndroidAgent*)self)->InTargetShotRange(); } diff --git a/server/bin/exported/meta/counterfire.meta.xml b/server/bin/exported/meta/counterfire.meta.xml index a88c40e5..890dc8bb 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/gameserver/creature.h b/server/gameserver/creature.h index 0053e9f4..2f080a66 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -129,6 +129,8 @@ class Creature : public MoveableEntity a8::XTimerWp craze_mode_timer; a8::XTimerWp nature_recover_hp_idle_timer; + std::map ignore_target_hash; + Creature(); virtual ~Creature() override; virtual void Initialize() override; diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index 23658363..d2364e5e 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -889,3 +889,28 @@ bool HeroAgent::InternalUseSkill(int skill_id, int& wait_time) } return false; } + +bool HeroAgent::HasObserver() +{ + return owner_->IsHuman() && owner_->AsHuman()->HasObserver(); +} + +int HeroAgent::GetAliveEnemyNum() +{ + +} + +int HeroAgent::GetLastShotPassTime() +{ + +} + +int HeroAgent::GetLastUseSkillPassTime() +{ + +} + +int HeroAgent::GetLastAttackPassTime() +{ + +} diff --git a/server/gameserver/hero_agent.h b/server/gameserver/hero_agent.h index 1c10db9e..8b3ca719 100644 --- a/server/gameserver/hero_agent.h +++ b/server/gameserver/hero_agent.h @@ -73,6 +73,11 @@ public: std::string GetSkillBtFile(); void Abort(behaviac::string msg, behaviac::vector args); bool HasUseableSkill(); + bool HasObserver(); + int GetAliveEnemyNum(); + int GetLastShotPassTime(); + int GetLastUseSkillPassTime(); + int GetLastAttackPassTime(); 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 fa3e410f..45365139 100644 --- a/server/gameserver/target_agent.cc +++ b/server/gameserver/target_agent.cc @@ -99,3 +99,8 @@ void TargetAgent::SetTarget(Creature* target) { target_ = target->GetWeakPtrRef(); } + +void TargetAgent::ClearAbandon() +{ + +} diff --git a/server/gameserver/target_agent.h b/server/gameserver/target_agent.h index 79a25285..87ea79c2 100644 --- a/server/gameserver/target_agent.h +++ b/server/gameserver/target_agent.h @@ -23,6 +23,7 @@ public: int GetLevel(); void Abandon(int time); float GetShotRange(); + void ClearAbandon(); void SetOwner(Creature* owner); void SetTarget(Creature* target);