public static CNPCEntity CreateNPCEntity(uint dwTypeID) { CNPCEntity pNPC = new CNPCEntity(); pNPC.InitEnemy(dwTypeID, true); return(pNPC); }
public CMoveController(CNPCEntity pOwner) { m_pOwner = pOwner; m_GameObject = pOwner.gameObject; m_eCurMove = EMoveState.EMS_Stand; m_character = m_GameObject.GetComponent<CharacterController>(); }
void Start( ) { m_pOwner = CNPCEntity.CreateNPCNoEntity((uint)dwTypeID); if (m_pOwner != null) { m_pOwner.gameObject = transform.gameObject; m_pOwner.InitEntity((uint)dwTypeID); } }
public CAIController(CNPCEntity pNPC) { m_pOwner = pNPC; m_pProto = m_pOwner.m_pProto; m_pTarget = null; m_eCurAIState = AIStateType.AIST_Idle; m_pCurrentState = CIdleAI.Instance(); m_pTransition = new GuardTransition(); m_GameObject = m_pOwner.gameObject; m_vBornPos = m_GameObject.transform.position; }
//----------------------------------------------------------------------------------------- // 退出本行为 //----------------------------------------------------------------------------------------- public override void Exit(CAIController pAI) { CNPCEntity pOwner = pAI.m_pOwner; if (pOwner == null) { return; } // 回满蓝和血 pOwner.SetAttValue(ERoleAttribute.ERA_HP, pOwner.GetAttValue(ERoleAttribute.ERA_HP), false); pOwner.SetAttValue(ERoleAttribute.ERA_MP, pOwner.GetAttValue(ERoleAttribute.ERA_MP), false); pOwner.UnSetState(EState.ES_Invincible); }
//----------------------------------------------------------------------------------------- // 进入本行为 //----------------------------------------------------------------------------------------- public override void Enter(CAIController pAI) { CNPCEntity pOwner = pAI.m_pOwner; if (pOwner == null) { return; } pAI.StartReturn(); pAI.ClearAllEnmity(); pAI.m_pTarget = null; pOwner.SetState(EState.ES_Invincible); }
public CreatureFSM(CNPCEntity pOwner) { m_pOwner = pOwner; m_arrayBehavir = new CBehavior[14]; CIdleBehavior Idle = new CIdleBehavior(); Idle.InitFSM(pOwner); m_arrayBehavir[0] = null; m_arrayBehavir[0] = Idle; CMoveBehavior walk = new CMoveBehavior(); walk.InitFSM(m_pOwner); m_arrayBehavir[1] = null; m_arrayBehavir[1] = walk; CAttackBehavior attack = new CAttackBehavior(); attack.InitFSM(m_pOwner); m_arrayBehavir[2] = null; m_arrayBehavir[2] = attack; CDeadBehavior Dead = new CDeadBehavior(); Dead.InitFSM(m_pOwner); m_arrayBehavir[3] = null; m_arrayBehavir[3] = Dead; CBeAtkBehavior BeAtk = new CBeAtkBehavior(); BeAtk.InitFSM(m_pOwner); m_arrayBehavir [4] = BeAtk; CHitFlyBehavior HitFly = new CHitFlyBehavior(); HitFly.InitFSM(m_pOwner); m_arrayBehavir[5] = null; m_arrayBehavir[5] = HitFly; CRepelBehavior Repel = new CRepelBehavior(); Repel.InitFSM(m_pOwner); m_arrayBehavir[6] = null; m_arrayBehavir[6] = Repel; CAssaultBehavior Assault = new CAssaultBehavior(); Assault.InitFSM(m_pOwner); m_arrayBehavir[7] = null; m_arrayBehavir[7] = Assault; CPullBehavior Pull = new CPullBehavior(); Pull.InitFSM(m_pOwner); m_arrayBehavir[8] = null; m_arrayBehavir[8] = Pull; CDazzyBehavior Dazzy = new CDazzyBehavior(); Dazzy.InitFSM(m_pOwner); m_arrayBehavir[9] = null; m_arrayBehavir[9] = Dazzy; CTieBehavior Tie = new CTieBehavior(); Tie.InitFSM(m_pOwner); m_arrayBehavir[10] = null; m_arrayBehavir[10] = Tie; CSoporBehavior Sopor = new CSoporBehavior(); Sopor.InitFSM(m_pOwner); m_arrayBehavir[11] = null; m_arrayBehavir[11] = Sopor; CHitDownBehavior HitDown = new CHitDownBehavior(); HitDown.InitFSM(m_pOwner); m_arrayBehavir[12] = null; m_arrayBehavir[12] = HitDown; CSuspensionBehavior Susp = new CSuspensionBehavior(); Susp.InitFSM(m_pOwner); m_arrayBehavir[13] = null; m_arrayBehavir[13] = Susp; }
private void CalActionEffect(CSceneEntity pBeAtcker, string strActEffect) { if (pBeAtcker != null && m_pOwner != null) { int iCmd = int.Parse(strActEffect.Split('|')[0]); float fParam = float.Parse(strActEffect.Split('|')[1]); if (iCmd == 0) { if (pBeAtcker.gameObject.transform.tag == "Monster") { CNPCEntity pNPC = (CNPCEntity)pBeAtcker; if (pNPC.m_FSM == null) { return; } if (!pNPC.m_FSM.IsInBehavior(BehaviorType.EState_Suspension)) { pNPC.m_FSM.Change2BeAtkBeHavior(); } } if (pBeAtcker.gameObject.transform.tag == "Player") { CHeroEntity pNPC = (CHeroEntity)pBeAtcker; if (pNPC != null && pNPC.m_FSM != null) { pNPC.m_FSM.Change2BeAtkBeHavior(); } } iTween.MoveToMy(pBeAtcker.gameObject, m_pOwner.gameObject, fParam); } if (iCmd == 1) { if (pBeAtcker.gameObject.transform.tag != "Monster") { return; } CNPCEntity pNPC = (CNPCEntity)pBeAtcker; if (pNPC.m_FSM == null) { return; } if (pNPC.m_FSM.IsInBehavior(BehaviorType.EState_Suspension)) { iTween.MoveToMy(pBeAtcker.gameObject, m_pOwner.gameObject, fParam, 0.1f); pNPC.m_FSM.ChangeBeHavior(BehaviorType.EState_Suspension, 0); } else { pNPC.m_FSM.Change2BeAtkBeHavior(); iTween.MoveToMy(pBeAtcker.gameObject, m_pOwner.gameObject, fParam); } } if (iCmd == 2) { if (pBeAtcker.gameObject.transform.tag != "Monster") { return; } CNPCEntity pNPC = (CNPCEntity)pBeAtcker; if (pNPC.m_FSM == null) { return; } if (pNPC.m_FSM.IsInBehavior(BehaviorType.EState_Suspension)) { iTween.MoveToMy(pBeAtcker.gameObject, m_pOwner.gameObject, fParam, 0.1f); } else { iTween.MoveToMy(pBeAtcker.gameObject, m_pOwner.gameObject, fParam, float.Parse(strActEffect.Split('|')[2])); } pNPC.m_FSM.ChangeBeHavior(BehaviorType.EState_Suspension, 0); } if (iCmd == 3) { if (pBeAtcker.gameObject.transform.tag != "Monster") { return; } CNPCEntity pNPC = (CNPCEntity)pBeAtcker; if (pNPC.m_FSM == null) { return; } if (pNPC.m_FSM.IsInBehavior(BehaviorType.EState_Suspension)) { pNPC.m_FSM.ChangeBeHavior(BehaviorType.EState_Suspension, 0); iTween.MoveToMy(pBeAtcker.gameObject, m_pOwner.gameObject, fParam, 0.1f); CtrolAnimation pCtrlAnim = pNPC.gameObject.GetComponent <CtrolAnimation>(); pCtrlAnim.SetPlaySpeed(0.01f); } else { iTween.MoveToMy(pBeAtcker.gameObject, m_pOwner.gameObject, (fParam + 3) / Vector3.Distance(m_pOwner.gameObject.transform.position, pBeAtcker.gameObject.transform.position)); } } if (iCmd == 4) { if (pBeAtcker.gameObject.transform.tag != "Monster") { return; } CNPCEntity pNPC = (CNPCEntity)pBeAtcker; if (pNPC.m_FSM == null) { return; } CtrolAnimation pCtrlAnim = pNPC.gameObject.GetComponent <CtrolAnimation>(); if (pNPC.m_FSM.IsInBehavior(BehaviorType.EState_Suspension)) { pCtrlAnim.SetPlaySpeed(0.001f); } } PlayBeAttackEffect(pBeAtcker, "effect/spark 04"); } }
public CAIStats() { m_pNPC = null; }
//----------------------------------------------------------------------------------------- // 初始化本行为的所有者 //----------------------------------------------------------------------------------------- public void InitFSM(CNPCEntity pNPC) { m_pNPC = pNPC; }
public static CNPCEntity CreateNPCNoEntity(uint dwTypeID) { CNPCEntity pNPC = new CNPCEntity(); return(pNPC); }