2026-04-14 17:41:39 +02:00

362 lines
14 KiB
Lua

Config = {}
Config.DMVSchool = {
vector3(-810.71337890625, -1351.6461181641, 5.1500067710876)
}
Config.Language = "de"
Config.SpeedMultiplier = 3.6 -- 3.6 for kmh, 2.236936 for mph
Config.MaxErrors = 3 -- Max errors before fail
Config.MarkerSettings = {
type = 2,
size = vector3(1.0, 1.0, 1.0),
color = vector3(255, 255, 255),
rotate = false,
dump = false
}
Config.PuntiMinimi = 5 -- Minimum points to pass the theory test
-- ATTENTION: Modifying the id after a user has already obtained a license causes them to be lost
Config.License = {
{
label = 'License A',
id = 'drive_bike',
img = 'bike.png',
pricing = {
theory = 3000,
practice = 4000
},
vehicle = {
model = 'faggio',
coords = vector3(-812.27697753906, -1329.4169921875, 5.0003800392151),
heading = 255.78086853027344,
plate = "DMV1"
}
},
{
label = 'License B',
id = 'drive',
img = 'car.png',
pricing = {
theory = 3000,
practice = 4000
},
vehicle = {
model = 'blista',
coords = vector3(-812.27697753906, -1329.4169921875, 5.0003800392151),
heading = 255.78086853027344,
plate = "DMV1"
}
},
{
label = 'License C',
id = 'drive_truck',
img = 'truck.png',
pricing = {
theory = 3000,
practice = 4000
},
vehicle = {
model = 'pounder',
coords = vector3(-812.27697753906, -1329.4169921875, 5.0003800392151),
heading = 255.78086853027344,
plate = "DMV1"
}
}
}
Config.PracticeCoords = {
[1] = {
{
coordinate = vector3(-702.98168945312, -1245.7540283203, 10.400003433228),
speedLimit = 50
},
{
coordinate = vector3(-645.49060058594, -1299.0926513672, 10.667288780212),
speedLimit = 50
},
{
coordinate = vector3(-531.95617675781, -1106.1667480469, 22.267309188843),
speedLimit = 50
},
{
coordinate = vector3(-534.01702880859, -979.06707763672, 23.334875106812),
speedLimit = 50
},
{
coordinate = vector3(-496.98873901367, -858.69940185547, 30.383066177368),
speedLimit = 50
},
{
coordinate = vector3(-544.80657958984, -679.84515380859, 33.293727874756),
speedLimit = 50
},
{
coordinate = vector3(-725.47247314453, -652.7470703125, 30.269950866699),
speedLimit = 50
},
{
coordinate = vector3(-747.52728271484, -812.2978515625, 23.011022567749),
speedLimit = 50
},
{
coordinate = vector3(-809.14642333984, -1002.1864624023, 13.264689445496),
speedLimit = 50
},
{
coordinate = vector3(-786.09735107422, -1101.9405517578, 10.564425468445),
speedLimit = 50
},
{
coordinate = vector3(-703.28228759766, -1226.2169189453, 10.610825538635),
speedLimit = 50
},
{
coordinate = vector3(-762.64544677734, -1287.0336914062, 5.0003848075867),
speedLimit = 50
},
{
vector3(-808.48211669922, -1325.3178710938, 5.000385761261),
speedLimit = 50
},
}
}
Config.Question = {
[1] = {
{
label = "Welche Farbe hat ein Verbotsschild?",
options = {
{ label = "Rot", correct = true },
{ label = "Blau", correct = false },
{ label = "Gelb", correct = false }
}
},
{
label = "Was bedeutet ein dreieckiges Verkehrsschild?",
options = {
{ label = "Dreiwegekreuzung", correct = false },
{ label = "Vorfahrt gewähren", correct = true },
{ label = "Einbahnstraße", correct = false }
}
},
{
label = "Was bedeutet eine durchgehende Linie am Fahrbahnrand?",
options = {
{ label = "Überholen erlaubt", correct = false },
{ label = "Überholen verboten", correct = true },
{ label = "Überholen nur rechts erlaubt", correct = false }
}
},
{
label = "Welches Tempolimit gilt innerorts?",
options = {
{ label = "100 km/h", correct = true },
{ label = "70 km/h", correct = false },
{ label = "90 km/h", correct = false }
}
},
{
label = "Was bedeutet ein Gefahrenschild mit einer Kamera?",
options = {
{ label = "Parkzone", correct = false },
{ label = "Halteverbotszone", correct = false },
{ label = "Elektronische Geschwindigkeitskontrolle", correct = true }
}
},
{
label = "Welchen Mindestabstand muss man zum vorausfahrenden Fahrzeug einhalten?",
options = {
{ label = "1 Meter", correct = false },
{ label = "2 Sekunden Abstand", correct = true },
{ label = "0,5 Meter", correct = false }
}
},
{
label = "Was muss ein Fahrer tun, wenn er sich einem Bahnübergang mit geschlossenen Schranken nähert?",
options = {
{ label = "Beschleunigen, um vor dem Schließen durchzufahren", correct = false },
{ label = "Nur durchfahren, wenn kein Zug kommt", correct = true },
{ label = "Hupen und weiterfahren", correct = false }
}
},
{
label = "Was bedeutet das Stoppschild?",
options = {
{ label = "Vorfahrt gewähren", correct = false },
{ label = "Anhalten ist Pflicht", correct = true },
{ label = "Einbahnstraße", correct = false }
}
},
{
label = "Was zeigt ein grüner Pfeil nach oben an?",
options = {
{ label = "Nur für Fahrräder freigegeben", correct = false },
{ label = "Nur für Fußgänger freigegeben", correct = true },
{ label = "Nur für öffentliche Fahrzeuge freigegeben", correct = false }
}
},
{
label = "Was bedeutet das Andreaskreuz (rotes X auf weißem Hintergrund)?",
options = {
{ label = "Zone mit eingeschränktem Zugang", correct = true },
{ label = "Parkzone erlaubt", correct = false },
{ label = "Fußgängerzone", correct = false }
}
}
},
[2] = {
{
label = "Was bedeutet das Zeichen 'Einfahrt verboten'?",
options = {
{ label = "Vorfahrt gewähren", correct = false },
{ label = "Durchfahrt verboten", correct = true },
{ label = "Überholen Pflicht", correct = false }
}
},
{
label = "Was muss ein Fahrer an einer ungeregelten Kreuzung tun?",
options = {
{ label = "Beschleunigen, um schnell durchzufahren", correct = false },
{ label = "Anhalten, Vorfahrt gewähren und vorsichtig weiterfahren", correct = true },
{ label = "Hupen, um andere Fahrer zu warnen", correct = false }
}
},
{
label = "Was zeigt das Schild 'Gefährliche Linkskurve' an?",
options = {
{ label = "Nähe einer Parkzone", correct = false },
{ label = "Kreuzung voraus", correct = false },
{ label = "Gefährliche Kurve nach links", correct = true }
}
},
{
label = "Was bedeutet das Schild 'Ende des Überholverbots'?",
options = {
{ label = "Überholen ist jetzt erlaubt", correct = true },
{ label = "Halteverbot", correct = false },
{ label = "Ende der Autobahn", correct = false }
}
},
{
label = "Was bedeutet das Fußgängerüberweg-Schild?",
options = {
{ label = "Nur für Fahrräder", correct = false },
{ label = "Fußgänger dürfen hier nicht überqueren", correct = false },
{ label = "Stelle, an der Fußgänger sicher überqueren können", correct = true }
}
},
{
label = "Was bedeutet das Schild 'Ende der Umweltzone'?",
options = {
{ label = "Beginn einer Umweltzone", correct = false },
{ label = "Ende einer Parkzone", correct = false },
{ label = "Ende des Bereichs mit Zufahrtsbeschränkungen", correct = true }
}
},
{
label = "Was bedeutet das Schild 'Durchfahrt für Kraftfahrzeuge verboten'?",
options = {
{ label = "Vorfahrt gewähren", correct = false },
{ label = "Nur LKW verboten", correct = false },
{ label = "Alle Kraftfahrzeuge dürfen nicht durchfahren", correct = true }
}
},
{
label = "Was muss ein Fahrer bei einer gelb blinkenden Ampel tun?",
options = {
{ label = "Beschleunigen, um vor dem Wechsel durchzufahren", correct = false },
{ label = "Anhalten, nur wenn Fahrzeuge die Kreuzung queren", correct = true },
{ label = "Ohne Bremsen weiterfahren", correct = false }
}
},
{
label = "Was bedeutet das Schild 'Fußgänger verboten'?",
options = {
{ label = "Nur Radfahrer verboten", correct = false },
{ label = "Nur Fußgänger verboten", correct = true },
{ label = "Nur Fahrradfahren erlaubt", correct = false }
}
},
{
label = "Was bedeutet das Schild 'Durchfahrt für Fahrzeuge mit Anhänger verboten'?",
options = {
{ label = "Nur Wohnmobile verboten", correct = false },
{ label = "Fahrzeuge mit Anhänger dürfen nicht durchfahren", correct = true },
{ label = "Anhänger mitführen ist Pflicht", correct = false }
}
}
}
}
Config.Lang = {
['it'] = {
['speed_error'] = "Vai troppo veloce, rallenta!",
['open_dmv'] = "Premi ~INPUT_CONTEXT~ per aprire la scuola guida",
['dmv'] = "SCUOLA GUIDA",
['point'] = "PUNTEGGIO",
['error'] = "ERRORI",
['ok'] = "Avanti",
['start_theory'] = "Inizia il Test Teorico",
['theory_before'] = "Fai il test teorico",
['start_practice'] = "Inizia il Test Pratico",
['test_passed'] = "Test Passato!",
['already_done'] = "Hai già fatto questo test!",
['theory_success'] = "Congratulazioni, hai passato il test teorico, torna presto per il test pratico!",
['theory_error'] = "Ci dispiace comunicarti che non hai passato il test teorico, non demordere, torna presto più preparato e riprova il test!",
['practice_success'] = "Congratulazioni, hai passato il test pratico, sei ora un guidatore con la patente!",
['practice_error'] = "Ci dispiace comunicarti che non hai passato il test pratico, non demordere, torna presto più preparato e riprova il test!",
['money_error'] = "Non hai abbastanza soldi per fare questo test! Ti mancano %s€"
},
['de'] = {
['speed_error'] = "Du fährst zu schnell, bremse ab!",
['open_dmv'] = "Drücke ~INPUT_CONTEXT~ um die Fahrschule zu öffnen",
['dmv'] = "FAHRSCHULE",
['point'] = "PUNKTE",
['error'] = "FEHLER",
['ok'] = "Weiter",
['start_theory'] = "Theorieprüfung starten",
['theory_before'] = "Zuerst Theorieprüfung ablegen",
['start_practice'] = "Fahrprüfung starten",
['test_passed'] = "Prüfung bestanden!",
['already_done'] = "Du hast diese Prüfung bereits abgelegt!",
['theory_success'] = "Glückwunsch, du hast die Theorieprüfung bestanden! Komm bald zurück für die Fahrprüfung!",
['theory_error'] = "Leider hast du die Theorieprüfung nicht bestanden. Gib nicht auf, komm bald besser vorbereitet zurück und versuche es erneut!",
['practice_success'] = "Glückwunsch, du hast die Fahrprüfung bestanden! Du besitzt jetzt einen gültigen Führerschein!",
['practice_error'] = "Leider hast du die Fahrprüfung nicht bestanden. Gib nicht auf, komm bald besser vorbereitet zurück und versuche es erneut!",
['money_error'] = "Du hast nicht genug Geld für diese Prüfung! Dir fehlen %s€"
},
['en'] = {
['speed_error'] = "You are going too fast, slow down!",
['open_dmv'] = "Press ~INPUT_CONTEXT~ to open the DMV",
['dmv'] = "DMV SCHOOL",
['point'] = "POINT",
['error'] = "ERROR",
['ok'] = "Ok",
['start_theory'] = "Start the Theory Test",
['theory_before'] = "Take the theory test",
['start_practice'] = "Start the Practice Test",
['test_passed'] = "Test Passed!",
['already_done'] = "You have already done!",
['theory_success'] = "Congratulations, you passed the theory test, come back soon for the practical test!",
['theory_error'] = "We are sorry to inform you that you did not pass the theory test, do not give up, come back soon more prepared and try the test again!",
['practice_success'] = "Congratulations, you passed the practical test, you are now a licensed driver!",
['practice_error'] = "We are sorry to inform you that you did not pass the practical test, do not give up, come back soon more prepared and try the test again!",
['money_error'] = "You don't have enough money to do this test! You are missing %s€"
}
}
-- Functions --
onCompleteTheory = function(license)
TriggerServerEvent('ricky-dmv:givelicense', license) -- Give license to sql
end
onCompletePractice = function(license)
TriggerServerEvent('ricky-dmv:givelicense', license) -- Give license to sql
end