diff --git a/server/bin/exported/android_attack_new.xml b/server/bin/exported/android_attack_new.xml
new file mode 100644
index 00000000..5be87b48
--- /dev/null
+++ b/server/bin/exported/android_attack_new.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/bin/exported/android_chase_to_kill.xml b/server/bin/exported/android_chase_to_kill.xml
new file mode 100644
index 00000000..9dfd7653
--- /dev/null
+++ b/server/bin/exported/android_chase_to_kill.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/bin/exported/android_craze_mode.xml b/server/bin/exported/android_craze_mode.xml
new file mode 100644
index 00000000..891ba49d
--- /dev/null
+++ b/server/bin/exported/android_craze_mode.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/bin/exported/android_pvp.xml b/server/bin/exported/android_pvp.xml
index d92a585b..635923ec 100644
--- a/server/bin/exported/android_pvp.xml
+++ b/server/bin/exported/android_pvp.xml
@@ -8,98 +8,83 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/server/bin/exported/android_run_gas.xml b/server/bin/exported/android_run_gas.xml
new file mode 100644
index 00000000..cc25921a
--- /dev/null
+++ b/server/bin/exported/android_run_gas.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
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 a007b2f0..7731b6d4 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
@@ -16,6 +16,12 @@ template<> inline bool BaseAgent::_Execute_Method_BaseAgent::CanUseSkill(p0);
}
+struct METHOD_TYPE_BaseAgent_CoShot { };
+template<> inline behaviac::EBTStatus BaseAgent::_Execute_Method_()
+{
+ return this->BaseAgent::CoShot();
+}
+
struct METHOD_TYPE_BaseAgent_CurrentTargetMoveCanReach { };
template<> inline bool BaseAgent::_Execute_Method_()
{
@@ -52,6 +58,12 @@ template<> inline bool BaseAgent::_Execute_Method_BaseAgent::HasTarget(p0);
}
+struct METHOD_TYPE_BaseAgent_IsNearGas { };
+template<> inline bool BaseAgent::_Execute_Method_(float p0)
+{
+ return this->BaseAgent::IsNearGas(p0);
+}
+
struct METHOD_TYPE_BaseAgent_MoveCanReach { };
template<> inline bool BaseAgent::_Execute_Method_(const glm::vec3& p0)
{
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 b7fef85c..f1b792b8 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
@@ -373,7 +373,7 @@ namespace behaviac
virtual bool load()
{
- AgentMeta::SetTotalSignature(3558395884u);
+ AgentMeta::SetTotalSignature(1804086084u);
AgentMeta* meta = NULL;
BEHAVIAC_UNUSED_VAR(meta);
@@ -396,7 +396,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// BaseAgent
- meta = BEHAVIAC_NEW AgentMeta(3706475328u);
+ meta = BEHAVIAC_NEW AgentMeta(2396599608u);
AgentMeta::GetAgentMetas()[2774251291u] = meta;
meta->RegisterMemberProperty(2916366392u, BEHAVIAC_NEW CMemberProperty< int >("find_enemy_target_uniid", Set_BaseAgent_find_enemy_target_uniid, Get_BaseAgent_find_enemy_target_uniid));
meta->RegisterMemberProperty(2276820502u, BEHAVIAC_NEW CMemberProperty< int >("selected_skill_id", Set_BaseAgent_selected_skill_id, Get_BaseAgent_selected_skill_id));
@@ -405,6 +405,8 @@ namespace behaviac
meta->RegisterMethod(623091365u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_BaseAgent_CoAttackTarget));
meta->RegisterMethod(1719017386u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_BaseAgent_CoFindPathToCurrentTarget));
meta->RegisterMethod(1290650388u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_BaseAgent_CoMoveToCurrentTarget));
+ meta->RegisterMethod(2073733328u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_BaseAgent_CoRunGas));
+ meta->RegisterMethod(2387086791u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_BaseAgent_CoShot));
meta->RegisterMethod(2039856097u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_BaseAgent_CurrentTargetIsValid));
meta->RegisterMethod(1047842467u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_BaseAgent_CurrentTargetMoveCanReach));
meta->RegisterMethod(2126763853u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_BaseAgent_DoSkill));
@@ -416,9 +418,12 @@ namespace behaviac
meta->RegisterMethod(221940739u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_BaseAgent_GetFindEnemyResultTargetPos));
meta->RegisterMethod(2424678062u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_BaseAgent_GetFindEnemyResultTargetUniId));
meta->RegisterMethod(3533946671u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_BaseAgent_GetPos));
+ meta->RegisterMethod(1369696888u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_BaseAgent_GetSafeAreaRadius));
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(1054489725u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_BaseAgent_IsDead));
meta->RegisterMethod(400482748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_BaseAgent_IsGameOver));
+ meta->RegisterMethod(550488892u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_BaseAgent_IsNearGas));
meta->RegisterMethod(1045109914u, BEHAVIAC_NEW CAgentStaticMethodVoid_1(FunctionPointer_BaseAgent_LogMessage));
meta->RegisterMethod(745495888u, BEHAVIAC_NEW CMethod_BaseAgent_MoveCanReach());
meta->RegisterMethod(3111585017u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_BaseAgent_OnAttacked) /* OnAttacked */);
@@ -433,7 +438,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// AndroidAgent
- meta = BEHAVIAC_NEW AgentMeta(683007333u);
+ meta = BEHAVIAC_NEW AgentMeta(1745853881u);
AgentMeta::GetAgentMetas()[2475098143u] = meta;
meta->RegisterCustomizedProperty(2916366392u, BEHAVIAC_NEW CCustomizedProperty< int >(2916366392u, "find_enemy_target_uniid", "0"));
meta->RegisterCustomizedProperty(2276820502u, BEHAVIAC_NEW CCustomizedProperty< int >(2276820502u, "selected_skill_id", "0"));
@@ -442,6 +447,8 @@ namespace behaviac
meta->RegisterMethod(623091365u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_AndroidAgent_CoAttackTarget));
meta->RegisterMethod(1719017386u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_AndroidAgent_CoFindPathToCurrentTarget));
meta->RegisterMethod(1290650388u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_AndroidAgent_CoMoveToCurrentTarget));
+ meta->RegisterMethod(2073733328u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_CoRunGas));
+ meta->RegisterMethod(2387086791u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_CoShot));
meta->RegisterMethod(2039856097u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_CurrentTargetIsValid));
meta->RegisterMethod(1047842467u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_CurrentTargetMoveCanReach));
meta->RegisterMethod(2886181657u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_DoAttack));
@@ -458,10 +465,15 @@ namespace behaviac
meta->RegisterMethod(221940739u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_AndroidAgent_GetFindEnemyResultTargetPos));
meta->RegisterMethod(2424678062u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_GetFindEnemyResultTargetUniId));
meta->RegisterMethod(3533946671u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_AndroidAgent_GetPos));
+ meta->RegisterMethod(1369696888u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_AndroidAgent_GetSafeAreaRadius));
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(3929552993u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_IsCrazeMode));
+ meta->RegisterMethod(509871274u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_IsCrazeModePrepareMode));
+ meta->RegisterMethod(1054489725u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_IsDead));
meta->RegisterMethod(400482748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_IsGameOver));
+ meta->RegisterMethod(550488892u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_AndroidAgent_IsNearGas));
meta->RegisterMethod(1045109914u, BEHAVIAC_NEW CAgentStaticMethodVoid_1(FunctionPointer_AndroidAgent_LogMessage));
meta->RegisterMethod(745495888u, BEHAVIAC_NEW CMethod_BaseAgent_MoveCanReach());
meta->RegisterMethod(3111585017u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_AndroidAgent_OnAttacked) /* OnAttacked */);
@@ -476,7 +488,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// HeroAgent
- meta = BEHAVIAC_NEW AgentMeta(3786131989u);
+ meta = BEHAVIAC_NEW AgentMeta(1118740210u);
AgentMeta::GetAgentMetas()[2270112014u] = meta;
meta->RegisterMemberProperty(2916366392u, BEHAVIAC_NEW CMemberProperty< int >("find_enemy_target_uniid", Set_BaseAgent_find_enemy_target_uniid, Get_BaseAgent_find_enemy_target_uniid));
meta->RegisterMemberProperty(2276820502u, BEHAVIAC_NEW CMemberProperty< int >("selected_skill_id", Set_BaseAgent_selected_skill_id, Get_BaseAgent_selected_skill_id));
@@ -485,6 +497,8 @@ namespace behaviac
meta->RegisterMethod(623091365u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_HeroAgent_CoAttackTarget));
meta->RegisterMethod(1719017386u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_HeroAgent_CoFindPathToCurrentTarget));
meta->RegisterMethod(1290650388u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_HeroAgent_CoMoveToCurrentTarget));
+ meta->RegisterMethod(2073733328u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_CoRunGas));
+ meta->RegisterMethod(2387086791u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_CoShot));
meta->RegisterMethod(2039856097u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_CurrentTargetIsValid));
meta->RegisterMethod(1047842467u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_CurrentTargetMoveCanReach));
meta->RegisterMethod(2886181657u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_DoAttack));
@@ -505,9 +519,12 @@ namespace behaviac
meta->RegisterMethod(2424678062u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetFindEnemyResultTargetUniId));
meta->RegisterMethod(3721974980u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetMasterDistance));
meta->RegisterMethod(3533946671u, BEHAVIAC_NEW CAgentMethod< glm::vec3 >(FunctionPointer_HeroAgent_GetPos));
+ meta->RegisterMethod(1369696888u, BEHAVIAC_NEW CAgentMethod< float >(FunctionPointer_HeroAgent_GetSafeAreaRadius));
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(1054489725u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_IsDead));
meta->RegisterMethod(400482748u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_IsGameOver));
+ meta->RegisterMethod(550488892u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_HeroAgent_IsNearGas));
meta->RegisterMethod(1045109914u, BEHAVIAC_NEW CAgentStaticMethodVoid_1(FunctionPointer_HeroAgent_LogMessage));
meta->RegisterMethod(745495888u, BEHAVIAC_NEW CMethod_BaseAgent_MoveCanReach());
meta->RegisterMethod(3111585017u, BEHAVIAC_NEW CAgentMethodVoid_2(FunctionPointer_HeroAgent_OnAttacked) /* OnAttacked */);
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 19cb431f..70f5c193 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
@@ -28,6 +28,8 @@ namespace behaviac
inline behaviac::EBTStatus FunctionPointer_BaseAgent_CoAttackTarget(Agent* self, int target_id) { return ((BaseAgent*)self)->CoAttackTarget(target_id); }
inline behaviac::EBTStatus FunctionPointer_BaseAgent_CoFindPathToCurrentTarget(Agent* self, float distance) { return ((BaseAgent*)self)->CoFindPathToCurrentTarget(distance); }
inline behaviac::EBTStatus FunctionPointer_BaseAgent_CoMoveToCurrentTarget(Agent* self, float distance) { return ((BaseAgent*)self)->CoMoveToCurrentTarget(distance); }
+ inline behaviac::EBTStatus FunctionPointer_BaseAgent_CoRunGas(Agent* self) { return ((BaseAgent*)self)->CoRunGas(); }
+ inline behaviac::EBTStatus FunctionPointer_BaseAgent_CoShot(Agent* self) { return (behaviac::EBTStatus)((BaseAgent*)self)->_Execute_Method_(); }
inline bool FunctionPointer_BaseAgent_CurrentTargetIsValid(Agent* self) { return ((BaseAgent*)self)->CurrentTargetIsValid(); }
inline bool FunctionPointer_BaseAgent_CurrentTargetMoveCanReach(Agent* self) { return (bool)((BaseAgent*)self)->_Execute_Method_(); }
inline behaviac::EBTStatus FunctionPointer_BaseAgent_DoSkill(Agent* self, int skill_id) { return (behaviac::EBTStatus)((BaseAgent*)self)->_Execute_Method_(skill_id); }
@@ -39,9 +41,12 @@ namespace behaviac
inline glm::vec3 FunctionPointer_BaseAgent_GetFindEnemyResultTargetPos(Agent* self) { return ((BaseAgent*)self)->GetFindEnemyResultTargetPos(); }
inline int FunctionPointer_BaseAgent_GetFindEnemyResultTargetUniId(Agent* self) { return ((BaseAgent*)self)->GetFindEnemyResultTargetUniId(); }
inline glm::vec3 FunctionPointer_BaseAgent_GetPos(Agent* self) { return (glm::vec3)((BaseAgent*)self)->_Execute_Method_(); }
+ inline float FunctionPointer_BaseAgent_GetSafeAreaRadius(Agent* self) { return ((BaseAgent*)self)->GetSafeAreaRadius(); }
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_IsDead(Agent* self) { return ((BaseAgent*)self)->IsDead(); }
inline bool FunctionPointer_BaseAgent_IsGameOver(Agent* self) { return ((BaseAgent*)self)->IsGameOver(); }
+ inline bool FunctionPointer_BaseAgent_IsNearGas(Agent* self, float distance) { return (bool)((BaseAgent*)self)->_Execute_Method_(distance); }
inline void FunctionPointer_BaseAgent_LogMessage(char* param0) { BaseAgent::LogMessage(param0); }
inline void FunctionPointer_BaseAgent_OnAttacked(Agent* self, int sender, int time) { } /* OnAttacked */
inline behaviac::EBTStatus FunctionPointer_BaseAgent_SelectUseableSkill(Agent* self, behaviac::vector skill_ids) { return (behaviac::EBTStatus)((BaseAgent*)self)->_Execute_Method_ >(skill_ids); }
@@ -52,6 +57,8 @@ namespace behaviac
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoAttackTarget(Agent* self, int target_id) { return ((AndroidAgent*)self)->CoAttackTarget(target_id); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoFindPathToCurrentTarget(Agent* self, float distance) { return ((AndroidAgent*)self)->CoFindPathToCurrentTarget(distance); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoMoveToCurrentTarget(Agent* self, float distance) { return ((AndroidAgent*)self)->CoMoveToCurrentTarget(distance); }
+ inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoRunGas(Agent* self) { return ((AndroidAgent*)self)->CoRunGas(); }
+ inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoShot(Agent* self) { return (behaviac::EBTStatus)((BaseAgent*)self)->_Execute_Method_(); }
inline bool FunctionPointer_AndroidAgent_CurrentTargetIsValid(Agent* self) { return ((AndroidAgent*)self)->CurrentTargetIsValid(); }
inline bool FunctionPointer_AndroidAgent_CurrentTargetMoveCanReach(Agent* self) { return (bool)((BaseAgent*)self)->_Execute_Method_(); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_DoAttack(Agent* self) { return ((AndroidAgent*)self)->DoAttack(); }
@@ -68,10 +75,15 @@ namespace behaviac
inline glm::vec3 FunctionPointer_AndroidAgent_GetFindEnemyResultTargetPos(Agent* self) { return ((AndroidAgent*)self)->GetFindEnemyResultTargetPos(); }
inline int FunctionPointer_AndroidAgent_GetFindEnemyResultTargetUniId(Agent* self) { return ((AndroidAgent*)self)->GetFindEnemyResultTargetUniId(); }
inline glm::vec3 FunctionPointer_AndroidAgent_GetPos(Agent* self) { return (glm::vec3)((BaseAgent*)self)->_Execute_Method_(); }
+ inline float FunctionPointer_AndroidAgent_GetSafeAreaRadius(Agent* self) { return ((AndroidAgent*)self)->GetSafeAreaRadius(); }
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_IsCrazeMode(Agent* self) { return ((AndroidAgent*)self)->IsCrazeMode(); }
+ inline bool FunctionPointer_AndroidAgent_IsCrazeModePrepareMode(Agent* self) { return ((AndroidAgent*)self)->IsCrazeModePrepareMode(); }
+ inline bool FunctionPointer_AndroidAgent_IsDead(Agent* self) { return ((AndroidAgent*)self)->IsDead(); }
inline bool FunctionPointer_AndroidAgent_IsGameOver(Agent* self) { return ((AndroidAgent*)self)->IsGameOver(); }
+ inline bool FunctionPointer_AndroidAgent_IsNearGas(Agent* self, float distance) { return (bool)((BaseAgent*)self)->_Execute_Method_(distance); }
inline void FunctionPointer_AndroidAgent_LogMessage(char* param0) { AndroidAgent::LogMessage(param0); }
inline void FunctionPointer_AndroidAgent_OnAttacked(Agent* self, int sender, int time) { } /* OnAttacked */
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_SelectUseableSkill(Agent* self, behaviac::vector skill_ids) { return (behaviac::EBTStatus)((BaseAgent*)self)->_Execute_Method_ >(skill_ids); }
@@ -82,6 +94,8 @@ namespace behaviac
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoAttackTarget(Agent* self, int target_id) { return ((HeroAgent*)self)->CoAttackTarget(target_id); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoFindPathToCurrentTarget(Agent* self, float distance) { return ((HeroAgent*)self)->CoFindPathToCurrentTarget(distance); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoMoveToCurrentTarget(Agent* self, float distance) { return ((HeroAgent*)self)->CoMoveToCurrentTarget(distance); }
+ inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoRunGas(Agent* self) { return ((HeroAgent*)self)->CoRunGas(); }
+ inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoShot(Agent* self) { return (behaviac::EBTStatus)((BaseAgent*)self)->_Execute_Method_(); }
inline bool FunctionPointer_HeroAgent_CurrentTargetIsValid(Agent* self) { return ((HeroAgent*)self)->CurrentTargetIsValid(); }
inline bool FunctionPointer_HeroAgent_CurrentTargetMoveCanReach(Agent* self) { return (bool)((BaseAgent*)self)->_Execute_Method_(); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_DoAttack(Agent* self) { return (behaviac::EBTStatus)((HeroAgent*)self)->_Execute_Method_(); }
@@ -102,9 +116,12 @@ namespace behaviac
inline int FunctionPointer_HeroAgent_GetFindEnemyResultTargetUniId(Agent* self) { return ((HeroAgent*)self)->GetFindEnemyResultTargetUniId(); }
inline float FunctionPointer_HeroAgent_GetMasterDistance(Agent* self) { return ((HeroAgent*)self)->GetMasterDistance(); }
inline glm::vec3 FunctionPointer_HeroAgent_GetPos(Agent* self) { return (glm::vec3)((BaseAgent*)self)->_Execute_Method_(); }
+ inline float FunctionPointer_HeroAgent_GetSafeAreaRadius(Agent* self) { return ((HeroAgent*)self)->GetSafeAreaRadius(); }
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_IsDead(Agent* self) { return ((HeroAgent*)self)->IsDead(); }
inline bool FunctionPointer_HeroAgent_IsGameOver(Agent* self) { return ((HeroAgent*)self)->IsGameOver(); }
+ inline bool FunctionPointer_HeroAgent_IsNearGas(Agent* self, float distance) { return (bool)((BaseAgent*)self)->_Execute_Method_(distance); }
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 */
diff --git a/server/bin/exported/boss_40101.xml b/server/bin/exported/boss_40101.xml
index b35cfcec..3361240c 100644
--- a/server/bin/exported/boss_40101.xml
+++ b/server/bin/exported/boss_40101.xml
@@ -13,33 +13,43 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/server/bin/exported/boss_40101_run_gas.xml b/server/bin/exported/boss_40101_run_gas.xml
new file mode 100644
index 00000000..a1d65820
--- /dev/null
+++ b/server/bin/exported/boss_40101_run_gas.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/bin/exported/meta/game2006.meta.xml b/server/bin/exported/meta/game2006.meta.xml
index cfdecd63..36bf13eb 100644
--- a/server/bin/exported/meta/game2006.meta.xml
+++ b/server/bin/exported/meta/game2006.meta.xml
@@ -1,19 +1,19 @@
-
-
+
+
-
+
-
+
diff --git a/server/gameserver/android_agent.cc b/server/gameserver/android_agent.cc
index 6c451c0e..9d36383f 100644
--- a/server/gameserver/android_agent.cc
+++ b/server/gameserver/android_agent.cc
@@ -43,3 +43,15 @@ glm::vec3& AndroidAgent::AdjustShotDir(glm::vec3& shot_dir)
}
return shot_dir;
}
+
+bool AndroidAgent::IsCrazeMode()
+{
+ return false;
+ return a8::HasBitFlag(GetOwner()->status, CS_CrazeMode);
+}
+
+bool AndroidAgent::IsCrazeModePrepareMode()
+{
+ return false;
+ return a8::HasBitFlag(GetOwner()->status, CS_CrazeMode);
+}
diff --git a/server/gameserver/android_agent.h b/server/gameserver/android_agent.h
index 7ca2d52e..bb0ad1b8 100644
--- a/server/gameserver/android_agent.h
+++ b/server/gameserver/android_agent.h
@@ -13,6 +13,8 @@ public:
BEHAVIAC_DECLARE_AGENTTYPE(AndroidAgent, BaseAgent)
State_e GetState();
+ bool IsCrazeMode();
+ bool IsCrazeModePrepareMode();
behaviac::EBTStatus DoRandomWalk();
behaviac::EBTStatus DoRandomShot();
diff --git a/server/gameserver/base_agent.cc b/server/gameserver/base_agent.cc
index f69e3c7b..2aa36833 100644
--- a/server/gameserver/base_agent.cc
+++ b/server/gameserver/base_agent.cc
@@ -443,3 +443,28 @@ bool BaseAgent::ShotCanReach(const glm::vec3& target_pos)
abort();
return false;
}
+
+behaviac::EBTStatus BaseAgent::CoShot()
+{
+ return behaviac::BT_FAILURE;
+}
+
+bool BaseAgent::IsNearGas(float distance)
+{
+ return GetOwner()->IsNearGas(distance);
+}
+
+behaviac::EBTStatus BaseAgent::CoRunGas()
+{
+ return behaviac::BT_FAILURE;
+}
+
+float BaseAgent::GetSafeAreaRadius()
+{
+ return 500;
+}
+
+bool BaseAgent::IsDead()
+{
+ return GetOwner()->dead;
+}
diff --git a/server/gameserver/base_agent.h b/server/gameserver/base_agent.h
index 349c7bd6..1959a672 100644
--- a/server/gameserver/base_agent.h
+++ b/server/gameserver/base_agent.h
@@ -61,6 +61,9 @@ public:
glm::vec3 GetFindEnemyResultTargetPos();
void SetCurrentTarget(int target_uniid);
int GetFindEnemyResultTargetUniId();
+ bool IsNearGas(float distance);
+ float GetSafeAreaRadius();
+ bool IsDead();
behaviac::EBTStatus CoAttackTarget(int target_id);
behaviac::EBTStatus DoIdle(int min_time, int max_time);
@@ -72,6 +75,8 @@ public:
behaviac::EBTStatus CoMoveToCurrentTarget(float distance);
behaviac::EBTStatus FindEnemy(float range);
behaviac::EBTStatus DoSkill(int skill_id);
+ behaviac::EBTStatus CoShot();
+ behaviac::EBTStatus CoRunGas();
public:
void SetOwner(Creature* owner) { owner_ = owner; };