コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
ファイル: ClanManager.cs プロジェクト: vodkalola/fenris
        /// <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);
            }
        }
コード例 #3
0
        /// <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);
        }