This commit is contained in:
aozhiwei 2023-10-18 22:20:42 +08:00
parent de01061484
commit ec99395b32
4 changed files with 34 additions and 8 deletions

View File

@ -633,7 +633,7 @@ namespace behaviac
virtual bool load() virtual bool load()
{ {
AgentMeta::SetTotalSignature(86377453u); AgentMeta::SetTotalSignature(3615713885u);
AgentMeta* meta = NULL; AgentMeta* meta = NULL;
BEHAVIAC_UNUSED_VAR(meta); BEHAVIAC_UNUSED_VAR(meta);
@ -731,7 +731,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// HeroAgent // HeroAgent
meta = BEHAVIAC_NEW AgentMeta(2900806213u); meta = BEHAVIAC_NEW AgentMeta(2631666376u);
AgentMeta::GetAgentMetas()[2270112014u] = meta; 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(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)); meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent));
@ -759,6 +759,7 @@ namespace behaviac
meta->RegisterMemberProperty(3112816101u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val2", Set_HeroAgent_tmp_val2, Get_HeroAgent_tmp_val2)); meta->RegisterMemberProperty(3112816101u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val2", Set_HeroAgent_tmp_val2, Get_HeroAgent_tmp_val2));
meta->RegisterMemberProperty(2693987492u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val3", Set_HeroAgent_tmp_val3, Get_HeroAgent_tmp_val3)); meta->RegisterMemberProperty(2693987492u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val3", Set_HeroAgent_tmp_val3, Get_HeroAgent_tmp_val3));
meta->RegisterMemberProperty(4023609955u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val4", Set_HeroAgent_tmp_val4, Get_HeroAgent_tmp_val4)); meta->RegisterMemberProperty(4023609955u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val4", Set_HeroAgent_tmp_val4, Get_HeroAgent_tmp_val4));
meta->RegisterMethod(3724946699u, BEHAVIAC_NEW CAgentMethodVoid_1<glm::vec3&>(FunctionPointer_HeroAgent_BattleMove) /* BattleMove */);
meta->RegisterMethod(113953652u, BEHAVIAC_NEW CMethod_HeroAgent_CalcDistance()); meta->RegisterMethod(113953652u, BEHAVIAC_NEW CMethod_HeroAgent_CalcDistance());
meta->RegisterMethod(896336728u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_CanShot)); meta->RegisterMethod(896336728u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_CanShot));
meta->RegisterMethod(1672911688u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_CanUseSkill)); meta->RegisterMethod(1672911688u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_CanUseSkill));
@ -790,6 +791,7 @@ namespace behaviac
meta->RegisterMethod(138556770u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetShotRange)); meta->RegisterMethod(138556770u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetShotRange));
meta->RegisterMethod(3821163497u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetShotTimes)); meta->RegisterMethod(3821163497u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetShotTimes));
meta->RegisterMethod(2253976520u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_HeroAgent_GetTargetDir)); meta->RegisterMethod(2253976520u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_HeroAgent_GetTargetDir));
meta->RegisterMethod(2804704472u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetTargetManhattanDistance));
meta->RegisterMethod(2541118574u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetTickCount)); meta->RegisterMethod(2541118574u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetTickCount));
meta->RegisterMethod(1866966855u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetUniId)); meta->RegisterMethod(1866966855u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetUniId));
meta->RegisterMethod(4271568288u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetUseSkillTimes)); meta->RegisterMethod(4271568288u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetUseSkillTimes));
@ -839,7 +841,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// AndroidAgent // AndroidAgent
meta = BEHAVIAC_NEW AgentMeta(1528429479u); meta = BEHAVIAC_NEW AgentMeta(849376509u);
AgentMeta::GetAgentMetas()[2475098143u] = meta; 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(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)); meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent));
@ -867,6 +869,7 @@ namespace behaviac
meta->RegisterMemberProperty(3112816101u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val2", Set_HeroAgent_tmp_val2, Get_HeroAgent_tmp_val2)); meta->RegisterMemberProperty(3112816101u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val2", Set_HeroAgent_tmp_val2, Get_HeroAgent_tmp_val2));
meta->RegisterMemberProperty(2693987492u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val3", Set_HeroAgent_tmp_val3, Get_HeroAgent_tmp_val3)); meta->RegisterMemberProperty(2693987492u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val3", Set_HeroAgent_tmp_val3, Get_HeroAgent_tmp_val3));
meta->RegisterMemberProperty(4023609955u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val4", Set_HeroAgent_tmp_val4, Get_HeroAgent_tmp_val4)); meta->RegisterMemberProperty(4023609955u, BEHAVIAC_NEW CMemberProperty< float >("tmp_val4", Set_HeroAgent_tmp_val4, Get_HeroAgent_tmp_val4));
meta->RegisterMethod(3724946699u, BEHAVIAC_NEW CAgentMethodVoid_1<glm::vec3&>(FunctionPointer_AndroidAgent_BattleMove) /* BattleMove */);
meta->RegisterMethod(113953652u, BEHAVIAC_NEW CMethod_HeroAgent_CalcDistance()); meta->RegisterMethod(113953652u, BEHAVIAC_NEW CMethod_HeroAgent_CalcDistance());
meta->RegisterMethod(896336728u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_CanShot)); meta->RegisterMethod(896336728u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_CanShot));
meta->RegisterMethod(1672911688u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_CanUseSkill)); meta->RegisterMethod(1672911688u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_CanUseSkill));
@ -899,6 +902,7 @@ namespace behaviac
meta->RegisterMethod(138556770u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetShotRange)); meta->RegisterMethod(138556770u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetShotRange));
meta->RegisterMethod(3821163497u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetShotTimes)); meta->RegisterMethod(3821163497u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetShotTimes));
meta->RegisterMethod(2253976520u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_AndroidAgent_GetTargetDir)); meta->RegisterMethod(2253976520u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_AndroidAgent_GetTargetDir));
meta->RegisterMethod(2804704472u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetTargetManhattanDistance));
meta->RegisterMethod(2541118574u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetTickCount)); meta->RegisterMethod(2541118574u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetTickCount));
meta->RegisterMethod(1866966855u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetUniId)); meta->RegisterMethod(1866966855u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetUniId));
meta->RegisterMethod(4271568288u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetUseSkillTimes)); meta->RegisterMethod(4271568288u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetUseSkillTimes));

View File

@ -134,6 +134,7 @@ namespace behaviac
inline void Set_HeroAgent_tmp_val4(Agent* self, float value) { ((HeroAgent*)self)->tmp_val4 = value; }; inline void Set_HeroAgent_tmp_val4(Agent* self, float value) { ((HeroAgent*)self)->tmp_val4 = value; };
inline const void* Get_HeroAgent_tmp_val4(Agent* self) { return &((HeroAgent*)self)->tmp_val4; }; inline const void* Get_HeroAgent_tmp_val4(Agent* self) { return &((HeroAgent*)self)->tmp_val4; };
inline void FunctionPointer_HeroAgent_BattleMove(Agent* self, glm::vec3& loc_point0) { } /* BattleMove */
inline bool FunctionPointer_HeroAgent_CanShot(Agent* self) { return ((HeroAgent*)self)->CanShot(); } inline bool FunctionPointer_HeroAgent_CanShot(Agent* self) { return ((HeroAgent*)self)->CanShot(); }
inline bool FunctionPointer_HeroAgent_CanUseSkill(Agent* self) { return ((HeroAgent*)self)->CanUseSkill(); } inline bool FunctionPointer_HeroAgent_CanUseSkill(Agent* self) { return ((HeroAgent*)self)->CanUseSkill(); }
inline void FunctionPointer_HeroAgent_ChaseToKill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* ChaseToKill */ inline void FunctionPointer_HeroAgent_ChaseToKill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* ChaseToKill */
@ -162,6 +163,7 @@ namespace behaviac
inline float FunctionPointer_HeroAgent_GetShotRange(Agent* self) { return ((HeroAgent*)self)->GetShotRange(); } inline float FunctionPointer_HeroAgent_GetShotRange(Agent* self) { return ((HeroAgent*)self)->GetShotRange(); }
inline int FunctionPointer_HeroAgent_GetShotTimes(Agent* self) { return ((HeroAgent*)self)->GetShotTimes(); } inline int FunctionPointer_HeroAgent_GetShotTimes(Agent* self) { return ((HeroAgent*)self)->GetShotTimes(); }
inline glm::vec3 FunctionPointer_HeroAgent_GetTargetDir(Agent* self) { return ((HeroAgent*)self)->GetTargetDir(); } inline glm::vec3 FunctionPointer_HeroAgent_GetTargetDir(Agent* self) { return ((HeroAgent*)self)->GetTargetDir(); }
inline float FunctionPointer_HeroAgent_GetTargetManhattanDistance(Agent* self) { return ((HeroAgent*)self)->GetTargetManhattanDistance(); }
inline int FunctionPointer_HeroAgent_GetTickCount(Agent* self) { return ((HeroAgent*)self)->GetTickCount(); } inline int FunctionPointer_HeroAgent_GetTickCount(Agent* self) { return ((HeroAgent*)self)->GetTickCount(); }
inline int FunctionPointer_HeroAgent_GetUniId(Agent* self) { return ((HeroAgent*)self)->GetUniId(); } inline int FunctionPointer_HeroAgent_GetUniId(Agent* self) { return ((HeroAgent*)self)->GetUniId(); }
inline int FunctionPointer_HeroAgent_GetUseSkillTimes(Agent* self) { return ((HeroAgent*)self)->GetUseSkillTimes(); } inline int FunctionPointer_HeroAgent_GetUseSkillTimes(Agent* self) { return ((HeroAgent*)self)->GetUseSkillTimes(); }
@ -200,6 +202,7 @@ namespace behaviac
inline bool FunctionPointer_HeroAgent_TargetInShotRange(Agent* self) { return (bool)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); } inline bool FunctionPointer_HeroAgent_TargetInShotRange(Agent* self) { return (bool)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); }
inline void FunctionPointer_HeroAgent_TeammateHelpAttack(Agent* self) { } /* TeammateHelpAttack */ inline void FunctionPointer_HeroAgent_TeammateHelpAttack(Agent* self) { } /* TeammateHelpAttack */
inline void FunctionPointer_HeroAgent_UseSkill(Agent* self, int skill_id) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_UseSkill, void, int >(skill_id); } inline void FunctionPointer_HeroAgent_UseSkill(Agent* self, int skill_id) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_UseSkill, void, int >(skill_id); }
inline void FunctionPointer_AndroidAgent_BattleMove(Agent* self, glm::vec3& loc_point0) { } /* BattleMove */
inline bool FunctionPointer_AndroidAgent_CanShot(Agent* self) { return ((AndroidAgent*)self)->CanShot(); } inline bool FunctionPointer_AndroidAgent_CanShot(Agent* self) { return ((AndroidAgent*)self)->CanShot(); }
inline bool FunctionPointer_AndroidAgent_CanUseSkill(Agent* self) { return ((AndroidAgent*)self)->CanUseSkill(); } inline bool FunctionPointer_AndroidAgent_CanUseSkill(Agent* self) { return ((AndroidAgent*)self)->CanUseSkill(); }
inline void FunctionPointer_AndroidAgent_ChaseToKill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* ChaseToKill */ inline void FunctionPointer_AndroidAgent_ChaseToKill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* ChaseToKill */
@ -229,6 +232,7 @@ namespace behaviac
inline float FunctionPointer_AndroidAgent_GetShotRange(Agent* self) { return ((AndroidAgent*)self)->GetShotRange(); } inline float FunctionPointer_AndroidAgent_GetShotRange(Agent* self) { return ((AndroidAgent*)self)->GetShotRange(); }
inline int FunctionPointer_AndroidAgent_GetShotTimes(Agent* self) { return ((AndroidAgent*)self)->GetShotTimes(); } inline int FunctionPointer_AndroidAgent_GetShotTimes(Agent* self) { return ((AndroidAgent*)self)->GetShotTimes(); }
inline glm::vec3 FunctionPointer_AndroidAgent_GetTargetDir(Agent* self) { return ((AndroidAgent*)self)->GetTargetDir(); } inline glm::vec3 FunctionPointer_AndroidAgent_GetTargetDir(Agent* self) { return ((AndroidAgent*)self)->GetTargetDir(); }
inline float FunctionPointer_AndroidAgent_GetTargetManhattanDistance(Agent* self) { return ((AndroidAgent*)self)->GetTargetManhattanDistance(); }
inline int FunctionPointer_AndroidAgent_GetTickCount(Agent* self) { return ((AndroidAgent*)self)->GetTickCount(); } inline int FunctionPointer_AndroidAgent_GetTickCount(Agent* self) { return ((AndroidAgent*)self)->GetTickCount(); }
inline int FunctionPointer_AndroidAgent_GetUniId(Agent* self) { return ((AndroidAgent*)self)->GetUniId(); } inline int FunctionPointer_AndroidAgent_GetUniId(Agent* self) { return ((AndroidAgent*)self)->GetUniId(); }
inline int FunctionPointer_AndroidAgent_GetUseSkillTimes(Agent* self) { return ((AndroidAgent*)self)->GetUseSkillTimes(); } inline int FunctionPointer_AndroidAgent_GetUseSkillTimes(Agent* self) { return ((AndroidAgent*)self)->GetUseSkillTimes(); }

View File

@ -144,7 +144,10 @@ int HeroAgent::GetLevel()
bool HeroAgent::CanShot() bool HeroAgent::CanShot()
{ {
return owner_->CanShot(false); if (owner_->GetActionType() == AT_Reload) {
return false;
}
return owner_->CanShot(true);
} }
bool HeroAgent::CanUseSkill() bool HeroAgent::CanUseSkill()
@ -207,8 +210,12 @@ glm::vec3 HeroAgent::GetRandomDir()
glm::vec3 HeroAgent::GetTargetDir() glm::vec3 HeroAgent::GetTargetDir()
{ {
if (current_target_agent->IsValid()) { if (!current_target_agent->IsValid()) {
return owner_->GetMoveDir(); return owner_->GetAttackDir();
}
if (GlmHelper::IsEqual2D(owner_->GetPos().ToGlmVec3(),
current_target_agent->GetPos())) {
return owner_->GetAttackDir();
} }
glm::vec3 dir = current_target_agent->GetPos() - owner_->GetPos().ToGlmVec3(); glm::vec3 dir = current_target_agent->GetPos() - owner_->GetPos().ToGlmVec3();
GlmHelper::Normalize(dir); GlmHelper::Normalize(dir);
@ -721,7 +728,7 @@ bool HeroAgent::TargetInShotRange()
if (!in_square) { if (!in_square) {
return false; return false;
} }
return shot_range < owner_->GetPos().DistanceGlmVec3(current_target_agent->GetPos()); return shot_range > owner_->GetPos().DistanceGlmVec3(current_target_agent->GetPos());
} }
bool HeroAgent::InTargetShotRange() bool HeroAgent::InTargetShotRange()
@ -737,7 +744,7 @@ bool HeroAgent::InTargetShotRange()
if (!in_square) { if (!in_square) {
return false; return false;
} }
return shot_range < owner_->GetPos().DistanceGlmVec3(current_target_agent->GetPos()); return shot_range > owner_->GetPos().DistanceGlmVec3(current_target_agent->GetPos());
} }
void HeroAgent::ResetShotTimes() void HeroAgent::ResetShotTimes()
@ -759,3 +766,13 @@ int HeroAgent::GetUseSkillTimes()
{ {
return 0; return 0;
} }
float HeroAgent::GetTargetManhattanDistance()
{
if (!current_target_agent->IsValid()) {
return 0;
}
Position pos;
pos.FromGlmVec3(current_target_agent->GetPos());
return owner_->GetPos().ManhattanDistance2D(pos);
}

View File

@ -88,6 +88,7 @@ public:
void ResetUseSkillTimes(); void ResetUseSkillTimes();
int GetShotTimes(); int GetShotTimes();
int GetUseSkillTimes(); int GetUseSkillTimes();
float GetTargetManhattanDistance();
behaviac::EBTStatus RegisterEvents(behaviac::vector<BtEvent_e> events); behaviac::EBTStatus RegisterEvents(behaviac::vector<BtEvent_e> events);
behaviac::EBTStatus SearchEnemy(float range); behaviac::EBTStatus SearchEnemy(float range);