private async void BusDriverLoadUnload_Tick(object sender, EventArgs e, Player player, int passangersInBusStop)
        {
            var passangersGettingOffTheBus = 0;
            var random = new Random();

            player.DisableCheckpoint();
            player.DisableRaceCheckpoint();

            player.MissionStep++;

            if (player.BusPassengers > 0)
            {
                passangersGettingOffTheBus = random.Next(player.BusPassengers);
            }

            player.BusPassengers -= passangersGettingOffTheBus;
            player.BusPassengers += passangersInBusStop;

            var nextStep          = player.MissionStep;
            var nextLocationIndex = player.BusRoute.Locations[nextStep];

            if (nextLocationIndex == -1)
            {
                BasePlayer.SendClientMessageToAll(Color.White, $"BusDriver {{FF00FF}}{player.Name}{{FFFFFF}} succesfully completed bus-line {{0000FF}}{player.BusRoute.LineNumber}{{FFFFFF}}.");

                nextStep           = 1;
                player.MissionStep = nextStep;
                nextLocationIndex  = player.BusRoute.Locations[nextStep];

                var depot = BusRoute.GetLocation(player.BusRoute.HomeDepot);
                player.SetCheckpoint(depot.Position, 7.0f);
                await player.RewardAsync(0, player.BusRoute.Score);

                var playerAccount = player.Account;
                playerAccount.BusDriverJobs++;
                await AccountRepository.UpdateAsync(playerAccount);
            }

            player.MissionTextDraw.Text = $"~w~Line ~y~{player.BusRoute.LineNumber}~w~ (~g~{player.BusRoute.Description}~w~): ~b~{player.BusPassengers}~w~ on bus.";

            var nextLocation = BusRoute.GetLocation(nextLocationIndex);

            player.SetRaceCheckpoint(SampSharp.GameMode.Definitions.CheckpointType.Nothing, nextLocation.Position, Vector3.Zero, 7.0f);

            player.ToggleControllable(true);

            if (passangersGettingOffTheBus == 0)
            {
                return;
            }

            var payment = passangersGettingOffTheBus * 9;
            await player.RewardAsync(payment);

            player.GameText($"~g~You've earned ${payment}~w~", 3000, 4);
        }
        public static void StartMission(Player player, BusRoute busRoute)
        {
            player.IsDoingMission = true;
            player.MissionVehicle = (Vehicle)player.Vehicle;
            player.BusRoute       = busRoute;
            player.MissionStep    = 0;

            player.BusPassengers        = 0;
            player.MissionTextDraw.Text = $"~w~Line ~y~{busRoute.LineNumber}~w~ (~g~{busRoute.Description}~w~): ~b~{player.BusPassengers}~w~ on bus.";

            var startLocation = BusRoute.GetLocation(busRoute.Locations[0]);

            player.SetRaceCheckpoint(SampSharp.GameMode.Definitions.CheckpointType.Nothing, startLocation.Position, Vector3.Zero, 7.0f);
            player.MissionVehicleTime = Configuration.Instance.FailMissionSeconds;
        }