/// <summary> /// Обработать данные владельца дома /// </summary> private void ProcessOwner(HouseInfo house) { var player = _playerInfoManager.GetWithData(house.OwnerId); if (PlayerHelper.PlayerCorrect(player.Player)) { var houseId = PlayerHelper.GetData(player.Player, HouseMenuHandler.IN_HOUSE, NO_OWNER); if (houseId == house.Id) { player.Player.resetData(HouseMenuHandler.IN_HOUSE); API.setEntityPosition(player.Player, PositionConverter.ToVector3(house.Position)); API.setEntityDimension(player.Player, 0); } MoveVehiclesOnParking(player.PlayerInfo.Vehicles.Values, player.Player); _playerInfoManager.RefreshUI(player.Player, player.PlayerInfo); API.sendNotificationToPlayer(player.Player, "~b~Аренда дома подошла к концу"); } else { MoveVehiclesOnParking(player.PlayerInfo.Vehicles.Values); player.PlayerInfo.LastPosition = house.Position; player.PlayerInfo.Dimension = 0; _playerInfoManager.Set(player.PlayerInfo); } }
/// <summary> /// Выплачивает доли участникам клана /// </summary> private void PayOut() { var activeAccounts = _accountsProvider.GetActive(); var membersByClan = activeAccounts .Select(e => _playerInfoManager.GetWithData(e.Id)) .Where(e => e.PlayerInfo.Clan != null) .GroupBy(e => e.PlayerInfo.Clan.ClanId) .ToDictionary(e => e.Key, e => e.ToList()); foreach (var clan in membersByClan) { PayOutByClan(clan.Key, clan.Value); } }
/// <summary> /// Возвращает информацию о транспорте по инстансу /// </summary> public VehicleInfo GetInfoByHandle(NetHandle handle) { var vehicle = API.getEntityFromHandle <Vehicle>(handle); if (!vehicle.hasData(VehicleManager.OWNER_ID)) { return(null); } var ownerId = (long)vehicle.getData(VehicleManager.OWNER_ID); var vehicleId = (long)vehicle.getData(VehicleManager.VEHICLE_ID); var playerData = _playerInfoManager.GetWithData(ownerId, false); VehicleInfo result; if (playerData.Player == null) { result = _vehiclesProvider.Get(vehicleId); } else { playerData.PlayerInfo.Vehicles.TryGetValue(vehicleId, out result); } return(result); }