Exemple #1
0
    protected void DoTrigger(int nLogicCount, int nTargetCount, int[] paTargetIDs)
    {
        SetLogicCount(nLogicCount);

        if (GetSpecialObjData() != null && GetSpecialObjData().m_lpszEffect_Active != null && GetSpecialObjData().m_lpszEffect_Active.Length > 0)
        {
            CObject_Effect pEffectObj = (CObject_Effect)(CObjectManager.Instance.NewEffect(-1));
            if (pEffectObj != null)
            {
                SObject_EffectInit initEffect = new SObject_EffectInit();
                initEffect.m_fvPos         = GetPosition();
                initEffect.m_fvRot         = new UnityEngine.Vector3(0.0f, 0.0f, 0.0f);
                initEffect.m_pszEffectName = GetSpecialObjData().m_lpszEffect_Active;
                initEffect.m_bLoopEffect   = false;
                pEffectObj.Initial(initEffect);
            }
        }


        // 有子弹
        if (GetSpecialObjData() != null && GetSpecialObjData().m_nBulletID != MacroDefine.INVALID_ID)
        {
            SObject_BulletInit initBullet = new SObject_BulletInit();
            initBullet.m_fvPos = GetPosition();

            UnityEngine.Vector3 fvRot = UnityEngine.Vector3.zero;
            fvRot.y                      = GetFaceDir();
            initBullet.m_fvRot           = fvRot;
            initBullet.m_idSend          = (uint)ServerID;
            initBullet.m_nSendLogicCount = GetLogicCount();
            initBullet.m_nBulletID       = m_pSpecialObjData.m_nBulletID;
            initBullet.m_bSingleTarget   = true;
            initBullet.m_fvTargetPos     = new UnityEngine.Vector3(-1.0f, -1.0f, -1.0f);
            for (int i = 0; i < nTargetCount; i++)
            {
                initBullet.m_idTarget = paTargetIDs[i];
                CObject_Bullet pBullet = (CObject_Bullet)CObjectManager.Instance.NewBullet(-1);
                pBullet.Initial(initBullet);
            }
        }
        else
        {
            CObject_Character pCharacter = null;
            for (int i = 0; i < nTargetCount; i++)
            {
                int idCharacter = paTargetIDs[i];
                pCharacter = (CObject_Character)(CObjectManager.Instance.FindServerObject(idCharacter));
                if (pCharacter != null)
                {
                    pCharacter.ShowLogicEvent(ServerID, nLogicCount, true);
                }
            }
        }
    }
 protected void AlreadyHit()
 {
     if (m_idTarget != MacroDefine.INVALID_ID)
     {
         CObject_Character pChar = (CObject_Character)CObjectManager.Instance.FindServerObject(m_idTarget);
         if (pChar != null)
         {
             pChar.ShowLogicEvent((int)m_idSend, m_nSendLogicCount, true);
         }
     }
     m_bAlreadyHit = true;
     if (m_pBulletData != null && m_pBulletData.m_szHitEffect.Length > 0)
     {
         ChangEffect(m_pBulletData.m_szHitEffect, false);
     }
     else
     {
         Release();
     }
 }