Skip to content

Commit 145cfd5

Browse files
committed
Add CyclistsBreakLaws option
1 parent 487490a commit 145cfd5

File tree

3 files changed

+27
-11
lines changed

3 files changed

+27
-11
lines changed

BicycleCity/BicycleCity.cs

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,19 @@ public class BicycleCity : Script
1111
int bikesPercentage;
1212
bool aggressiveDrivers;
1313
bool aggressiveCyclists;
14+
bool cyclistsBreakLaws;
1415
DateTime lastTime;
1516
string[] availableBicycles = { "BMX", "CRUISER", "FIXTER", "SCORCHER", "TRIBIKE", "TRIBIKE2", "TRIBIKE3" };
16-
VehicleDrivingFlags customDrivingStyle = VehicleDrivingFlags.AvoidEmptyVehicles |
17-
VehicleDrivingFlags.AvoidObjects |
18-
VehicleDrivingFlags.AvoidPeds |
19-
VehicleDrivingFlags.AvoidVehicles |
20-
VehicleDrivingFlags.StopAtTrafficLights;
17+
VehicleDrivingFlags aggressiveDrivingStyle = VehicleDrivingFlags.AvoidEmptyVehicles |
18+
VehicleDrivingFlags.AvoidObjects |
19+
VehicleDrivingFlags.AvoidPeds |
20+
VehicleDrivingFlags.AvoidVehicles |
21+
VehicleDrivingFlags.StopAtTrafficLights;
22+
VehicleDrivingFlags lawBreakerDrivingStyle = VehicleDrivingFlags.AllowGoingWrongWay |
23+
VehicleDrivingFlags.AllowMedianCrossing |
24+
VehicleDrivingFlags.AvoidEmptyVehicles |
25+
VehicleDrivingFlags.AvoidObjects |
26+
VehicleDrivingFlags.AvoidVehicles;
2127

2228
public BicycleCity()
2329
{
@@ -27,6 +33,7 @@ public BicycleCity()
2733
bikesPercentage = 100;
2834
aggressiveDrivers = settings.GetValue("Main", "AggressiveDrivers", false);
2935
aggressiveCyclists = settings.GetValue("Main", "AggressiveCyclists", false);
36+
cyclistsBreakLaws = settings.GetValue("Main", "CyclistsBreakLaws", false);
3037
lastTime = DateTime.UtcNow;
3138
Tick += OnTick;
3239
}
@@ -40,16 +47,17 @@ void OnTick(object sender, EventArgs e)
4047
int bicycles = 0;
4148
foreach (Vehicle vehicle in allVehicles)
4249
{
43-
if (vehicle.Model.IsBicycle && vehicle.Driver != null && !vehicle.Driver.IsPlayer)
50+
if (vehicle.Driver == null || vehicle.Driver.IsPlayer)
51+
continue;
52+
if (vehicle.Model.IsBicycle)
4453
bicycles++;
4554
else if (!vehicle.Model.IsTrain && !vehicle.Model.IsBoat &&
4655
!vehicle.Model.IsHelicopter && !vehicle.Model.IsPlane &&
47-
!Function.Call<bool>(Hash.IS_ENTITY_A_MISSION_ENTITY, vehicle) &&
48-
vehicle.Driver != null && !vehicle.Driver.IsPlayer)
56+
!Function.Call<bool>(Hash.IS_ENTITY_A_MISSION_ENTITY, vehicle))
4957
{
5058
canChange.Add(vehicle);
5159
if (aggressiveDrivers)
52-
Function.Call(Hash.SET_DRIVE_TASK_DRIVING_STYLE, vehicle.Driver, (int)customDrivingStyle);
60+
Function.Call(Hash.SET_DRIVE_TASK_DRIVING_STYLE, vehicle.Driver, (int)aggressiveDrivingStyle);
5361
}
5462
}
5563
int toChange = (bicycles + canChange.Count) * bikesPercentage / 100 - bicycles;
@@ -74,8 +82,14 @@ void OnTick(object sender, EventArgs e)
7482
newVehicle.MaxSpeed = 10;
7583
canChange[i].Delete();
7684
driver.SetIntoVehicle(newVehicle, VehicleSeat.Driver);
77-
Function.Call(Hash.TASK_VEHICLE_DRIVE_WANDER, driver, newVehicle, (float)random.Next(4, 8),
78-
aggressiveCyclists ? (int)customDrivingStyle : (int)DrivingStyle.Normal);
85+
int drivingStyle;
86+
if (cyclistsBreakLaws)
87+
drivingStyle = (int)lawBreakerDrivingStyle;
88+
else if (aggressiveCyclists)
89+
drivingStyle = (int)aggressiveDrivingStyle;
90+
else
91+
drivingStyle = (int)DrivingStyle.Normal;
92+
Function.Call(Hash.TASK_VEHICLE_DRIVE_WANDER, driver, newVehicle, (float)random.Next(4, 8), drivingStyle);
7993
Function.Call(Hash.SET_PED_KEEP_TASK, driver, true);
8094
driver.MarkAsNoLongerNeeded();
8195
newVehicle.MarkAsNoLongerNeeded();

BicycleCity/BicycleCity.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
BikesPercentage=50
33
AggressiveDrivers=false
44
AggressiveCyclists=false
5+
CyclistsBreakLaws=false

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Replace cars by bikes (GTA V mod)
88
- Change `BikesPercentage` if you want more or less cars replaced by bikes
99
- Set `AggressiveDrivers` to `true` if you want drivers to overtake slower vehicles
1010
- Set `AggressiveCyclists` to `true` if you want cyclists to overtake slower vehicles
11+
- Set `CyclistsBreakLaws` to `true` if you want cyclists to break traffic laws
1112

1213
## Download
1314
https://github.com/oldnapalm/BicycleCity/releases/latest

0 commit comments

Comments
 (0)