Skip to content

Commit 1a43b36

Browse files
authored
Merge pull request #541 from TomGrobbe/development
vMenu v3.8.4
2 parents 28e29d9 + 304448c commit 1a43b36

File tree

4 files changed

+83
-30
lines changed

4 files changed

+83
-30
lines changed

SharedClasses/ConfigManager.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ public enum Setting
3030
vmenu_enable_animals_spawn_menu,
3131
vmenu_pvp_mode,
3232
keep_player_head_props,
33-
vmenu_disable_server_info_convars,
3433
vmenu_player_names_distance,
3534
vmenu_disable_entity_outlines_tool,
3635
vmenu_disable_player_stats_setup,

vMenu/menus/VehicleOptions.cs

Lines changed: 82 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ private void CreateMenu()
185185
GetLabelText("CMOD_PLA_2"), // Plate Index 2 // BlueOnWhite3
186186
GetLabelText("CMOD_PLA_3"), // Plate Index 3 // YellowOnBlue
187187
GetLabelText("CMOD_PLA_4"), // Plate Index 4 // YellowOnBlack
188-
"North Yankton", // Plate Index 5 // NorthYankton
188+
GetLabelText("PROL"), // Plate Index 5 // NorthYankton
189189
GetLabelText("CMOD_PLA_6"), // Plate Index 6 // ECola
190190
GetLabelText("CMOD_PLA_7"), // Plate Index 7 // LasVenturas
191191
GetLabelText("CMOD_PLA_8"), // Plate Index 8 // LibertyCity
@@ -1028,21 +1028,35 @@ private void CreateMenu()
10281028
#endregion
10291029

10301030
#region Vehicle Colors Submenu Stuff
1031+
// color customization menu
1032+
var customizeColorMenu = new Menu("Vehicle Colors", "Customize Colors");
1033+
MenuController.AddSubmenu(VehicleColorsMenu, customizeColorMenu);
1034+
1035+
var colorsCustomizationBtn = new MenuItem("Customize Colors") { Label = "→→→" };
1036+
VehicleColorsMenu.AddMenuItem(colorsCustomizationBtn);
1037+
MenuController.BindMenuItem(VehicleColorsMenu, customizeColorMenu, colorsCustomizationBtn);
1038+
10311039
// primary menu
10321040
var primaryColorsMenu = new Menu("Vehicle Colors", "Primary Colors");
1033-
MenuController.AddSubmenu(VehicleColorsMenu, primaryColorsMenu);
1041+
MenuController.AddSubmenu(customizeColorMenu, primaryColorsMenu);
10341042

10351043
var primaryColorsBtn = new MenuItem("Primary Color") { Label = "→→→" };
1036-
VehicleColorsMenu.AddMenuItem(primaryColorsBtn);
1037-
MenuController.BindMenuItem(VehicleColorsMenu, primaryColorsMenu, primaryColorsBtn);
1044+
customizeColorMenu.AddMenuItem(primaryColorsBtn);
1045+
MenuController.BindMenuItem(customizeColorMenu, primaryColorsMenu, primaryColorsBtn);
10381046

10391047
// secondary menu
10401048
var secondaryColorsMenu = new Menu("Vehicle Colors", "Secondary Colors");
1041-
MenuController.AddSubmenu(VehicleColorsMenu, secondaryColorsMenu);
1049+
MenuController.AddSubmenu(customizeColorMenu, secondaryColorsMenu);
10421050

10431051
var secondaryColorsBtn = new MenuItem("Secondary Color") { Label = "→→→" };
1044-
VehicleColorsMenu.AddMenuItem(secondaryColorsBtn);
1045-
MenuController.BindMenuItem(VehicleColorsMenu, secondaryColorsMenu, secondaryColorsBtn);
1052+
customizeColorMenu.AddMenuItem(secondaryColorsBtn);
1053+
MenuController.BindMenuItem(customizeColorMenu, secondaryColorsMenu, secondaryColorsBtn);
1054+
1055+
var presetColorsBtn = new MenuListItem("Preset Colors", [], 0);
1056+
customizeColorMenu.AddMenuItem(presetColorsBtn);
1057+
1058+
var chrome = new MenuItem("Chrome");
1059+
customizeColorMenu.AddMenuItem(chrome);
10461060

10471061
// color lists
10481062
var classic = new List<string>();
@@ -1108,25 +1122,8 @@ private void CreateMenu()
11081122
var intColorList = new MenuListItem("Interior / Trim Color", classic, 0);
11091123
var vehicleEnveffScale = new MenuSliderItem("Vehicle Enveff Scale", "This works on certain vehicles only, like the besra for example. It 'fades' certain paint layers.", 0, 20, 10, true);
11101124

1111-
var chrome = new MenuItem("Chrome");
1112-
VehicleColorsMenu.AddMenuItem(chrome);
11131125
VehicleColorsMenu.AddMenuItem(vehicleEnveffScale);
11141126

1115-
VehicleColorsMenu.OnItemSelect += (sender, item, index) =>
1116-
{
1117-
var veh = GetVehicle();
1118-
if (veh != null && veh.Exists() && !veh.IsDead && veh.Driver == Game.PlayerPed)
1119-
{
1120-
if (item == chrome)
1121-
{
1122-
SetVehicleColours(veh.Handle, 120, 120); // chrome is index 120
1123-
}
1124-
}
1125-
else
1126-
{
1127-
Notify.Error("You need to be the driver of a driveable vehicle to change this.");
1128-
}
1129-
};
11301127
VehicleColorsMenu.OnSliderPositionChange += (m, sliderItem, oldPosition, newPosition, itemIndex) =>
11311128
{
11321129
var veh = GetVehicle();
@@ -1309,7 +1306,7 @@ async void HandleItemSelect(Menu menu, MenuItem menuItem, int itemIndex)
13091306

13101307
for (var i = 0; i < 2; i++)
13111308
{
1312-
var customColour = new MenuItem("Custom RGB") { Label = ">>>" };
1309+
var customColour = new MenuItem("Custom RGB") { Label = "→→→" };
13131310
var pearlescentList = new MenuListItem("Pearlescent", classic, 0);
13141311
var classicList = new MenuListItem("Classic", classic, 0);
13151312
var metallicList = new MenuListItem("Metallic", classic, 0);
@@ -1353,6 +1350,66 @@ async void HandleItemSelect(Menu menu, MenuItem menuItem, int itemIndex)
13531350
secondaryColorsMenu.OnItemSelect += HandleItemSelect;
13541351
}
13551352
}
1353+
1354+
customizeColorMenu.OnMenuOpen += (_) =>
1355+
{
1356+
int numVehColors = GetNumberOfVehicleColours(GetVehicle().Handle);
1357+
1358+
if (numVehColors == 0)
1359+
{
1360+
presetColorsBtn.Enabled = false;
1361+
presetColorsBtn.ListItems = ["No Preset Colors"];
1362+
presetColorsBtn.ListIndex = 0;
1363+
return;
1364+
}
1365+
1366+
List<string> colorOptions = [];
1367+
1368+
presetColorsBtn.Enabled = true;
1369+
1370+
for (int i = 0; i < numVehColors; i++)
1371+
{
1372+
colorOptions.Add($"Preset Color #{i + 1}");
1373+
}
1374+
1375+
int currentColor = GetVehicleColourCombination(GetVehicle().Handle);
1376+
1377+
presetColorsBtn.ListItems = colorOptions;
1378+
presetColorsBtn.ListIndex = currentColor < 0 ? 0 : currentColor;
1379+
};
1380+
1381+
customizeColorMenu.OnItemSelect += (_, item, _) =>
1382+
{
1383+
var veh = GetVehicle();
1384+
if (veh != null && veh.Exists() && !veh.IsDead && veh.Driver == Game.PlayerPed)
1385+
{
1386+
if (item == chrome)
1387+
{
1388+
SetVehicleColours(veh.Handle, 120, 120); // chrome is index 120
1389+
}
1390+
}
1391+
else
1392+
{
1393+
Notify.Error("You need to be the driver of a driveable vehicle to change this.");
1394+
}
1395+
};
1396+
1397+
customizeColorMenu.OnListItemSelect += (_, _, index, _) => ChangeVehiclePresetColor(index);
1398+
1399+
customizeColorMenu.OnListIndexChange += (_, _, _, index, _) => ChangeVehiclePresetColor(index);
1400+
1401+
void ChangeVehiclePresetColor(int index)
1402+
{
1403+
var veh = GetVehicle();
1404+
if (veh != null && veh.Exists() && !veh.IsDead && veh.Driver == Game.PlayerPed)
1405+
{
1406+
SetVehicleColourCombination(veh.Handle, index);
1407+
}
1408+
else
1409+
{
1410+
Notify.Error("You need to be the driver of a driveable vehicle to change this.");
1411+
}
1412+
}
13561413
#endregion
13571414

13581415
#region Vehicle Doors Submenu Stuff

vMenuServer/MainServer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,7 @@ internal void FreezeServerTime([FromSource] Player source, bool freezeTime)
831831
[EventHandler("vMenu:KickPlayer")]
832832
internal void KickPlayer([FromSource] Player source, int target, string kickReason = "You have been kicked from the server.")
833833
{
834-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPKick, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.POAll, source))
834+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPKick, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.OPAll, source))
835835
{
836836
BanManager.BanCheater(source);
837837
return;

vMenuServer/config/permissions.cfg

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,6 @@ setr vmenu_pvp_mode 0
8080
# false = vMenu will not touch this feature, by default this means that head props will fall off when the player is hit, which is the default behavior for GTA V Single Player peds.
8181
setr keep_player_head_props true
8282

83-
# Set this to true if you don't want vMenu to use any server information convars.
84-
setr vmenu_disable_server_info_convars false
85-
8683
# Distance for playerblips to showup. This is using "game units" as measurement. It's unknown
8784
# what this is in relation to meters or something similar, but 500.0 seems fine in most cases.
8885
setr vmenu_player_names_distance 500.0

0 commit comments

Comments
 (0)