コード例 #1
0
    //更新冷却组
    public void CoolDownGroup_UpdateList(Cooldown_T[] pCoolDownList, int nUpdateNum)
    {
        if (nUpdateNum <= 0)
        {
            return;
        }

        if (nUpdateNum > m_vCoolDownGroup.Length)
        {
            nUpdateNum = m_vCoolDownGroup.Length;
        }
        int nCooldownID = MacroDefine.INVALID_ID;

        for (int i = 0; nUpdateNum > i; i++)
        {
            nCooldownID = (int)pCoolDownList[i].m_nID;
            if (0 > nCooldownID || (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE <= nCooldownID)
            {
                continue;
            }

            //更新冷却组
            COOLDOWN_GROUP rCooldown = m_vCoolDownGroup[nCooldownID];
            rCooldown.nTotalTime   = pCoolDownList[i].m_nCooldown;
            rCooldown.nTimeElapsed = pCoolDownList[i].m_nCooldownElapsed;
            rCooldown.nTime        = rCooldown.nTotalTime - rCooldown.nTimeElapsed;

            //刷新的ActionSystem
            CActionSystem.Instance.UpdateCoolDown(nCooldownID);
        }
    }
コード例 #2
0
    public override void    UpdateCoolDown()
    {
        int nCoolDownID = GetCoolDownID();

        //对于没有冷却的Action
        if (-1 == nCoolDownID)
        {
            foreach (tActionReference tRef in m_setReference)
            {
                tRef.EnterCoolDown(-1, 0.0f);
            }
            return;
        }

        //取得冷却组数据
        COOLDOWN_GROUP pCoolDownGroup =
            CDataPool.Instance.PetSkillCoolDownGroup_Get(nCoolDownID, m_nPetNum);

        int nTimeNow   = pCoolDownGroup.nTime;
        int nTimeTotal = pCoolDownGroup.nTotalTime;

        foreach (tActionReference tRef in m_setReference)
        {
            if (nTimeNow <= 0 || nTimeTotal <= 0)
            {
                tRef.EnterCoolDown(-1, 0.0f);
            }
            else
            {
                tRef.EnterCoolDown(nTimeNow, 1.0f - (float)nTimeNow / (float)nTimeTotal);
            }
        }
    }
コード例 #3
0
    //心法升级是否在CD中,
    public int GetUpLevelXinfaCDTime()
    {
        //心法cd的id是固定的
        COOLDOWN_GROUP cdGroup = CDataPool.Instance.CoolDownGroup_Get((int)CDGROUPID.GROUPID_XINFA_UOLEVEL);

        if (cdGroup == null)
        {
            return(0);
        }
        return(cdGroup.nTime);
    }
コード例 #4
0
    public OPERATE_RESULT IsCanUse_CheckCoolDown()
    {
        int nCoolDownID = m_pDefine.m_nCooldownID;

        if (MacroDefine.INVALID_ID != nCoolDownID)
        {
            COOLDOWN_GROUP pCoolDownGroup = CDataPool.Instance.CoolDownGroup_Get(nCoolDownID);
            if (pCoolDownGroup == null || pCoolDownGroup.nTime > 0)
            {
                return(OPERATE_RESULT.OR_COOL_DOWNING);
            }
        }
        return(OPERATE_RESULT.OR_OK);
    }
コード例 #5
0
    //更新宠物冷却组
    public void PetSkillCoolDownGroup_UpdateList(Cooldown_T[] pCoolDownList, int nUpdateNum, PET_GUID_t nPet_GUID)
    {
        if (nUpdateNum <= 0)
        {
            return;
        }
        if (nUpdateNum > (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE)
        {
            nUpdateNum = (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE;
        }
        int nCooldownID = MacroDefine.INVALID_ID;
        int nFind       = -1;

        for (int i = 0; i < GAMEDEFINE.HUMAN_PET_MAX_COUNT; i++)
        {
            SDATA_PET My_Pet = CDataPool.Instance.Pet_GetPet(i);
            if (My_Pet == null || (MacroDefine.INVALID_ID == My_Pet.IsPresent))
            {
                continue;
            }

            if (CObjectManager.Instance.getPlayerMySelf().GetCharacterData().isFightPet(My_Pet.GUID))
            {
                nFind = i;
                break;
            }
        }
        if (nFind < 0)
        {
            return;
        }
        for (int i = 0; nUpdateNum > i; i++)
        {
            nCooldownID = pCoolDownList[i].m_nID;
            if (0 > nCooldownID || (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE <= nCooldownID)
            {
                continue;
            }

            //更新冷却组
            COOLDOWN_GROUP rCooldown = m_vPetSkillCoolDownGroup[(nFind * (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE) + nCooldownID];
            rCooldown.nTotalTime   = pCoolDownList[i].m_nCooldown;
            rCooldown.nTimeElapsed = pCoolDownList[i].m_nCooldownElapsed;
            rCooldown.nTime        = rCooldown.nTotalTime - rCooldown.nTimeElapsed;

            //刷新的ActionSystem
            CActionSystem.Instance.UpdateCoolDown(nCooldownID);
        }
    }
コード例 #6
0
    //取得冷却组
    public CoolDownManager()
    {
        for (int i = 0; i < m_vCoolDownGroup.Length; i++)
        {
            if (m_vCoolDownGroup[i] == null)
            {
                m_vCoolDownGroup[i] = new COOLDOWN_GROUP();
            }
        }

        for (int i = 0; i < m_vPetSkillCoolDownGroup.Length; i++)
        {
            if (m_vPetSkillCoolDownGroup[i] == null)
            {
                m_vPetSkillCoolDownGroup[i] = new COOLDOWN_GROUP();
            }
        }
    }
コード例 #7
0
 public void Tick(uint nTickTime)
 {
     // 待优化
     for (int i = 0; i < (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE; i++)
     {
         COOLDOWN_GROUP rCoolDown = m_vCoolDownGroup[i];
         if (0 < rCoolDown.nTime)
         {
             rCoolDown.nTime -= (int)nTickTime;
             if (rCoolDown.nTime < 0)
             {
                 rCoolDown.nTime = 0;
             }
         }
         // 有用否? [11/9/2011 Sun]
         //if(i < QUESTTIME_LIST_SIZE &&  m_vQuestTimeGroup[i] > 0 )
         //{
         //    m_vQuestTimeGroup[i] -= nTickTime;
         //    if( m_vQuestTimeGroup[i] <= 0 )
         //        m_vQuestTimeGroup[i] = 0;
         //}
     }
     //宠物冷却组更新
     for (int i = 0; i < GAMEDEFINE.HUMAN_PET_MAX_COUNT; i++)
     {
         SDATA_PET pMyPet = CDataPool.Instance.Pet_GetPet(i);
         if (pMyPet != null && pMyPet.IsPresent != MacroDefine.INVALID_ID)
         {
             for (int j = 0; j < (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE; j++)
             {
                 COOLDOWN_GROUP rCoolDown = m_vPetSkillCoolDownGroup[i * (int)COMMONCOOLDOWN.COOLDOWN_LIST_SIZE + j];
                 if (0 < rCoolDown.nTime)
                 {
                     rCoolDown.nTime -= (int)nTickTime;
                     if (rCoolDown.nTime < 0)
                     {
                         rCoolDown.nTime = 0;
                     }
                 }
             }
         }
     }
 }
コード例 #8
0
    //检查冷却是否结束
    public override bool CoolDownIsOver()
    {
        int nCoolDownID = GetCoolDownID();

        //对于没有冷却的Action
        if (MacroDefine.INVALID_ID == nCoolDownID)
        {
            return(true);
        }
        //取得冷却组数据
        COOLDOWN_GROUP pCoolDownGroup = CDataPool.Instance.CoolDownGroup_Get(nCoolDownID);

        if (pCoolDownGroup != null && pCoolDownGroup.nTime <= 0 && CDataPool.Instance.CommonCoolDown_Get() <= 0)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }