Skip to content

Commit 4d6d2d9

Browse files
committed
feat(HandlingEditor): add custom callback support
- Add custom callback definitions for user-generated presets.
1 parent 416cd8c commit 4d6d2d9

18 files changed

Lines changed: 484 additions & 128 deletions

.editorconfig

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,8 @@ max_line_length = unset
1010
[*.lua]
1111
indent_style = tab
1212

13-
[*.py]
13+
[*.{py,md,yml,json}]
1414
indent_style = space
1515

16-
[*.yml]
17-
indent_style = space
16+
[*.{yml,md}]
1817
indent_size = 2
19-
20-
[*.json]
21-
indent_style = space
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
-- Copyright (C) 2026 SAMURAI (xesdoog) & Contributors.
2+
-- This file is part of Samurai's Scripts.
3+
--
4+
-- Permission is hereby granted to copy, modify, and redistribute
5+
-- this code as long as you respect these conditions:
6+
-- * Credit the owner and contributors.
7+
-- * Provide a copy of or a link to the original license (GPL-3.0 or later); see LICENSE.md or <https://www.gnu.org/licenses/>.
8+
9+
10+
-- [[Summary]]
11+
--
12+
-- Handling presets define what vehicle flags they toggle and what vehicle types they are compatible with.
13+
-- This file extends that by defining additional logic that a handling preset can execute when enabled, when disabled, or both.
14+
-- User-generated presets can provide an additional file name parameter in their metadata, which would point to a user-defined file that looks exactly like this one (minus the LuaLS annotations).
15+
-- The reason they must define a separate file is so that script updates do not touch their custom logic (if custom preset logic is defined here, it will be wiped with each update).
16+
-- And the reason code execution is defined in a separate file in the first place is because both Lua's load and loadstring functions are removed from this sandbox.
17+
--
18+
-- NOTE: This file is only for default callbacks. Please do not edit unless you're contributing a new default handling preset.
19+
-- For user-generated callbacks, you can define a new file with the same structure of this one.
20+
21+
---@alias HandlingPresetCallback fun(self: HandlingPreset, editor: HandlingEditor): boolean
22+
---@alias HandlingPresetCallbackData { onEnable: HandlingPresetCallback, onDisable: HandlingPresetCallback }
23+
24+
---@type dict<HandlingPresetCallbackData>
25+
return {
26+
["VEH_KERS_BOOST"] = {
27+
onEnable = function(_)
28+
local PV = LocalPlayer:GetVehicle()
29+
if (not PV:IsValid()) then return true end
30+
VEHICLE.SET_VEHICLE_KERS_ALLOWED(PV:GetHandle(), true)
31+
return true
32+
end,
33+
onDisable = function(_)
34+
local PV = LocalPlayer:GetVehicle()
35+
if (not PV:IsValid()) then return true end
36+
VEHICLE.SET_VEHICLE_KERS_ALLOWED(PV:GetHandle(), false)
37+
return true
38+
end
39+
},
40+
["VEH_ROCKET_BOOST"] = {
41+
onEnable = function(_)
42+
Game.RequestNamedPtfxAsset("VEH_IMPEXP_ROCKET")
43+
return true
44+
end,
45+
onDisable = function(_)
46+
STREAMING.REMOVE_NAMED_PTFX_ASSET("VEH_IMPEXP_ROCKET")
47+
return true
48+
end
49+
},
50+
["VEH_JUMP"] = {
51+
onEnable = function(_)
52+
local PV = LocalPlayer:GetVehicle()
53+
if (not PV:IsValid()) then return true end
54+
VEHICLE.SET_USE_HIGHER_CAR_JUMP(PV:GetHandle(), true)
55+
return true
56+
end,
57+
onDisable = function(_)
58+
local PV = LocalPlayer:GetVehicle()
59+
if (not PV:IsValid()) then return true end
60+
VEHICLE.SET_USE_HIGHER_CAR_JUMP(PV:GetHandle(), false)
61+
return true
62+
end
63+
},
64+
["VEH_OFFROAD_ABILITIES"] = {
65+
onEnable = function(_)
66+
local PV = LocalPlayer:GetVehicle()
67+
if (not PV:IsValid()) then return true end
68+
local stancer = PV.m_stancer
69+
local deltas = stancer.m_deltas
70+
local front = deltas[Enums.eWheelAxle.FRONT]
71+
local rear = deltas[Enums.eWheelAxle.REAR]
72+
front.m_susp_comp = 0.1207
73+
front.m_track_width = -0.047
74+
rear.m_susp_comp = 0.1201
75+
rear.m_track_width = -0.052
76+
PV:ActivatePhysics()
77+
return true
78+
end,
79+
onDisable = function(_)
80+
local PV = LocalPlayer:GetVehicle()
81+
if (not PV:IsValid()) then return true end
82+
PV.m_stancer:ResetDeltas(true)
83+
PV:ActivatePhysics()
84+
return true
85+
end
86+
},
87+
}

SSV2/includes/frontend/vehicle/handling_editor_ui.lua

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ local newPresetWindowData = {
3434
wantsAutoEnable = false,
3535
nameBuffer = "",
3636
descBuffer = "",
37+
cb_filename = "",
3738
vehTypesBs = 1 << CARS_BIT,
3839
}
3940

@@ -396,6 +397,7 @@ local function clearPresetWindow()
396397
newPresetWindowData.shouldDraw = false
397398
newPresetWindowData.nameBuffer = ""
398399
newPresetWindowData.descBuffer = ""
400+
newPresetWindowData.cb_filename = ""
399401
newPresetWindowData.vehTypesBs = 1 << CARS_BIT
400402
newPresetWindowData.wantsAutoEnable = false
401403
end
@@ -414,8 +416,18 @@ local function drawNewPresetWindow()
414416

415417
local data = newPresetWindowData
416418
GUI:QuickConfigWindow(_T("VEH_FLAGS_NEW_PRESET_LABEL"), function()
417-
data.nameBuffer = ImGui.InputTextWithHint("*##newPresetName", _T("GENERIC_NAME"), data.nameBuffer, 64)
418-
data.descBuffer = ImGui.InputTextWithHint("*##newPresetDesc", _T("GENERIC_DESCRIPTION"), data.descBuffer, 512)
419+
data.nameBuffer = ImGui.InputTextWithHint("*##newPresetName", _T("GENERIC_NAME"), data.nameBuffer, 64)
420+
data.descBuffer = ImGui.InputTextWithHint("*##newPresetDesc", _T("GENERIC_DESCRIPTION"), data.descBuffer, 512)
421+
data.cb_filename = ImGui.InputTextWithHint(
422+
"*##newPresetCb",
423+
_T("GENERIC_FILENAME"),
424+
data.cb_filename,
425+
64,
426+
ImGuiInputTextFlags.CharsNoBlank
427+
); data.cb_filename = data.cb_filename:gsub("[/\\]", ""):gsub("%.lua$", "")
428+
429+
GUI:HelpMarker(_T("VEH_FLAGS_NEW_PRESET_CB_FILE_TT"))
430+
419431
data.wantsAutoEnable = GUI:Checkbox(_T("GENERIC_AUTO_ENABLE"), data.wantsAutoEnable)
420432

421433
ImGui.SeparatorText(_T("VEH_FLAGS_NEW_PRESET_VEHICLE_BS"))

SSV2/includes/lib/translations/__hashmap.json

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -916,10 +916,25 @@
916916
"VEH_FLAGS_DUMP_PRESET_FLAGS": 1098661655,
917917
"VEH_FLAGS_NEW_PRESET_LABEL": 911779787,
918918
"VEH_FLAGS_NEW_PRESET_WARN": 437780605,
919-
"VEH_FLAGS_NEW_PRESET_ERR": 238844597,
919+
"VEH_FLAGS_NEW_PRESET_ERR": 2107046850,
920920
"VEH_FLAGS_AUTOENABLE_TT": 2099506946,
921921
"VEH_WHEELIE": 1312514367,
922922
"VEH_WHEELIE_TT": 1078832554,
923923
"VEH_RAMP": 2320526273,
924-
"VEH_RAMP_TT": 3419610168
924+
"VEH_RAMP_TT": 3419610168,
925+
"GENERIC_FILENAME": 1329825064,
926+
"GENERIC_DATA_PARSE_FAIL": 3671310510,
927+
"GENERIC_CLIPBOARD_COPY": 2191575660,
928+
"GENERIC_CLIPBOARD_PASTE": 1063653002,
929+
"GENERIC_CLIPBOARD_GET": 1809041275,
930+
"GENERIC_CLIPBOARD_DECODE": 3482670203,
931+
"VEH_FLAGS_NEW_PRESET_CB_FILE_TT": 2638971325,
932+
"VEH_FLAGS_PRESET_NO_SHARE": 4244152419,
933+
"VEH_FLAGS_PRESET_SHARE_SUCCESS_FMT": 3916590098,
934+
"VEH_FLAGS_PRESET_FILTER_CARS_ONLY": 1436984881,
935+
"VEH_FLAGS_PRESET_PARSER_TOOLTIP": 2687658204,
936+
"VEH_FLAGS_PRESET_IMPORT_FAIL": 864386904,
937+
"VEH_FLAGS_PRESET_IMPORT_SUCCESS": 765458080,
938+
"VEH_FLAGS_PRESET_FILTER_BIKES_ONLY": 2676329517,
939+
"VEH_FLAGS_PRESET_FILTER_BOTH": 57533967
925940
}

SSV2/includes/lib/translations/de-DE.lua

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -917,9 +917,24 @@ return {
917917
["VEH_FLAGS_NEW_PRESET_WARN"] = "Sie verfügen derzeit über eine oder mehrere aktive Voreinstellungen. Beim Erstellen eines neuen Flags werden alle Flags berücksichtigt, die durch die aktive(n) Voreinstellung(en) geändert wurden.\n\nSind Sie sicher, dass Sie trotzdem fortfahren möchten?",
918918
["VEH_WHEELIE"] = "Wheelie",
919919
["VEH_FLAGS_NEW_PRESET_LABEL"] = "Neue Voreinstellung",
920-
["VEH_FLAGS_NEW_PRESET_ERR"] = "Voreinstellung konnte nicht hinzugefügt werden! Eine Voreinstellung mit demselben Namen ist bereits vorhanden.",
920+
["VEH_FLAGS_NEW_PRESET_ERR"] = "Es existiert bereits ein Preset mit demselben Namen!",
921921
["VEH_FLAGS_AUTOENABLE_TT"] = "Diese Voreinstellung wird automatisch aktiviert, sobald Sie ein neues Fahrzeug betreten. Sie können eine Voreinstellung immer noch deaktivieren, während Sie „Automatisch aktivieren“ aktiviert haben, sie wird jedoch erst dann wieder aktiviert, wenn Sie das Fahrzeug wechseln (Ihr Fahrzeug neu starten, das Skript neu laden oder in ein anderes Fahrzeug einsteigen).",
922922
["VEH_WHEELIE_TT"] = "NUR AUTOS: Gibt Ihnen die Möglichkeit, Wheelies in jedem Auto auszuführen, genau wie bei Standard-Muscle-Cars: Halten Sie „Handbremse“ + „Beschleunigen“ einige Sekunden lang gedrückt und lassen Sie dann die Handbremse los.",
923923
["VEH_RAMP_TT"] = "Rüstet Ihr Fahrzeug mit einem Rampen-Mod (nicht sichtbar) aus und verleiht ihm eine große Rammkraft gegen alle Fahrzeuge, wodurch es praktisch unaufhaltbar wird.",
924-
["VEH_RAMP"] = "Rampen-Mod"
924+
["VEH_RAMP"] = "Rampen-Mod",
925+
["GENERIC_FILENAME"] = "Dateiname",
926+
["GENERIC_CLIPBOARD_COPY"] = "In die Zwischenablage kopieren",
927+
["GENERIC_DATA_PARSE_FAIL"] = "Daten konnten nicht analysiert werden! Bitte versuchen Sie es später noch einmal.",
928+
["GENERIC_CLIPBOARD_PASTE"] = "Aus der Zwischenablage einfügen",
929+
["GENERIC_CLIPBOARD_DECODE"] = "Daten aus der Zwischenablage dekodieren",
930+
["VEH_FLAGS_PRESET_FILTER_BOTH"] = "Autos und Fahrräder",
931+
["VEH_FLAGS_PRESET_IMPORT_FAIL"] = "Voreinstellung konnte nicht importiert werden. Bitte versuchen Sie es später noch einmal.",
932+
["VEH_FLAGS_PRESET_FILTER_BIKES_ONLY"] = "Nur Fahrräder",
933+
["VEH_FLAGS_PRESET_FILTER_CARS_ONLY"] = "Nur Autos",
934+
["VEH_FLAGS_PRESET_IMPORT_SUCCESS"] = "Neue Voreinstellung wurde erfolgreich importiert.",
935+
["VEH_FLAGS_PRESET_NO_SHARE"] = "Standardvoreinstellungen können nicht geteilt werden, da sie für alle gleich sind.",
936+
["VEH_FLAGS_PRESET_SHARE_SUCCESS_FMT"] = "Die Voreinstellung „%s“ wurde auf Ihr Clipboard kopiert und in der Konsole protokolliert. Andere Skriptbenutzer können die Voreinstellung importieren, indem sie die Daten in das Fenster „Importieren“ einfügen.",
937+
["VEH_FLAGS_PRESET_PARSER_TOOLTIP"] = "Die Voreinstellung wird hier angezeigt, sobald gültige Daten dekodiert wurden.",
938+
["VEH_FLAGS_NEW_PRESET_CB_FILE_TT"] = "Optionaler Name der Callback-Definitionsdatei. Wenn Sie nicht wissen, was das ist, lassen Sie es bitte leer.",
939+
["GENERIC_CLIPBOARD_GET"] = "Daten aus der Zwischenablage abrufen"
925940
}

SSV2/includes/lib/translations/en-US.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ return {
5050
["GENERIC_IMPORTANT"] = "Important",
5151
["GENERIC_GENERAL_LABEL"] = "General",
5252
["GENERIC_NAME"] = "Name",
53+
["GENERIC_FILENAME"] = "File Name",
5354
["GENERIC_OPTIONS_LABEL"] = "Options",
5455
["GENERIC_PREFERENCES_LABEL"] = "Preferences",
5556
["GENERIC_POSITION_LABEL"] = "Position",
@@ -618,6 +619,7 @@ return {
618619
["VEH_FLAGS_FILTER_ENABLED_ONLY"] = "Enabled Only",
619620
["VEH_FLAGS_FILTER_DISABLED_ONLY"] = "Disabled Only",
620621
["VEH_FLAGS_NEW_PRESET"] = "Save As Preset",
622+
["VEH_FLAGS_NEW_PRESET_CB_FILE_TT"] = "Optional callback definitions file name. If you don't know what this is, please leave it empty.",
621623
["VEH_FLAGS_NEW_PRESET_SUCCESS"] = "Preset '%s' has been successfully registered.",
622624
["VEH_FLAGS_NEW_PRESET_VEHICLE_BS"] = "Allowed Vehicle Types",
623625
["VEH_FLAGS_ADVANCED"] = "Advanced Flags",

SSV2/includes/lib/translations/es-ES.lua

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -916,10 +916,25 @@ return {
916916
["VEH_FLAGS_NEW_PRESET_VEHICLE_BS"] = "Tipos de vehículos permitidos",
917917
["VEH_FLAGS_NEW_PRESET_WARN"] = "Actualmente tienes uno o más ajustes preestablecidos activos. La generación de uno nuevo incluirá todos los indicadores que hayan sido modificados por los ajustes preestablecidos activos.\n\n¿Estás seguro de que deseas continuar de todos modos?",
918918
["VEH_FLAGS_NEW_PRESET_LABEL"] = "Nuevo preestablecido",
919-
["VEH_FLAGS_NEW_PRESET_ERR"] = "¡No se pudo agregar el ajuste preestablecido! Ya existe un preset con el mismo nombre.",
919+
["VEH_FLAGS_NEW_PRESET_ERR"] = "¡Ya existe un preset con el mismo nombre!",
920920
["VEH_WHEELIE_TT"] = "SÓLO COCHES: Te ofrece la posibilidad de realizar caballitos en cualquier coche como los muscle cars predeterminados: mantén pulsado \"Freno de mano\" + \"Acelerar\" durante unos segundos y luego suelta el freno de mano.",
921921
["VEH_FLAGS_AUTOENABLE_TT"] = "Este ajuste preestablecido se habilitará automáticamente tan pronto como ingrese a un vehículo nuevo. Aún puedes deshabilitar un ajuste preestablecido mientras tienes activado 'Auto-Habilitar', pero solo se volverá a habilitar una vez que cambies de vehículo (reapareces tu vehículo, recargas el script o te subes a un vehículo diferente).",
922922
["VEH_WHEELIE"] = "caballito",
923923
["VEH_RAMP"] = "Modificación de rampa",
924-
["VEH_RAMP_TT"] = "Equipa tu vehículo con un mod de rampa (no visible) y le da una gran fuerza de embestida contra todos los vehículos, esencialmente haciéndolo imparable."
924+
["VEH_RAMP_TT"] = "Equipa tu vehículo con un mod de rampa (no visible) y le da una gran fuerza de embestida contra todos los vehículos, esencialmente haciéndolo imparable.",
925+
["GENERIC_FILENAME"] = "Nombre del archivo",
926+
["GENERIC_CLIPBOARD_COPY"] = "Copiar al portapapeles",
927+
["GENERIC_CLIPBOARD_PASTE"] = "Pegar desde el portapapeles",
928+
["GENERIC_CLIPBOARD_GET"] = "Obtener datos del portapapeles",
929+
["GENERIC_DATA_PARSE_FAIL"] = "¡Error al analizar los datos! Inténtelo de nuevo más tarde.",
930+
["VEH_FLAGS_PRESET_IMPORT_FAIL"] = "No se pudo importar el ajuste preestablecido. Inténtelo de nuevo más tarde.",
931+
["GENERIC_CLIPBOARD_DECODE"] = "Decodificar datos del portapapeles",
932+
["VEH_FLAGS_PRESET_FILTER_CARS_ONLY"] = "Solo autos",
933+
["VEH_FLAGS_PRESET_NO_SHARE"] = "Los ajustes preestablecidos predeterminados no se pueden compartir ya que son iguales para todos.",
934+
["VEH_FLAGS_PRESET_SHARE_SUCCESS_FMT"] = "El preajuste '%s' se copió en tu clipbloard y se registró en la consola. Otros usuarios del script pueden importar el ajuste preestablecido pegando los datos en la ventana \"Importar\".",
935+
["VEH_FLAGS_NEW_PRESET_CB_FILE_TT"] = "Nombre de archivo de definiciones de devolución de llamada opcional. Si no sabes qué es esto, déjalo vacío.",
936+
["VEH_FLAGS_PRESET_FILTER_BIKES_ONLY"] = "Sólo bicicletas",
937+
["VEH_FLAGS_PRESET_FILTER_BOTH"] = "Coches y bicicletas",
938+
["VEH_FLAGS_PRESET_PARSER_TOOLTIP"] = "El valor predeterminado se mostrará aquí una vez que se hayan decodificado los datos válidos.",
939+
["VEH_FLAGS_PRESET_IMPORT_SUCCESS"] = "El nuevo ajuste preestablecido se ha importado correctamente."
925940
}

SSV2/includes/lib/translations/fr-FR.lua

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -920,6 +920,21 @@ return {
920920
["VEH_WHEELIE"] = "Wheelie",
921921
["VEH_FLAGS_AUTOENABLE_TT"] = "Ce préréglage sera automatiquement activé dès que vous entrez dans un nouveau véhicule. Vous pouvez toujours désactiver un préréglage tout en ayant activé « Auto-Enable », mais il ne se réactivera qu'une fois que vous changerez de véhicule (réapparaissez votre véhicule, rechargez le script ou montez dans un autre véhicule).",
922922
["VEH_WHEELIE_TT"] = "VOITURES UNIQUEMENT : Vous donne la possibilité d'effectuer des wheelies dans n'importe quelle voiture, tout comme les muscle cars par défaut : maintenez « Frein à main » + « Accélération » pendant quelques secondes, puis relâchez le frein à main.",
923-
["VEH_FLAGS_NEW_PRESET_ERR"] = "Échec de l'ajout du préréglage ! Un préréglage du même nom existe déjà.",
924-
["VEH_RAMP_TT"] = "Équipe votre véhicule d'un mod rampe (non visible) et lui donne une grande force d'éperonnage contre tous les véhicules, le rendant essentiellement imparable."
923+
["VEH_FLAGS_NEW_PRESET_ERR"] = "Un preset du même nom existe déjà !",
924+
["VEH_RAMP_TT"] = "Équipe votre véhicule d'un mod rampe (non visible) et lui donne une grande force d'éperonnage contre tous les véhicules, le rendant essentiellement imparable.",
925+
["GENERIC_FILENAME"] = "Nom de fichier",
926+
["VEH_FLAGS_PRESET_IMPORT_SUCCESS"] = "Le nouveau préréglage a été importé avec succès.",
927+
["VEH_FLAGS_PRESET_NO_SHARE"] = "Les préréglages par défaut ne peuvent pas être partagés car ils sont les mêmes pour tout le monde.",
928+
["VEH_FLAGS_PRESET_IMPORT_FAIL"] = "Échec de l'importation du préréglage. Veuillez réessayer plus tard.",
929+
["GENERIC_CLIPBOARD_COPY"] = "Copier dans le presse-papiers",
930+
["VEH_FLAGS_PRESET_FILTER_CARS_ONLY"] = "Voitures uniquement",
931+
["GENERIC_CLIPBOARD_DECODE"] = "Décoder les données du Presse-papiers",
932+
["GENERIC_CLIPBOARD_GET"] = "Obtenir les données du Presse-papiers",
933+
["VEH_FLAGS_PRESET_FILTER_BOTH"] = "Voitures et vélos",
934+
["GENERIC_CLIPBOARD_PASTE"] = "Coller à partir du presse-papiers",
935+
["VEH_FLAGS_PRESET_SHARE_SUCCESS_FMT"] = "Le préréglage '%s' a été copié sur votre clipbloard et enregistré sur la console. D'autres utilisateurs de script peuvent importer le préréglage en collant les données dans la fenêtre « Importer ».",
936+
["VEH_FLAGS_NEW_PRESET_CB_FILE_TT"] = "Nom du fichier de définitions de rappel facultatif. Si vous ne savez pas ce que c'est, laissez-le vide.",
937+
["VEH_FLAGS_PRESET_PARSER_TOOLTIP"] = "Le préréglage sera affiché ici une fois que les données valides auront été décodées.",
938+
["GENERIC_DATA_PARSE_FAIL"] = "Échec de l'analyse des données ! Veuillez réessayer plus tard.",
939+
["VEH_FLAGS_PRESET_FILTER_BIKES_ONLY"] = "Vélos uniquement"
925940
}

SSV2/includes/lib/translations/it-IT.lua

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -916,10 +916,25 @@ return {
916916
["VEH_WHEELIE"] = "Impennata",
917917
["VEH_FLAGS_NEW_PRESET_LABEL"] = "Nuova preimpostazione",
918918
["VEH_FLAGS_PRESET_NO_DELETE"] = "Le preimpostazioni predefinite non possono essere cancellate.",
919-
["VEH_FLAGS_NEW_PRESET_ERR"] = "Impossibile aggiungere la preimpostazione! Esiste già una preimpostazione con lo stesso nome.",
919+
["VEH_FLAGS_NEW_PRESET_ERR"] = "Esiste già un preset con lo stesso nome!",
920920
["VEH_WHEELIE_TT"] = "SOLO AUTO: ti dà la possibilità di eseguire impennate in qualsiasi auto proprio come le muscle car predefinite: tieni premuto \"Freno a mano\" + \"Accelera\" per alcuni secondi, quindi rilascia il freno a mano.",
921921
["VEH_FLAGS_AUTOENABLE_TT"] = "Questa preimpostazione verrà automaticamente abilitata non appena entrerai in un nuovo veicolo. Puoi comunque disattivare una preimpostazione mentre hai attivato l'\"Abilitazione automatica\", ma si riattiverà solo quando cambi veicolo (rigenera il tuo veicolo, ricarica lo script o sali su un veicolo diverso).",
922922
["VEH_FLAGS_NEW_PRESET_WARN"] = "Al momento hai uno o più preset attivi. Generarne uno nuovo includerà tutti i flag che sono stati modificati dalle preimpostazioni attive.\n\nSei sicuro di voler procedere comunque?",
923923
["VEH_RAMP_TT"] = "Equipaggia il tuo veicolo con una modifica rampa (non visibile) e gli conferisce una grande forza di speronamento contro tutti i veicoli, rendendolo sostanzialmente inarrestabile.",
924-
["VEH_RAMP"] = "Mod. rampa"
924+
["VEH_RAMP"] = "Mod. rampa",
925+
["GENERIC_FILENAME"] = "Nome del file",
926+
["GENERIC_CLIPBOARD_COPY"] = "Copia negli appunti",
927+
["GENERIC_DATA_PARSE_FAIL"] = "Impossibile analizzare i dati! Per favore riprova più tardi.",
928+
["VEH_FLAGS_PRESET_PARSER_TOOLTIP"] = "La preimpostazione verrà visualizzata qui una volta decodificati i dati validi.",
929+
["VEH_FLAGS_PRESET_FILTER_CARS_ONLY"] = "Solo automobili",
930+
["GENERIC_CLIPBOARD_DECODE"] = "Decodifica i dati degli appunti",
931+
["GENERIC_CLIPBOARD_GET"] = "Ottieni i dati degli appunti",
932+
["VEH_FLAGS_PRESET_IMPORT_FAIL"] = "Impossibile importare la preimpostazione. Per favore riprova più tardi.",
933+
["VEH_FLAGS_PRESET_FILTER_BOTH"] = "Auto e moto",
934+
["VEH_FLAGS_PRESET_IMPORT_SUCCESS"] = "La nuova preimpostazione è stata importata con successo.",
935+
["GENERIC_CLIPBOARD_PASTE"] = "Incolla dagli appunti",
936+
["VEH_FLAGS_NEW_PRESET_CB_FILE_TT"] = "Nome file delle definizioni di callback facoltativo. Se non sai di cosa si tratta, lascialo vuoto.",
937+
["VEH_FLAGS_PRESET_FILTER_BIKES_ONLY"] = "Solo biciclette",
938+
["VEH_FLAGS_PRESET_NO_SHARE"] = "Le preimpostazioni predefinite non possono essere condivise poiché sono le stesse per tutti.",
939+
["VEH_FLAGS_PRESET_SHARE_SUCCESS_FMT"] = "La preimpostazione '%s' è stata copiata negli appunti e registrata sulla console. Altri utenti di script possono importare la preimpostazione incollando i dati nella finestra \"Importa\"."
925940
}

0 commit comments

Comments
 (0)