Example #1
0
 /// <summary>
 /// Отмена регистрации в поединках
 /// </summary>
 private void CancelRegistration(Client player)
 {
     if (!Members.Contains(player))
     {
         API.sendNotificationToPlayer(player, "~r~Вы не были зарегистрированы", true);
         return;
     }
     _playerInfoManager.SetBalance(player, BET);
     Members = RemoveMember(player);
     player.resetSyncedData(PlayerData.IS_REGISTERED);
     API.sendNotificationToPlayer(player, "~b~Регистрация отменена");
     API.triggerClientEvent(player, ServerEvent.HIDE_FIGHT_MENU);
 }
Example #2
0
        /// <summary>
        /// Выдать зарплату
        /// </summary>
        protected void PayOut(Client player, WorkInfo activeWork)
        {
            var workInfo = WorkInfoManager.GetWorkInfo(player, activeWork.Type);

            PlayerInfoManager.SetBalance(player, workInfo.Salary);
            workInfo.Salary = 0;
            WorkInfoManager.SetWorkInfo(player, workInfo);
        }
Example #3
0
 /// <summary>
 /// Выдать награду за добычу
 /// </summary>
 private void SetReward(Client player, long clanId, int bootyCount)
 {
     foreach (var member in GetMembers(player, clanId))
     {
         var rank = (int)_playerInfoManager.GetInfo(player).Clan.Rank;
         _playerInfoManager.SetBalance(member, bootyCount * MONEY_COEF * rank);
         _clanManager.SetReputation(member, bootyCount / 2);
     }
 }
Example #4
0
        /// <summary>
        /// Продать транспорт
        /// </summary>
        private void SellVehicle(Client player, object[] args)
        {
            var vehicleId = (int)args[0];
            var price     = (int)args[1];

            _playerInfoManager.SetBalance(player, price, true);
            _vehicleInfoManager.RemoveVehicle(player, vehicleId);
            API.sendNotificationToPlayer(player, "~b~Транспорт успешно продан");
        }
Example #5
0
        /// <summary>
        /// Выдает награду за сдачу квеста
        /// </summary>
        protected void SetQuestReward(Client player)
        {
            var playerInfo = PlayerInfoManager.GetInfo(player);
            var clanRank   = (int)playerInfo.Clan.Rank;
            var money      = clanRank * MONEY_REWARD;
            var experience = clanRank * EXP_REWARD;

            PlayerInfoManager.SetBalance(player, money);
            PlayerInfoManager.SetExperience(player, experience);
            _clanManager.SetReputation(player, REP_REWARD, playerInfo);
            ClanManager.SetAuthority(playerInfo.Clan.ClanId, CLAN_AUTHORITY);
            player.resetData(PlayerData.CLAN_QUEST);
        }
Example #6
0
        /// <summary>
        /// Синхронизировать активную работу игрока
        /// </summary>
        private void SyncWork(Client player)
        {
            var activeWork = _workInfoManager.GetActiveWork(player);

            if (activeWork == null)
            {
                return;
            }
            _playerInfoManager.SetBalance(player, activeWork.Salary);
            activeWork.Salary = 0;
            activeWork.Active = false;
            _workInfoManager.SetWorkInfo(player, activeWork);
        }
        /// <summary>
        /// Награда за каждодневный вход в игру
        /// </summary>
        public void ProcessDaysGift(Client player, Account account)
        {
            if (account.LastLogin.Date == DateTime.Today)
            {
                return;
            }
            var totalHours = (DateTime.Now - account.LastLogin).TotalHours;

            if (totalHours >= 24 && totalHours < 48)
            {
                account.DaysInRow = account.DaysInRow < MAX_DAYS_IN_ROW ? account.DaysInRow + 1 : MAX_DAYS_IN_ROW;
            }
            else
            {
                account.DaysInRow = 0;
                return;
            }
            var playerInfo = _playerInfoManager.GetInfo(player);
            var reward     = account.DaysInRow * playerInfo.Level * DAYS_REWARD;

            _playerInfoManager.SetBalance(player, reward, true);
            API.sendNotificationToPlayer(player, "~b~Выдана награда за каждодневный вход в игру");
        }
Example #8
0
        /// <summary>
        /// Выдать награду победителям
        /// </summary>
        protected string SetReward(Queue <Client> winners)
        {
            var message = string.Empty;
            var counter = 0;

            while (winners.Count > 0 && counter < 3)
            {
                counter++;
                var player = winners.Dequeue();
                var reward = _rewards[counter];
                PlayerInfoManager.SetBalance(player, reward.Salary, true);
                PlayerInfoManager.SetExperience(player, reward.Exp);
                message += $"{counter}. {player.name}; ";
            }
            return(message != string.Empty ? $"~g~Победители: {message}" : "~b~Победителей нет");
        }
        /// <summary>
        /// Обработчик выхода пассажира
        /// </summary>
        private void OnPassengerExit(Client passenger)
        {
            API.triggerClientEvent(passenger, ServerEvent.HIDE_GPS_MENU);
            var driver = (Client)passenger.getData(TAXI_DRIVER);

            if (driver == null || !passenger.hasData(TAXI_DRIVER))
            {
                return;
            }
            var cost = (int)passenger.getData(RIDE_COST);

            SetDriverReward(driver, cost);
            _playerInfoManager.SetBalance(passenger, -cost);
            passenger.resetData(RIDE_COST);
            passenger.resetData(TAXI_DRIVER);
            API.sendNotificationToPlayer(passenger, $"Списано ~b~{cost}$");
        }