/// <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); }
/// <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); }
/// <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); } }
/// <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~Транспорт успешно продан"); }
/// <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); }
/// <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~Выдана награда за каждодневный вход в игру"); }
/// <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}$"); }