Esempio n. 1
0
    public static CNPCEntity  CreateNPCEntity(uint dwTypeID)
    {
        CNPCEntity pNPC = new CNPCEntity();

        pNPC.InitEnemy(dwTypeID, true);
        return(pNPC);
    }
Esempio n. 2
0
    public CMoveController(CNPCEntity pOwner)
	{
		m_pOwner 		= pOwner;
		m_GameObject 	= pOwner.gameObject;
		m_eCurMove 		= EMoveState.EMS_Stand;
		m_character		= m_GameObject.GetComponent<CharacterController>();
	}
Esempio n. 3
0
 void Start( )
 {
     m_pOwner = CNPCEntity.CreateNPCNoEntity((uint)dwTypeID);
     if (m_pOwner != null)
     {
         m_pOwner.gameObject = transform.gameObject;
         m_pOwner.InitEntity((uint)dwTypeID);
     }
 }
Esempio n. 4
0
    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;
    }
Esempio n. 5
0
    //-----------------------------------------------------------------------------------------
    // 退出本行为
    //-----------------------------------------------------------------------------------------
    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);
    }
Esempio n. 6
0
    //-----------------------------------------------------------------------------------------
    // 进入本行为
    //-----------------------------------------------------------------------------------------
    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);
    }
Esempio n. 7
0
    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;
    }
Esempio n. 8
0
    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");
        }
    }
Esempio n. 9
0
 public CAIStats()
 {
     m_pNPC = null;
 }
Esempio n. 10
0
 //-----------------------------------------------------------------------------------------
 // 初始化本行为的所有者
 //-----------------------------------------------------------------------------------------
 public void  InitFSM(CNPCEntity pNPC)
 {
     m_pNPC = pNPC;
 }
Esempio n. 11
0
    public static CNPCEntity  CreateNPCNoEntity(uint dwTypeID)
    {
        CNPCEntity pNPC = new CNPCEntity();

        return(pNPC);
    }