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); }
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."); }