//更新冷却组 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); } }
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); } } }
//心法升级是否在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); }
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); }
//更新宠物冷却组 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); } }
//取得冷却组 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(); } } }
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; } } } } } }
//检查冷却是否结束 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); } }