This commit is contained in:
aozhiwei 2023-10-20 12:03:00 +08:00
parent 68b2cd7df5
commit 095d457929
3 changed files with 19 additions and 5 deletions

View File

@ -633,7 +633,7 @@ namespace behaviac
virtual bool load()
{
AgentMeta::SetTotalSignature(3678235158u);
AgentMeta::SetTotalSignature(599093140u);
AgentMeta* meta = NULL;
BEHAVIAC_UNUSED_VAR(meta);
@ -731,7 +731,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// HeroAgent
meta = BEHAVIAC_NEW AgentMeta(506990544u);
meta = BEHAVIAC_NEW AgentMeta(326413350u);
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));
@ -837,6 +837,7 @@ namespace behaviac
meta->RegisterMethod(1576005918u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_StayPutAttack) /* StayPutAttack */);
meta->RegisterMethod(179831127u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_TargetInShotRange));
meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_TeammateHelpAttack) /* TeammateHelpAttack */);
meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_HeroAgent_UseNormalSkill) /* UseNormalSkill */);
meta->RegisterMethod(657339709u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_HeroAgent_UseSkill30100) /* UseSkill30100 */);
meta->RegisterMethod(899390163u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_HeroAgent_UseSkill30200) /* UseSkill30200 */);
meta->RegisterMethod(2368208310u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_HeroAgent_UseSkill30300) /* UseSkill30300 */);
@ -854,7 +855,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// AndroidAgent
meta = BEHAVIAC_NEW AgentMeta(154689564u);
meta = BEHAVIAC_NEW AgentMeta(2572573168u);
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));
@ -961,6 +962,7 @@ namespace behaviac
meta->RegisterMethod(1576005918u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_StayPutAttack) /* StayPutAttack */);
meta->RegisterMethod(179831127u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_TargetInShotRange));
meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_TeammateHelpAttack) /* TeammateHelpAttack */);
meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_AndroidAgent_UseNormalSkill) /* UseNormalSkill */);
meta->RegisterMethod(657339709u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_AndroidAgent_UseSkill30100) /* UseSkill30100 */);
meta->RegisterMethod(899390163u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_AndroidAgent_UseSkill30200) /* UseSkill30200 */);
meta->RegisterMethod(2368208310u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_AndroidAgent_UseSkill30300) /* UseSkill30300 */);

View File

@ -205,6 +205,7 @@ namespace behaviac
inline void FunctionPointer_HeroAgent_StayPutAttack(Agent* self) { } /* StayPutAttack */
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_UseNormalSkill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseNormalSkill */
inline void FunctionPointer_HeroAgent_UseSkill30100(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseSkill30100 */
inline void FunctionPointer_HeroAgent_UseSkill30200(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseSkill30200 */
inline void FunctionPointer_HeroAgent_UseSkill30300(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseSkill30300 */
@ -287,6 +288,7 @@ namespace behaviac
inline void FunctionPointer_AndroidAgent_StayPutAttack(Agent* self) { } /* StayPutAttack */
inline bool FunctionPointer_AndroidAgent_TargetInShotRange(Agent* self) { return (bool)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); }
inline void FunctionPointer_AndroidAgent_TeammateHelpAttack(Agent* self) { } /* TeammateHelpAttack */
inline void FunctionPointer_AndroidAgent_UseNormalSkill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseNormalSkill */
inline void FunctionPointer_AndroidAgent_UseSkill30100(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseSkill30100 */
inline void FunctionPointer_AndroidAgent_UseSkill30200(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseSkill30200 */
inline void FunctionPointer_AndroidAgent_UseSkill30300(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseSkill30300 */

View File

@ -833,8 +833,12 @@ Skill* Creature::GetSkill(int skill_id)
break;
case 1:
{
for (auto& pair : skill_hash_) {
if (!pair.second->IsMainSkill()) {
return pair.second.get();
}
}
return nullptr;
//return GetMainSkill();
}
break;
default:
@ -851,7 +855,8 @@ Skill* Creature::GetSkill(int skill_id)
bool Creature::HasUseableSkill()
{
for (auto& pair : skill_hash_) {
if (InternalCanUseSkill(pair.second.get())) {
if (pair.second->IsMainSkill() &&
InternalCanUseSkill(pair.second.get())) {
return true;
}
}
@ -869,6 +874,11 @@ bool Creature::CanUseSkill(int skill_id)
bool Creature::InternalCanUseSkill(Skill* skill)
{
#if 1
if (!skill->IsMainSkill()) {
return false;
}
#endif
if (skill->GetCurrTimes() <= 0) {
return false;
}