543 lines
18 KiB
Lua
543 lines
18 KiB
Lua
Config = {}
|
|
|
|
Config.DMVSchool = {
|
|
vector3(240.7489, -1379.575, 33.74177)
|
|
}
|
|
|
|
Config.Language = "de" -- Auf "de" geändert
|
|
|
|
Config.SpeedMultiplier = 3.6 -- 3.6 für kmh, 2.236936 für mph
|
|
|
|
Config.MaxErrors = 3 -- Maximale Fehler vor dem Nichtbestehen
|
|
|
|
Config.MarkerSettings = {
|
|
type = 2,
|
|
size = vector3(1.0, 1.0, 1.0),
|
|
color = vector3(255, 255, 255),
|
|
rotate = false,
|
|
dump = false
|
|
}
|
|
|
|
Config.PuntiMinimi = 5 -- Mindestpunktzahl zum Bestehen der Theorieprüfung
|
|
|
|
-- ACHTUNG: Das Ändern der ID nach Erhalt einer Lizenz führt zum Verlust dieser
|
|
Config.License = {
|
|
{
|
|
label = 'Führerschein Klasse A',
|
|
id = 'drive_bike',
|
|
img = 'bike.png',
|
|
pricing = {
|
|
theory = 3000,
|
|
practice = 4000
|
|
},
|
|
vehicle = {
|
|
model = 'faggio',
|
|
coords = vector3(231.2591, -1392.982, 30.50785),
|
|
heading = 144.40260314941,
|
|
plate = "DMV1"
|
|
}
|
|
},
|
|
{
|
|
label = 'Führerschein Klasse B',
|
|
id = 'drive',
|
|
img = 'car.png',
|
|
pricing = {
|
|
theory = 3000,
|
|
practice = 4000
|
|
},
|
|
vehicle = {
|
|
model = 'blista',
|
|
coords = vector3(231.2591, -1392.982, 30.50785),
|
|
heading = 144.40260314941,
|
|
plate = "DMV1"
|
|
}
|
|
},
|
|
{
|
|
label = 'Führerschein Klasse C',
|
|
id = 'drive_truck',
|
|
img = 'truck.png',
|
|
pricing = {
|
|
theory = 3000,
|
|
practice = 4000
|
|
},
|
|
vehicle = {
|
|
model = 'pounder',
|
|
coords = vector3(231.2591, -1392.982, 30.50785),
|
|
heading = 144.40260314941,
|
|
plate = "DMV1"
|
|
}
|
|
}
|
|
}
|
|
|
|
Config.PracticeCoords = {
|
|
[1] = {
|
|
{
|
|
coordinate = vector3(227.1181, -1399.691, 30.1),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(183.7479, -1394.595, 29.05295),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(210.3608, -1327.127, 29.16619),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(217.6466, -1145.248, 29.3349),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(83.13854, -1136.699, 29.15778),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(55.52874, -1248.127, 29.34311),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(82.69904, -1338.678, 29.3447),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(131.4893, -1387.581, 29.28993),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(220.603, -1445.61, 29.24681),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(242.2584, -1536.136, 29.24705),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(301.6448, -1523.68, 29.34156),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(256.1726, -1445.458, 29.24207),
|
|
speedLimit = 50
|
|
},
|
|
{
|
|
coordinate = vector3(233.427, -1397.215, 30.5071),
|
|
speedLimit = 50
|
|
},
|
|
}
|
|
}
|
|
|
|
|
|
Config.Question = {
|
|
[1] = {
|
|
{
|
|
label = "Welche Farbe hat ein Verbotszeichen?",
|
|
options = {
|
|
{
|
|
label = "Rot",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Blau",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Gelb",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet ein dreieckiges Verkehrsschild?",
|
|
options = {
|
|
{
|
|
label = "Drei-Wege-Kreuzung",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Vorfahrt gewähren",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Einbahnstraße",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet eine durchgezogene Linie am Fahrbahnrand?",
|
|
options = {
|
|
{
|
|
label = "Überholen erlaubt",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Überholverbot",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Überholen nur rechts erlaubt",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Wie hoch ist die Geschwindigkeitsbegrenzung innerorts?",
|
|
options = {
|
|
{
|
|
label = "50 km/h",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "70 km/h",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "90 km/h",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Gefahrenzeichen mit einer Kamera?",
|
|
options = {
|
|
{
|
|
label = "Parkzone",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Halteverbot",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Elektronische Geschwindigkeitskontrolle",
|
|
correct = true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was ist der Mindestsicherheitsabstand zum vorausfahrenden Fahrzeug?",
|
|
options = {
|
|
{
|
|
label = "1 Meter",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "2 Sekunden Abstand (halber Tacho)",
|
|
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 noch schnell durchzufahren",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Anhalten und warten, bis die Schranken öffnen",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Hupen und weiterfahren",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet ein Stoppschild?",
|
|
options = {
|
|
{
|
|
label = "Vorfahrt gewähren",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Anhaltepflicht",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Einbahnstraße",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet ein Schild mit einem grünen Pfeil nach oben?",
|
|
options = {
|
|
{
|
|
label = "Nur für Fahrräder erlaubt",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Vorgeschriebene Fahrtrichtung geradeaus",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Nur für öffentliche Verkehrsmittel",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was stellt das Andreaskreuz (rotes X auf weißem Grund) dar?",
|
|
options = {
|
|
{
|
|
label = "Bahnübergang / Vorrang des Schienenverkehrs",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Parken erlaubt",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Fußgängerzone",
|
|
correct = false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
[2] = {
|
|
{
|
|
label = "Was bedeutet das Zeichen 'Verbot der Einfahrt'?",
|
|
options = {
|
|
{
|
|
label = "Pflicht, Vorfahrt zu gewähren",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Einfahrt verboten",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Überholen obligatorisch",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was muss ein Fahrer tun, wenn er an eine Kreuzung ohne Schilder kommt?",
|
|
options = {
|
|
{
|
|
label = "Beschleunigen, um schnell zu queren",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Rechts vor Links beachten und bremsbereit sein",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Hupen, um andere zu warnen",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Schild 'Gefährliche Linkskurve'?",
|
|
options = {
|
|
{
|
|
label = "Nähe eines Parkplatzes",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Vorhandensein einer Kreuzung",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Ankündigung einer gefährlichen Linkskurve",
|
|
correct = true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Ende des Überholverbots?",
|
|
options = {
|
|
{
|
|
label = "Überholen ist wieder gestattet",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Parkverbot",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Ende der Autobahn",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Schild für den Fußgängerüberweg?",
|
|
options = {
|
|
{
|
|
label = "Überqueren nur für Fahrräder erlaubt",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Überquerungsverbot für Fußgänger",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Stelle, an der Fußgänger sicher überqueren können",
|
|
correct = true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Ende einer verkehrsberuhigten Zone?",
|
|
options = {
|
|
{
|
|
label = "Beginn einer verkehrsberuhigten Zone",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Ende einer Parkzone",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Ende der Zone mit besonderen Verkehrsbeschränkungen",
|
|
correct = true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Verbot für Kraftwagen?",
|
|
options = {
|
|
{
|
|
label = "Vorfahrt gewähren",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Verbot nur für LKWs",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Verbot für mehrspurige Kraftfahrzeuge",
|
|
correct = true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was sollte ein Fahrer bei einer gelb blinkenden Ampel tun?",
|
|
options = {
|
|
{
|
|
label = "Beschleunigen, um vor Rot durchzukommen",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Mit erhöhter Vorsicht heranfahren und Vorrangregeln beachten",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Ohne Verlangsamung weiterfahren",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Verbot für Fußgänger?",
|
|
options = {
|
|
{
|
|
label = "Verbot nur für Radfahrer",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Verbot für Fußgänger",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Pflicht, nur mit dem Fahrrad zu queren",
|
|
correct = false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
label = "Was bedeutet das Verbot für Fahrzeuge mit Anhänger?",
|
|
options = {
|
|
{
|
|
label = "Verbot nur für Wohnmobile",
|
|
correct = false
|
|
},
|
|
{
|
|
label = "Verbot für Kraftfahrzeuge mit Anhänger",
|
|
correct = true
|
|
},
|
|
{
|
|
label = "Pflicht, einen Anhänger zu ziehen",
|
|
correct = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Config.Lang = {
|
|
['de'] = {
|
|
['speed_error'] = "Du fährst zu schnell, fahr langsamer!",
|
|
['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'] = "Absolviere zuerst die Theorieprüfung",
|
|
['start_practice'] = "Praktische Prü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 praktischen Prüfung wieder!",
|
|
['theory_error'] = "Es tut uns leid, du hast die Theorieprüfung nicht bestanden. Lerne fleißig und versuche es bald noch einmal!",
|
|
['practice_success'] = "Glückwunsch! Du hast die praktische Prüfung bestanden und besitzt nun einen Führerschein!",
|
|
['practice_error'] = "Es tut uns leid, du hast die praktische Prüfung nicht bestanden. Komm vorbereitet wieder!",
|
|
['money_error'] = "Du hast nicht genug Geld für diese Prüfung! Dir fehlen %s€"
|
|
},
|
|
['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€"
|
|
},
|
|
['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)
|
|
TriggerEvent('hex_4_hud:notify', "Fahrschule", "Du hast bestanden", "success", 5000)
|
|
end
|
|
|
|
onCompletePractice = function(license)
|
|
TriggerServerEvent('ricky-dmv:givelicense', license) -- Give license to sql
|
|
end |