Пример #1
0
        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");
            }
        }
Пример #2
0
 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);
             }
         }
     }
 }