void Start() { playerShipStartOffset = shipSpeed * cutSceneLength; gameSummary = GameObject.Find("Canvas").transform.Find("GameSummary").gameObject; gameSummary.SetActive(false); scoreText = GameObject.Find("Canvas").transform.Find("Score").GetComponent <Text> (); tm = GameObject.Find("TerrainManager").GetComponent <TerrainManager> (); pc = GameObject.Find("Player").GetComponent <PlayerController> (); police = GameObject.Find("Police").GetComponent <PoliceController> (); cutsceneExit = GameObject.Find("Canvas").GetComponentInChildren <Animation> (); if (!playedCutscene) { StartCutscene(); } else { scoreText.enabled = true; } // initialize high score if (!PlayerPrefs.HasKey("HighScore")) { PlayerPrefs.SetInt("HighScore", 0); } }
public static async void OnUnJailCommandAsync(Player sender, Player target) { if (!target.IsLoggedIn) { sender.SendClientMessage(Color.Red, Messages.PlayerNotLoggedIn); return; } if (target == sender) { sender.SendClientMessage(Color.Red, Messages.CommandNotAllowedOnSelf); return; } if (target.Account.Jailed == 0) { sender.SendClientMessage(Color.Red, "Player is not jailed."); return; } var targetAccount = target.Account; targetAccount.Jailed = 0; await new PlayerAccountRepository(ConnectionFactory.GetConnection).UpdateAsync(targetAccount); PoliceController.ReleasePlayerFromJail(target); target.SendClientMessage(Color.GreenYellow, $"You have been un-jailed by {AdminRanks.AdminLevelNames[sender.Account.AdminLevel]} {sender.Name}."); sender.SendClientMessage(Color.GreenYellow, $"You have un-jailed {{FFFF00}}{target.Name}."); }
public void Unpause() { if (pc == null) { pc = GameObject.Find("Player").GetComponent <PlayerController> (); } if (police == null) { police = GameObject.Find("Police").GetComponent <PoliceController> (); } if (gameSummary == null) { gameSummary = GameObject.Find("Canvas").transform.Find("GameSummary").gameObject; } gameSummary.SetActive(false); if (scoreText == null) { scoreText = GameObject.Find("Canvas").transform.Find("Score").GetComponent <Text> (); } // audio if (menuAudio.isPlaying) { menuAudio.Stop(); gameAudio.Play(); } scoreText.enabled = true; paused = false; pc.Unpause(); police.Unpause(); }
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."); } }
public static async Task ClassEndMissionAsync(Player player) { switch (player.PlayerClass) { case PlayerClassType.TruckDriver: await TruckerController.EndMissionAsync(player); break; case PlayerClassType.BusDriver: BusDriverController.EndMission(player); break; case PlayerClassType.Pilot: PilotController.EndMission(player); break; case PlayerClassType.Police: PoliceController.EndMission(player); break; case PlayerClassType.Mafia: await MafiaController.EndMissionAsync(player); break; case PlayerClassType.Assistance: AssistanceController.EndMission(player); break; } }
private void Class_PlayerSpawned(object sender, SpawnEventArgs e) { if (!(sender is Player player)) { return; } switch (player.PlayerClass) { case PlayerClassType.TruckDriver: player.Color = PlayerClassColor.TruckerColor; break; case PlayerClassType.BusDriver: player.Color = PlayerClassColor.BusDriverColor; break; case PlayerClassType.Pilot: player.Color = PlayerClassColor.PilotColor; break; case PlayerClassType.Police: player.Color = PlayerClassColor.PoliceColor; player.CheckTimer?.Dispose(); player.CheckTimer = new Timer(TimeSpan.FromSeconds(1), true); player.CheckTimer.Tick += (senderObject, ev) => PoliceController.PoliceCheckTimer_Tick(senderObject, ev, player); if (Configuration.Instance.CanPoliceHaveWeapons) { foreach (var weapon in Configuration.PoliceWeapons) { player.GiveWeapon(weapon, Configuration.Instance.PoliceWeaponsAmmo); } } break; case PlayerClassType.Mafia: player.Color = PlayerClassColor.MafiaColor; player.CheckTimer?.Dispose(); player.CheckTimer = new Timer(TimeSpan.FromSeconds(1), true); player.CheckTimer.Tick += (senderObject, ev) => MafiaController.MafiaCheckTimer_Tick(senderObject, ev, player); break; case PlayerClassType.Assistance: player.Color = PlayerClassColor.AssistanceColor; player.CheckTimer?.Dispose(); player.CheckTimer = new Timer(TimeSpan.FromSeconds(1), true); player.CheckTimer.Tick += (senderObject, ev) => AssistanceController.AssistanceCheckTimer_Tick(senderObject, ev, player); break; } }
public static async void OnJailCommand(Player sender, Player target, int seconds, string reason) { if (!target.IsLoggedIn) { sender.SendClientMessage(Color.Red, Messages.PlayerNotLoggedIn); return; } if (target.Account.AdminLevel > 0) { sender.SendClientMessage(Color.Red, "You can't use this command on admins."); return; } if (target == sender) { sender.SendClientMessage(Color.Red, Messages.CommandNotAllowedOnSelf); return; } if (target.Account.Jailed != 0) { sender.SendClientMessage(Color.Red, "Player is already jailed."); return; } if (seconds < 1) { sender.SendClientMessage(Color.Red, "Seconds must be higher than 1."); return; } await PoliceController.JailPlayerAsync(target, seconds); target.SendClientMessage(Color.Red, $"You have been jailed by {AdminRanks.AdminLevelNames[sender.Account.AdminLevel]} {sender.Name} for {seconds} seconds."); target.SendClientMessage(Color.Red, $"Reason: {reason}."); sender.SendClientMessage(Color.White, $"You have jailed {{FFFF00}}{target.Name}{{00FF00}} for {{FFFF00}}{seconds}{{00FF00}} seconds."); }
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."); }
void Awake() { me = this; }
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."); }