Пример #1
0
        private void CalcPowerAdd(int timeId)
        {
            PeRoot.Log("All Online Player Calc Power Incress....");
            NetMsg netMsg = new NetMsg
            {
                cmd = (int)Command.PshPower
            };

            netMsg.PshPower = new PshPower();

            Dictionary <ServerSession, PlayerData> onLineDictionary = _cacheSvc.GetOnLine();

            foreach (var item in onLineDictionary)
            {
                PlayerData    playerData = item.Value;
                ServerSession session    = item.Key;

                int powerMax = PeRoot.GetPowerLimit(playerData.Level);
                if (playerData.Power >= powerMax)
                {
                    continue;
                }
                else
                {
                    playerData.Power += PeRoot.PowerAddCount;
                    playerData.Time   = _timeSvc.GetNowTime();
                    if (playerData.Power > powerMax)
                    {
                        playerData.Power = powerMax;
                    }
                }

                if (!_cacheSvc.UpdatePlayerData(playerData.Id, playerData))
                {
                    netMsg.err = (int)ErrorCode.UpdateDbError;
                }
                else
                {
                    netMsg.PshPower.Power = playerData.Power;
                    session.SendMsg(netMsg);
                }
            }
        }