public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { var args = _params.Values; int objId = args[0]; EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { int targetId = npc.GetAiStateInfo().Target; if (targetId > 0) { EntityInfo entity = PluginFramework.Instance.GetEntityById(targetId); if (null != entity && !entity.IsDead()) { m_Proxy.Value = BoxedValue.From(entity); } else { m_Proxy.Value = BoxedValue.NullObject; } } else { m_Proxy.Value = BoxedValue.NullObject; } } }
public bool ExecCommand(StoryInstance instance, StoryValueParams _params, long delta) { ArrayList args = _params.Values; if (!m_ParamReaded) { m_ParamReaded = true; m_ObjId = (int)args[0]; m_Time = (int)System.Convert.ChangeType(args[1], typeof(int)); m_Radius = (int)System.Convert.ChangeType(args[2], typeof(int)); EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { SelectTargetPos(npc); return(true); } } else { EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { AiStateInfo info = npc.GetAiStateInfo(); return(RandMoveHandler(npc, info, delta)); } } return(false); }
public bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params, long delta) { var args = _params.Values; if (!m_ParamReaded) { m_ParamReaded = true; m_ObjId = args[0]; if (args.Count > 1) { m_EnableLearning = args[1].Get <int>() != 0; } } EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { AiStateInfo info = npc.GetAiStateInfo(); switch (info.CurState) { case (int)PredefinedAiStateId.Idle: info.ChangeToState((int)AiStateId.Combat); return(true); case (int)AiStateId.Combat: return(CombatHandler(npc, info, delta)); case (int)AiStateId.Gohome: return(GohomeHandler(npc, info, delta)); } } return(false); }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { var args = _params.Values; int objId = args[0].Get <int>(); float dist = args[1].Get <float>(); EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { EntityInfo entity; if (dist < Geometry.c_FloatPrecision) { entity = AiLogicUtility.GetNearstTargetHelper(npc, CharacterRelation.RELATION_ENEMY); if (null != entity) { npc.GetAiStateInfo().Target = entity.GetId(); } } else { entity = AiLogicUtility.GetNearstTargetHelper(npc, dist, CharacterRelation.RELATION_ENEMY); if (null != entity) { npc.GetAiStateInfo().Target = entity.GetId(); } } m_Proxy.Value = BoxedValue.From(entity); } }
public void Evaluate(StoryInstance instance, StoryValueParams _params) { ArrayList args = _params.Values; int objId = (int)args[0]; EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { int targetId = npc.GetAiStateInfo().Target; if (targetId > 0) { EntityInfo entity = PluginFramework.Instance.GetEntityById(targetId); if (null != entity && !entity.IsDead()) { m_Proxy.Value = entity; } else { m_Proxy.Value = null; } } else { m_Proxy.Value = null; } } }
public bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params, long delta) { var args = _params.Values; if (!m_ParamReaded) { m_ObjId = args[0]; m_SkillInfo = args[1].ObjectVal as SkillInfo; } if (!m_SkillCasted) { EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { int targetId = npc.GetAiStateInfo().Target; EntityInfo target = PluginFramework.Instance.GetEntityById(targetId); if (null != target && !target.IsDead() && Geometry.DistanceSquare(npc.GetMovementStateInfo().GetPosition3D(), target.GetMovementStateInfo().GetPosition3D()) <= m_SkillInfo.Distance * m_SkillInfo.Distance) { ScriptRuntime.Vector3 srcPos = npc.GetMovementStateInfo().GetPosition3D(); ScriptRuntime.Vector3 targetPos = target.GetMovementStateInfo().GetPosition3D(); float dir = Geometry.GetYRadian(srcPos, targetPos); float curDir = npc.GetMovementStateInfo().GetFaceDir(); if (Mathf.Abs(dir - curDir) > 0.157f) { npc.GetMovementStateInfo().SetWantedFaceDir(dir); } else { m_SkillCasted = true; AiCommand.AiStopPursue(npc); AiCommand.AiSkill(npc, m_SkillInfo.SkillId); } return(true); } else if (!m_SkillInfo.ConfigData.skillData.needTarget) { m_SkillCasted = true; AiCommand.AiStopPursue(npc); AiCommand.AiSkill(npc, m_SkillInfo.SkillId); } } } else { EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc) { AiStateInfo info = npc.GetAiStateInfo(); if (npc.GetSkillStateInfo().IsSkillActivated()) { return(true); } else { return(false); } } } return(false); }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { ArrayList args = _params.Values; int objId = (int)args[0]; SkillInfo skillInfo = args[1] as SkillInfo; EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc && null != skillInfo) { int targetId = npc.GetAiStateInfo().Target; if (targetId > 0) { EntityInfo target = PluginFramework.Instance.GetEntityById(targetId); if (null != target) { float distSqr = Geometry.DistanceSquare(npc.GetMovementStateInfo().GetPosition3D(), target.GetMovementStateInfo().GetPosition3D()); if (distSqr > skillInfo.Distance * skillInfo.Distance) { m_Proxy.Value = 1; return; } } } } m_Proxy.Value = 0; }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { ArrayList args = _params.Values; int objId = (int)args[0]; float dist = (float)System.Convert.ChangeType(args[1], typeof(float)); EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { EntityInfo entity; if (dist < Geometry.c_FloatPrecision) { entity = AiLogicUtility.GetNearstTargetHelper(npc, CharacterRelation.RELATION_ENEMY); if (null != entity) { npc.GetAiStateInfo().Target = entity.GetId(); } } else { entity = AiLogicUtility.GetNearstTargetHelper(npc, dist, CharacterRelation.RELATION_ENEMY); if (null != entity) { npc.GetAiStateInfo().Target = entity.GetId(); } } m_Proxy.Value = entity; } }
public bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params, long delta) { var args = _params.Values; if (!m_ParamReaded) { m_ParamReaded = true; m_ObjId = args[0].Get <int>(); m_Time = args[1].Get <int>(); m_Radius = args[2].Get <int>(); EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { SelectTargetPos(npc); return(true); } } else { EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { AiStateInfo info = npc.GetAiStateInfo(); return(RandMoveHandler(npc, info, delta)); } } return(false); }
private bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params, long delta) { if (null != m_Plugin) { return(m_Plugin.ExecCommand(instance, handler, _params, delta)); } return(false); }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { var args = _params.Values; int objId = args[0].Get <int>(); EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { m_Proxy.Value = BoxedValue.From(npc.GetSkillStateInfo().GetAllSkill()); } }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { ArrayList args = _params.Values; int objId = (int)args[0]; EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { m_Proxy.Value = npc.GetSkillStateInfo().GetAllSkill(); } }
private bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params, long delta) { if (null != m_ExecCommand) { var ret = m_ExecCommand.call(m_Self, instance, handler, _params, delta); if (null != ret) { return((bool)ret); } } return(false); }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { var args = _params.Values; int objId = args[0]; EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { SkillInfo skillInfo = AiLogicUtility.NpcFindCanUseSkill(npc); m_Proxy.Value = BoxedValue.From(skillInfo); } }
public void Evaluate(StoryInstance instance, StoryValueParams _params) { ArrayList args = _params.Values; int objId = (int)args[0]; EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { SkillInfo skillInfo = AiLogicUtility.NpcFindCanUseSkill(npc); m_Proxy.Value = skillInfo; } }
public void Evaluate(StoryInstance instance, StoryValueParams _params) { ArrayList args = _params.Values; int objId = (int)args[0]; EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { int targetId = npc.GetAiStateInfo().Target; if (targetId > 0) { EntityInfo target = PluginFramework.Instance.GetEntityById(targetId); if (null != target) { float distToTarget = Geometry.Distance(npc.GetMovementStateInfo().GetPosition3D(), target.GetMovementStateInfo().GetPosition3D()); float curDist = 0; SkillInfo maxSkillInfo = null; float diffDist = float.MaxValue; SkillInfo targetSkillInfo = null; for (int i = 0; i < npc.AutoSkillIds.Count; ++i) { int skillId = npc.AutoSkillIds[i]; SkillInfo temp = npc.GetSkillStateInfo().GetSkillInfoById(skillId); if (null != temp) { float dist = temp.Distance; float absDist = Mathf.Abs(distToTarget - dist); if (diffDist > absDist) { diffDist = absDist; targetSkillInfo = temp; } } } if (null != targetSkillInfo) { m_Proxy.Value = targetSkillInfo; } else { m_Proxy.Value = maxSkillInfo; } return; } } } m_Proxy.Value = null; }
public bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params, long delta) { ArrayList args = _params.Values; if (!m_ParamReaded) { m_ParamReaded = true; m_ObjId = (int)args[0]; } EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc) { AiStateInfo info = npc.GetAiStateInfo(); return(GohomeHandler(npc, info, delta)); } return(false); }
public bool ExecCommand(StoryInstance instance, StoryValueParams _params, long delta) { ArrayList args = _params.Values; if (!m_KeepAwayStarted) { m_KeepAwayStarted = true; m_ObjId = (int)args[0]; m_SkillInfo = args[1] as SkillInfo; m_Ratio = (float)System.Convert.ChangeType(args[2], typeof(float)); } EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { AiStateInfo info = npc.GetAiStateInfo(); EntityInfo target = PluginFramework.Instance.GetEntityById(info.Target); if (null != target && null != m_SkillInfo) { info.Time += delta; if (info.Time > 100) { info.Time = 0; } else { return(true); } ScriptRuntime.Vector3 srcPos = npc.GetMovementStateInfo().GetPosition3D(); ScriptRuntime.Vector3 targetPos = target.GetMovementStateInfo().GetPosition3D(); float distSqr = Geometry.DistanceSquare(srcPos, targetPos); ScriptRuntime.Vector3 dir = srcPos - targetPos; dir.Normalize(); targetPos = targetPos + dir * m_Ratio * m_SkillInfo.Distance; if (distSqr < m_Ratio * m_Ratio * m_SkillInfo.Distance * m_SkillInfo.Distance) { AiCommand.AiPursue(npc, targetPos); return(true); } } } return(false); }
public bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params, long delta) { ArrayList args = _params.Values; if (!m_ChaseStarted) { m_ChaseStarted = true; m_ObjId = (int)args[0]; m_SkillInfo = args[1] as SkillInfo; } EntityInfo npc = PluginFramework.Instance.GetEntityById(m_ObjId); if (null != npc && !npc.IsUnderControl()) { AiStateInfo info = npc.GetAiStateInfo(); EntityInfo target = PluginFramework.Instance.GetEntityById(info.Target); if (null != target && null != m_SkillInfo) { info.Time += delta; if (info.Time > 100) { info.Time = 0; } else { return(true); } ScriptRuntime.Vector3 srcPos = npc.GetMovementStateInfo().GetPosition3D(); ScriptRuntime.Vector3 targetPos = target.GetMovementStateInfo().GetPosition3D(); float distSqr = Geometry.DistanceSquare(srcPos, targetPos); if (distSqr > m_SkillInfo.Distance * m_SkillInfo.Distance) { AiCommand.AiPursue(npc, targetPos); return(true); } } } return(false); }
public void Evaluate(StoryInstance instance, StoryValueParams _params) { m_Proxy.Value = PluginFramework.Instance.EntityManager.Entities.Values; }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { var args = _params.Values; int objId = args[0]; int index = args[1].Get <int>(); EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { int skillId = 0; switch (index) { case 0: skillId = npc.ConfigData.skill0; break; case 1: skillId = npc.ConfigData.skill1; break; case 2: skillId = npc.ConfigData.skill2; break; case 3: skillId = npc.ConfigData.skill3; break; case 4: skillId = npc.ConfigData.skill4; break; case 5: skillId = npc.ConfigData.skill5; break; case 6: skillId = npc.ConfigData.skill6; break; case 7: skillId = npc.ConfigData.skill7; break; case 8: skillId = npc.ConfigData.skill8; break; default: skillId = 0; break; } if (skillId > 0) { SkillInfo skillInfo = npc.GetSkillStateInfo().GetSkillInfoById(skillId); if (null == skillInfo) { skillInfo = new SkillInfo(skillId); npc.GetSkillStateInfo().AddSkill(skillInfo); } m_Proxy.Value = BoxedValue.From(skillInfo); } else { m_Proxy.Value = BoxedValue.NullObject; } } }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { m_Proxy.Value = BoxedValue.From(PluginFramework.Instance.EntityManager.Entities.Values); }
public void Evaluate(StoryInstance instance, StoryMessageHandler handler, StoryValueParams _params) { ArrayList args = _params.Values; int objId = (int)args[0]; int index = (int)System.Convert.ChangeType(args[1], typeof(int)); EntityInfo npc = PluginFramework.Instance.GetEntityById(objId); if (null != npc) { int skillId = 0; switch (index) { case 0: skillId = npc.ConfigData.skill0; break; case 1: skillId = npc.ConfigData.skill1; break; case 2: skillId = npc.ConfigData.skill2; break; case 3: skillId = npc.ConfigData.skill3; break; case 4: skillId = npc.ConfigData.skill4; break; case 5: skillId = npc.ConfigData.skill5; break; case 6: skillId = npc.ConfigData.skill6; break; case 7: skillId = npc.ConfigData.skill7; break; case 8: skillId = npc.ConfigData.skill8; break; default: skillId = 0; break; } if (skillId > 0) { SkillInfo skillInfo = npc.GetSkillStateInfo().GetSkillInfoById(skillId); if (null == skillInfo) { skillInfo = new SkillInfo(skillId); npc.GetSkillStateInfo().AddSkill(skillInfo); } m_Proxy.Value = skillInfo; } else { m_Proxy.Value = null; } } }