public void NpcLeave(string locator, SceneLogic currentlogic) { m_ManagedNpcs.Remove(locator); if (currentlogic != null) { currentlogic.DeleteNpc(locator); } m_GroupCellManager.ObjectLeave(locator); //如果是世界boss,删除之后需要立马生成下一个 if (locator.Equals("EnemySpawns_11")) { long id = 0; string scenetype = SceneLogicManager.getSceneType(); DataLookupsCache.Instance.SearchDataByID(scenetype + ".id", out id); string curLayout = "Layout50102"; DataLookupsCache.Instance.SearchDataByID("mainlands.lastWeekBossLayoutId", out curLayout); Hashtable data = Johny.HashtablePool.Claim(); data["role"] = "w_boss"; data["sid"] = id; data["bossLayoutId"] = curLayout; NpcCommIn("EnemySpawns_11", data, MainLandLogic.GetInstance().CurrentSceneName, "mainlands"); } }
public void ShowForGroupCell(string locator, bool state) { if (state) { if (m_ManagedNpcs.ContainsKey(locator)) { m_NpcQueue.Enqueue(m_ManagedNpcs[locator]); } } else { if (m_ManagedNpcs.ContainsKey(locator)) { m_ManagedNpcs[locator].preloaded = false; m_ManagedNpcs[locator].created = false; if (m_CurrentSceneLogic != null) { m_CurrentSceneLogic.DeleteNpc(locator); } } } }