Example #1
0
        /// <summary>
        /// 线程驱动
        /// </summary>
        public void ProcessQueue()
        {
            long nowTicks = TimeUtil.NOW();
            List <LiXianGuaJiRoleItem> LiXianGuaJiRoleItems = GetLiXianGuaJiRoleItemList();

            for (int i = 0; i < LiXianGuaJiRoleItems.Count; i++)
            {
                //先计时,再检测是否打到时限
                DoSpriteMeditateTime(LiXianGuaJiRoleItems[i]);

                //挂机结束
                if (/*nowTicks - LiXianGuaJiRoleItems[i].StartTicks >= MaxMingXiangTicks || */ (LiXianGuaJiRoleItems[i].MeditateTime + LiXianGuaJiRoleItems[i].NotSafeMeditateTime) >= MaxMingXiangTicks)
                {
                    SaveDBLiXianGuaJiTimeForRole(LiXianGuaJiRoleItems[i]); //保存挂机时间
                    RemoveLiXianGuaJiRole(LiXianGuaJiRoleItems[i].RoleID); //从列表移除

                    //移除假人
                    if (LiXianGuaJiRoleItems[i].FakeRoleID > 0)
                    {
                        FakeRoleManager.ProcessDelFakeRole(LiXianGuaJiRoleItems[i].FakeRoleID);
                    }
                    //提示用户离线挂机终止

                    continue;
                }
            }
        }
        public static void DelFakeRoleByClient(GameClient client)
        {
            int fakeRoleID = -1;
            LiXianSaleRoleItem liXianSaleRoleItem = null;

            lock (LiXianBaiTanManager._LiXianRoleInfoDict)
            {
                if (!LiXianBaiTanManager._LiXianRoleInfoDict.TryGetValue(client.ClientData.RoleID, out liXianSaleRoleItem))
                {
                    return;
                }
                fakeRoleID = liXianSaleRoleItem.FakeRoleID;
            }
            if (fakeRoleID > 0)
            {
                FakeRoleManager.ProcessDelFakeRole(fakeRoleID, false);
            }
        }
        public void ProcessQueue()
        {
            long nowTicks = TimeUtil.NOW();
            List <LiXianGuaJiRoleItem> LiXianGuaJiRoleItems = LiXianGuaJiManager.GetLiXianGuaJiRoleItemList();

            for (int i = 0; i < LiXianGuaJiRoleItems.Count; i++)
            {
                this.DoSpriteMeditateTime(LiXianGuaJiRoleItems[i]);
                if (LiXianGuaJiRoleItems[i].MeditateTime + LiXianGuaJiRoleItems[i].NotSafeMeditateTime >= 43200000)
                {
                    LiXianGuaJiManager.SaveDBLiXianGuaJiTimeForRole(LiXianGuaJiRoleItems[i]);
                    LiXianGuaJiManager.RemoveLiXianGuaJiRole(LiXianGuaJiRoleItems[i].RoleID);
                    if (LiXianGuaJiRoleItems[i].FakeRoleID > 0)
                    {
                        FakeRoleManager.ProcessDelFakeRole(LiXianGuaJiRoleItems[i].FakeRoleID, false);
                    }
                }
            }
        }
        public static bool DelFakeRoleByClient(GameClient client)
        {
            int fakeRoleID = -1;
            LiXianGuaJiRoleItem liXianGuaJiRoleItem = null;

            lock (LiXianGuaJiManager._LiXianRoleInfoDict)
            {
                if (!LiXianGuaJiManager._LiXianRoleInfoDict.TryGetValue(client.ClientData.RoleID, out liXianGuaJiRoleItem))
                {
                    return(false);
                }
                fakeRoleID = liXianGuaJiRoleItem.FakeRoleID;
            }
            if (fakeRoleID > 0)
            {
                FakeRoleManager.ProcessDelFakeRole(fakeRoleID, false);
            }
            return(true);
        }