public void ClearTrigger() { if (m_listTrigger != null) { // 倒序,可以避免在遍历中玩家移除了BUFF导致的元素丢失问题 for (int i = m_listTrigger.Count - 1; i >= 0; i--) { CBuffTriggerMgr.Destroy(m_listTrigger[i]); } m_listTrigger.Clear(); } }
private void CreateTrigger(BuffTriggerCsvData data) { CBuffTrigger buffTri = CBuffTriggerMgr.Create((eBuffTriggerPosType)data.PosType); buffTri.m_caster = m_caster; buffTri.m_rec = m_rec; buffTri.m_skillIndex = m_skillIndex; buffTri.m_skillPos = m_skillPos; buffTri.m_extendParam = m_extendParam; buffTri.Create(data.Id, string.Empty, m_startPos, m_skillDir); if (m_caster != null) { m_caster.AddTrigger((int)buffTri.GetUid()); } }
// 正式的游戏逻辑帧 private void ExecuteFrame(int frameId, FspFrame frameMsg) { if (frameMsg != null && frameMsg.vkeys != null) { for (int i = 0; i < frameMsg.vkeys.Count; i++) { FspVKey cmd = frameMsg.vkeys[i]; // 根据keyid做不同逻辑处理 HandleServerCmd(cmd); } } CFrameTimeMgr.Inst.FixedUpdate(); CCreatureMgr.ExecuteFrame(frameId); CSkillMgr.ExecuteFrame(frameId); CBuffMgr.ExecuteFrame(frameId); CBuffTriggerMgr.ExecuteFrame(frameId); }