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; }