public static async void SpeedometerTimer_Tick(object sender, EventArgs e, Player player)
        {
            for (var camId = 1; camId < SpeedCameraData.SpeedCameras.Length; camId++)
            {
                if (SpeedCameraData.SpeedCameras[camId] == null)
                {
                    continue;
                }

                if (player.TimeSincePlayerCaughtSpeedingInSeconds > 0)
                {
                    player.TimeSincePlayerCaughtSpeedingInSeconds--;
                    return;
                }

                if (!player.IsInRangeOfPoint(50.0f, SpeedCameraData.SpeedCameras[camId].Position))
                {
                    continue;
                }

                if (player.Speed <= SpeedCameraData.SpeedCameras[camId].Speed)
                {
                    continue;
                }

                player.TimeSincePlayerCaughtSpeedingInSeconds = 40;
                await player.SetWantedLevelAsync(player.Account.Wanted + 1);

                player.SendClientMessage(Color.Red, "You've been caught by a speedtrap, slow down!");

                PoliceController.SendMessage(Color.GreenYellow, $"Player {{FFFF00}}{player.Name}{{00FF00}} is caught speeding, pursue and fine him.");
            }
        }
        private async void MafiaMissionLoadingTimer_Tick(object sender, EventArgs e, Player player)
        {
            switch (player.MissionStep)
            {
            case 1:
                player.MissionStep = 2;
                player.DisableCheckpoint();

                player.MissionTextDraw.Text = $"~w~Hauling ~b~{player.MissionCargo.Name}~w~ from {player.FromLocation.Name} to ~r~{player.ToLocation.Name}~w~";

                player.SetCheckpoint(player.ToLocation.Position, 7.0f);
                await player.SetWantedLevelAsync(player.Account.Wanted + 4);

                PoliceController.SendMessage(Color.GreenYellow, $"Mafia {{FFFF00}}{player.Name}{{00FF00}} is transporting illegal goods, pursue and fine him.");

                player.SendClientMessage(Color.GreenYellow, $"Deliver the {player.MissionCargo.Name} to {player.ToLocation.Name}.");
                break;

            case 2:
                BasePlayer.SendClientMessageToAll(Color.White, $"Mafia {{FF00FF}}{player.Name}{{FFFFFF}} succesfully transported {{0000FF}}{player.MissionCargo.Name}");
                BasePlayer.SendClientMessageToAll(Color.White, $"from {{00FF00}}{player.FromLocation.Name}{{FFFFFF}} to {{00FF00}}{player.ToLocation.Name}.");

                var payment = MissionsController.CalculatePayment(player.FromLocation, player.ToLocation, player.MissionCargo);
                await player.RewardAsync(payment, 2);

                player.SendClientMessage(Color.GreenYellow, $"You finished the mission and earned ${payment}.");

                var playerAccount = player.Account;
                playerAccount.MafiaJobs++;
                await new PlayerAccountRepository(ConnectionFactory.GetConnection).UpdateAsync(playerAccount);

                await EndMissionAsync(player);

                break;
            }

            player.ToggleControllable(true);
        }
Exemple #3
0
        private async Task SetRandomOverloadAsync(Player player)
        {
            var playerTrailerModel = player.Vehicle?.Trailer?.Model;

            if (playerTrailerModel != VehicleModelType.ArticleTrailer &&
                playerTrailerModel != VehicleModelType.ArticleTrailer2)
            {
                return;
            }

            var random = new Random();
            var chance = random.Next(100);

            if (chance > 15)
            {
                return;
            }

            player.IsOverloaded = true;
            await player.SetWantedLevelAsync(player.Account.Wanted + 2);

            PoliceController.SendMessage(Color.GreenYellow, $"Trucker {{FFFF00}}{player.Name}{{00FF00}} is overloaded, pursue and fine him.");
        }
        public static async void OnOverLoadCommandAsync(Player sender)
        {
            if (sender.PlayerClass != PlayerClassType.TruckDriver)
            {
                sender.SendClientMessage(Color.Red, "You are not a truck driver!");
                return;
            }

            if (!sender.IsDoingMission)
            {
                sender.SendClientMessage(Color.Red, "You are not doing any mission!");
                return;
            }

            if (sender.MissionStep != 2)
            {
                sender.SendClientMessage(Color.Red, "You must load your truck first!");
                return;
            }

            if (sender.IsOverloaded)
            {
                sender.SendClientMessage(Color.Red, "You are already overloaded!");
                return;
            }

            if (!sender.IsInRangeOfPoint(25.0f, sender.FromLocation.Position))
            {
                sender.SendClientMessage(Color.Red, "You must be near the loading area!");
                return;
            }

            var playerVehicleModel        = sender.MissionVehicle?.Model;
            var playerVehicleTrailerModel = sender.MissionTrailer?.Model;
            var isValidOverload           = false;

            switch (playerVehicleModel)
            {
            case VehicleModelType.Flatbed:
            case VehicleModelType.DFT30:
                isValidOverload = true;
                break;

            case VehicleModelType.Roadtrain:
            case VehicleModelType.Tanker:
            case VehicleModelType.Linerunner:
                switch (playerVehicleTrailerModel)
                {
                case VehicleModelType.ArticleTrailer:
                case VehicleModelType.ArticleTrailer2:
                case VehicleModelType.ArticleTrailer3:
                    isValidOverload = true;
                    break;
                }

                break;
            }

            if (!isValidOverload)
            {
                return;
            }

            sender.IsOverloaded = true;
            await sender.SetWantedLevelAsync(sender.Account.Wanted + 2);

            sender.SendClientMessage(Color.Yellow, "You have overloaded your truck, watch out for the police.");
            PoliceController.SendMessage(Color.GreenYellow, $"Trucker {{FFFF00}}{sender.Name}{{00FF00}} is overloaded, pursue and fine him.");
        }