diff --git a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h index 4fc3fe43..308c2c5f 100644 --- a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h +++ b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_member_visitor.h @@ -22,6 +22,12 @@ template<> inline bool BaseAgent::_Execute_Method_BaseAgent::HasTarget(p0); } +struct METHOD_TYPE_BaseAgent_SetBulletTraceMode { }; +template<> inline void BaseAgent::_Execute_Method_(bool p0) +{ + this->BaseAgent::SetBulletTraceMode(p0); +} + struct METHOD_TYPE_AndroidAgent_DoRandomShot { }; template<> inline behaviac::EBTStatus AndroidAgent::_Execute_Method_() 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 c81e0f74..27bcb59d 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 @@ -237,7 +237,7 @@ namespace behaviac virtual bool load() { - AgentMeta::SetTotalSignature(3970666413u); + AgentMeta::SetTotalSignature(3390921950u); AgentMeta* meta = NULL; BEHAVIAC_UNUSED_VAR(meta); @@ -253,14 +253,16 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // BaseAgent - meta = BEHAVIAC_NEW AgentMeta(4035532781u); + meta = BEHAVIAC_NEW AgentMeta(1368386266u); AgentMeta::GetAgentMetas()[2774251291u] = meta; meta->RegisterMethod(623091365u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_BaseAgent_CoAttackTarget)); + meta->RegisterMethod(32551668u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_BaseAgent_GetAttackRange)); meta->RegisterMethod(3603629747u, BEHAVIAC_NEW CAgentMethod_1< bool, int >(FunctionPointer_BaseAgent_HasBuffEffect)); meta->RegisterMethod(3047011226u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_BaseAgent_HasTarget)); meta->RegisterMethod(400482748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_BaseAgent_IsGameOver)); meta->RegisterMethod(1045109914u, BEHAVIAC_NEW CAgentStaticMethodVoid_1(FunctionPointer_BaseAgent_LogMessage)); meta->RegisterMethod(3111585017u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_BaseAgent_OnAttacked) /* OnAttacked */); + meta->RegisterMethod(1800373320u, BEHAVIAC_NEW CAgentMethodVoid_1(FunctionPointer_BaseAgent_SetBulletTraceMode)); meta->RegisterMethod(2521019022u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorAdd()); meta->RegisterMethod(2306090221u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorClear()); meta->RegisterMethod(3483755530u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorContains()); @@ -268,7 +270,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // AndroidAgent - meta = BEHAVIAC_NEW AgentMeta(3677158988u); + meta = BEHAVIAC_NEW AgentMeta(292883366u); AgentMeta::GetAgentMetas()[2475098143u] = meta; meta->RegisterMethod(623091365u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_AndroidAgent_CoAttackTarget)); meta->RegisterMethod(2886181657u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_DoAttack)); @@ -276,12 +278,14 @@ namespace behaviac meta->RegisterMethod(846782702u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_DoPursuit)); meta->RegisterMethod(1079343198u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_DoRandomShot)); meta->RegisterMethod(130097619u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_DoRandomWalk)); + meta->RegisterMethod(32551668u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetAttackRange)); meta->RegisterMethod(1666360340u, BEHAVIAC_NEW CAgentMethod< State_e >(FunctionPointer_AndroidAgent_GetState)); meta->RegisterMethod(3603629747u, BEHAVIAC_NEW CAgentMethod_1< bool, int >(FunctionPointer_AndroidAgent_HasBuffEffect)); meta->RegisterMethod(3047011226u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_AndroidAgent_HasTarget)); meta->RegisterMethod(400482748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_IsGameOver)); meta->RegisterMethod(1045109914u, BEHAVIAC_NEW CAgentStaticMethodVoid_1(FunctionPointer_AndroidAgent_LogMessage)); meta->RegisterMethod(3111585017u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_AndroidAgent_OnAttacked) /* OnAttacked */); + meta->RegisterMethod(1800373320u, BEHAVIAC_NEW CAgentMethodVoid_1(FunctionPointer_AndroidAgent_SetBulletTraceMode)); meta->RegisterMethod(2521019022u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorAdd()); meta->RegisterMethod(2306090221u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorClear()); meta->RegisterMethod(3483755530u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorContains()); @@ -289,19 +293,23 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // HeroAgent - meta = BEHAVIAC_NEW AgentMeta(2036826139u); + meta = BEHAVIAC_NEW AgentMeta(92585751u); AgentMeta::GetAgentMetas()[2270112014u] = meta; meta->RegisterMethod(623091365u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_HeroAgent_CoAttackTarget)); meta->RegisterMethod(2886181657u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoAttack)); + meta->RegisterMethod(2719091146u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_HeroAgent_DoHelpAttack)); meta->RegisterMethod(2062982811u, BEHAVIAC_NEW CAgentMethod_2< EBTStatus, int, int >(FunctionPointer_HeroAgent_DoIdle)); meta->RegisterMethod(846782702u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoPursuit)); meta->RegisterMethod(1079343198u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoRandomShot)); meta->RegisterMethod(130097619u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoRandomWalk)); + meta->RegisterMethod(32551668u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetAttackRange)); meta->RegisterMethod(3603629747u, BEHAVIAC_NEW CAgentMethod_1< bool, int >(FunctionPointer_HeroAgent_HasBuffEffect)); meta->RegisterMethod(3047011226u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_HeroAgent_HasTarget)); meta->RegisterMethod(400482748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_IsGameOver)); meta->RegisterMethod(1045109914u, BEHAVIAC_NEW CAgentStaticMethodVoid_1(FunctionPointer_HeroAgent_LogMessage)); meta->RegisterMethod(3111585017u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_HeroAgent_OnAttacked) /* OnAttacked */); + meta->RegisterMethod(4113176194u, BEHAVIAC_NEW CAgentMethodVoid_1(FunctionPointer_HeroAgent_OnMasterAttackTarget) /* OnMasterAttackTarget */); + meta->RegisterMethod(1800373320u, BEHAVIAC_NEW CAgentMethodVoid_1(FunctionPointer_HeroAgent_SetBulletTraceMode)); meta->RegisterMethod(2521019022u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorAdd()); meta->RegisterMethod(2306090221u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorClear()); meta->RegisterMethod(3483755530u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorContains()); 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 ab1fb200..3c496eac 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 @@ -17,33 +17,41 @@ namespace behaviac inline void FunctionPointer_behaviac_Agent_LogMessage(char* param0) { behaviac::Agent::LogMessage(param0); } inline behaviac::EBTStatus FunctionPointer_BaseAgent_CoAttackTarget(Agent* self, int target_id) { return ((BaseAgent*)self)->CoAttackTarget(target_id); } + inline float FunctionPointer_BaseAgent_GetAttackRange(Agent* self) { return ((BaseAgent*)self)->GetAttackRange(); } inline bool FunctionPointer_BaseAgent_HasBuffEffect(Agent* self, int buff_effect) { return (bool)((BaseAgent*)self)->_Execute_Method_(buff_effect); } inline bool FunctionPointer_BaseAgent_HasTarget(Agent* self, float range) { return (bool)((BaseAgent*)self)->_Execute_Method_(range); } inline bool FunctionPointer_BaseAgent_IsGameOver(Agent* self) { return ((BaseAgent*)self)->IsGameOver(); } inline void FunctionPointer_BaseAgent_LogMessage(char* param0) { BaseAgent::LogMessage(param0); } inline void FunctionPointer_BaseAgent_OnAttacked(Agent* self, int sender, int time) { } /* OnAttacked */ + inline void FunctionPointer_BaseAgent_SetBulletTraceMode(Agent* self, bool mode) { ((BaseAgent*)self)->_Execute_Method_(mode); } inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoAttackTarget(Agent* self, int target_id) { return ((AndroidAgent*)self)->CoAttackTarget(target_id); } inline behaviac::EBTStatus FunctionPointer_AndroidAgent_DoAttack(Agent* self) { return ((AndroidAgent*)self)->DoAttack(); } inline behaviac::EBTStatus FunctionPointer_AndroidAgent_DoIdle(Agent* self, int min_time, int max_time) { return ((AndroidAgent*)self)->DoIdle(min_time, max_time); } inline behaviac::EBTStatus FunctionPointer_AndroidAgent_DoPursuit(Agent* self) { return ((AndroidAgent*)self)->DoPursuit(); } inline behaviac::EBTStatus FunctionPointer_AndroidAgent_DoRandomShot(Agent* self) { return (behaviac::EBTStatus)((AndroidAgent*)self)->_Execute_Method_(); } inline behaviac::EBTStatus FunctionPointer_AndroidAgent_DoRandomWalk(Agent* self) { return ((AndroidAgent*)self)->DoRandomWalk(); } + inline float FunctionPointer_AndroidAgent_GetAttackRange(Agent* self) { return ((AndroidAgent*)self)->GetAttackRange(); } inline State_e FunctionPointer_AndroidAgent_GetState(Agent* self) { return (State_e)((AndroidAgent*)self)->_Execute_Method_(); } inline bool FunctionPointer_AndroidAgent_HasBuffEffect(Agent* self, int buff_effect) { return (bool)((BaseAgent*)self)->_Execute_Method_(buff_effect); } inline bool FunctionPointer_AndroidAgent_HasTarget(Agent* self, float range) { return (bool)((BaseAgent*)self)->_Execute_Method_(range); } inline bool FunctionPointer_AndroidAgent_IsGameOver(Agent* self) { return ((AndroidAgent*)self)->IsGameOver(); } inline void FunctionPointer_AndroidAgent_LogMessage(char* param0) { AndroidAgent::LogMessage(param0); } inline void FunctionPointer_AndroidAgent_OnAttacked(Agent* self, int sender, int time) { } /* OnAttacked */ + inline void FunctionPointer_AndroidAgent_SetBulletTraceMode(Agent* self, bool mode) { ((BaseAgent*)self)->_Execute_Method_(mode); } inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoAttackTarget(Agent* self, int target_id) { return ((HeroAgent*)self)->CoAttackTarget(target_id); } inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoAttack(Agent* self) { return (behaviac::EBTStatus)((HeroAgent*)self)->_Execute_Method_(); } + inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoHelpAttack(Agent* self, int target_uniid) { return ((HeroAgent*)self)->DoHelpAttack(target_uniid); } inline EBTStatus FunctionPointer_HeroAgent_DoIdle(Agent* self, int min_time, int max_time) { return ((HeroAgent*)self)->DoIdle(min_time, max_time); } inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoPursuit(Agent* self) { return ((HeroAgent*)self)->DoPursuit(); } inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoRandomShot(Agent* self) { return ((HeroAgent*)self)->DoRandomShot(); } inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoRandomWalk(Agent* self) { return ((HeroAgent*)self)->DoRandomWalk(); } + inline float FunctionPointer_HeroAgent_GetAttackRange(Agent* self) { return ((HeroAgent*)self)->GetAttackRange(); } inline bool FunctionPointer_HeroAgent_HasBuffEffect(Agent* self, int buff_effect) { return (bool)((BaseAgent*)self)->_Execute_Method_(buff_effect); } inline bool FunctionPointer_HeroAgent_HasTarget(Agent* self, float range) { return (bool)((BaseAgent*)self)->_Execute_Method_(range); } inline bool FunctionPointer_HeroAgent_IsGameOver(Agent* self) { return ((HeroAgent*)self)->IsGameOver(); } inline void FunctionPointer_HeroAgent_LogMessage(char* param0) { HeroAgent::LogMessage(param0); } inline void FunctionPointer_HeroAgent_OnAttacked(Agent* self, int sender, int time) { } /* OnAttacked */ + inline void FunctionPointer_HeroAgent_OnMasterAttackTarget(Agent* self, int target_uniid) { } /* OnMasterAttackTarget */ + inline void FunctionPointer_HeroAgent_SetBulletTraceMode(Agent* self, bool mode) { ((BaseAgent*)self)->_Execute_Method_(mode); } } #endif // _BEHAVIAC_AGENT_PROPERTIES_H_ diff --git a/server/bin/exported/hero_9011.xml b/server/bin/exported/hero_9011.xml index f4d3f735..4c29b7a8 100644 --- a/server/bin/exported/hero_9011.xml +++ b/server/bin/exported/hero_9011.xml @@ -8,9 +8,21 @@ - - - + + + + + + + + + + + + + + + diff --git a/server/bin/exported/meta/game2006.meta.xml b/server/bin/exported/meta/game2006.meta.xml index 68dccb5c..e74855b1 100644 --- a/server/bin/exported/meta/game2006.meta.xml +++ b/server/bin/exported/meta/game2006.meta.xml @@ -1,3 +1,3 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/server/gameserver/base_agent.cc b/server/gameserver/base_agent.cc index e7481a0d..bc125f1e 100644 --- a/server/gameserver/base_agent.cc +++ b/server/gameserver/base_agent.cc @@ -179,3 +179,13 @@ bool BaseAgent::HasBuffEffect(int buff_effect) { return owner_->HasBuffEffect(buff_effect); } + +float BaseAgent::GetAttackRange() +{ + return 0.0f; +} + +void BaseAgent::SetBulletTraceMode(bool mode) +{ + bullet_trace_mode_ = mode; +} diff --git a/server/gameserver/base_agent.h b/server/gameserver/base_agent.h index ee2abf8a..38b272b5 100644 --- a/server/gameserver/base_agent.h +++ b/server/gameserver/base_agent.h @@ -18,6 +18,8 @@ public: bool IsGameOver(); bool HasTarget(float range); bool HasBuffEffect(int buff_effect); + float GetAttackRange(); + void SetBulletTraceMode(bool mode); behaviac::EBTStatus CoAttackTarget(int target_id); @@ -43,4 +45,5 @@ protected: private: Creature* owner_ = nullptr; + bool bullet_trace_mode_ = false; }; diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index f7325261..1773149b 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -325,3 +325,8 @@ behaviac::EBTStatus HeroAgent::DoPursuit() "CoPursuit" ); } + +behaviac::EBTStatus HeroAgent::DoHelpAttack(int target_uniid) +{ + +} diff --git a/server/gameserver/hero_agent.h b/server/gameserver/hero_agent.h index 1b3a9e3a..38013547 100644 --- a/server/gameserver/hero_agent.h +++ b/server/gameserver/hero_agent.h @@ -19,6 +19,7 @@ public: behaviac::EBTStatus DoRandomShot(); behaviac::EBTStatus DoAttack(); behaviac::EBTStatus DoPursuit(); + behaviac::EBTStatus DoHelpAttack(int target_uniid); private: Hero* owner_ = nullptr;