Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using GTA;
- using GTA.Native;
- using GTA.Math;
- namespace accident2
- {
- public class accident : Script
- {
- public accident()
- {
- Interval = 100;
- Tick += OnTick;
- }
- void OnTick(object sender, EventArgs e)
- {
- Ped player = Game.Player.Character;
- Vehicle playervehicle = Game.Player.LastVehicle;
- Vehicle[] allvehnear = World.GetNearbyVehicles(Game.Player.Character.Position, 10.0f);
- //text shown if player hit smb, for testing
- int hitvehicle = Function.Call<int>(Hash.GET_TIME_SINCE_PLAYER_HIT_VEHICLE);
- int hitped = Function.Call<int>(Hash.GET_TIME_SINCE_PLAYER_HIT_PED);
- if (hitvehicle < 500 && hitvehicle != 0)
- {
- UI.ShowSubtitle("You have hit a vehicle!", 1000);
- }
- if (hitped < 500 && hitped != 0)
- {
- UI.ShowSubtitle("You have hit a pedestrian!", 1000);
- }
- //start searching for player involved accidents nearby
- foreach (Vehicle damagedvehicle in allvehnear)
- {
- Ped driver = damagedvehicle.GetPedOnSeat(VehicleSeat.Driver);
- //find vehicle damaged by player. vehicle - not player vehicle, not cop vehicle, driver inside, driver not player
- if (damagedvehicle.IsTouching(playervehicle) && damagedvehicle != playervehicle && driver.IsInPoliceVehicle == false && driver != null && driver != player)
- {
- //hazard light on for vehicle in accident
- damagedvehicle.RightIndicatorLightOn = true;
- damagedvehicle.LeftIndicatorLightOn = true;
- //random actions for peds in damagedvehicle
- Random rnd = new Random();
- int chooser = rnd.Next(1, 4);
- //driver takes money
- if (chooser == 1)
- {
- driver.Task.ClearAll();
- driver.AlwaysKeepTask = true;
- driver.Task.LeaveVehicle(damagedvehicle, false);
- driver.Task.UseMobilePhone(5000);
- driver.Task.WanderAround(damagedvehicle.Position, 2f);
- if (Game.Player.Money > 2999 && driver != null && driver != player && driver.Exists())
- {
- ScriptSettings config = ScriptSettings.Load(@".\scripts\accident2.ini");
- int payVictim = config.GetValue<int>("GENERAL", "PAYVICTIM", 3000);
- Game.Player.Money -= Convert.ToInt32(payVictim);
- UI.Notify("You have paid the victim " + Convert.ToInt32(payVictim) + " $ for the damage.");
- }
- else if (driver != null && driver != player && driver.Exists())
- {
- UI.Notify("You don't have enough money to pay the victim!");
- }
- }
- //driver angry
- else if (chooser == 2)
- {
- driver.Task.ClearAll();
- driver.Task.VehicleChase(player);
- driver.Task.AimAt(player.Position, 9000);
- UI.Notify("Driver is angry");
- }
- //driver scared
- else if (chooser == 3)
- {
- driver.Task.ClearAll();
- driver.Task.FleeFrom(player.Position, 10000);
- UI.Notify("Driver is scared");
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement