362 lines
14 KiB
Lua
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 |