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 c21aedce..3c15ba86 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(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(FunctionPointer_HeroAgent_UseNormalSkill) /* UseNormalSkill */); meta->RegisterMethod(657339709u, BEHAVIAC_NEW CAgentMethodVoid_3(FunctionPointer_HeroAgent_UseSkill30100) /* UseSkill30100 */); meta->RegisterMethod(899390163u, BEHAVIAC_NEW CAgentMethodVoid_3(FunctionPointer_HeroAgent_UseSkill30200) /* UseSkill30200 */); meta->RegisterMethod(2368208310u, BEHAVIAC_NEW CAgentMethodVoid_3(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(FunctionPointer_AndroidAgent_UseNormalSkill) /* UseNormalSkill */); meta->RegisterMethod(657339709u, BEHAVIAC_NEW CAgentMethodVoid_3(FunctionPointer_AndroidAgent_UseSkill30100) /* UseSkill30100 */); meta->RegisterMethod(899390163u, BEHAVIAC_NEW CAgentMethodVoid_3(FunctionPointer_AndroidAgent_UseSkill30200) /* UseSkill30200 */); meta->RegisterMethod(2368208310u, BEHAVIAC_NEW CAgentMethodVoid_3(FunctionPointer_AndroidAgent_UseSkill30300) /* UseSkill30300 */); 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 e661df4f..bb3b6e7f 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 @@ -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_(); } 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_(); } 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 */ diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 29431411..0a68511a 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -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; }