Fahrschulsystem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo liebe Leute,


    ich brauche mal euren Rat zu einem Fahrschulsystem bzw jemand der mir erklären kann wie man am sinnvollsten ein Fahrschulsystem erstellen kann. Ich habe die bisher wie folgt gemacht




    ocmd:fahrschule(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,1379.0913,-1648.8781,13.3828)) return SendClientMessage(playerid,COLOR_RED,"Du bist nicht am Fahrschulpoint");
    {
    ShowPlayerDialog(playerid,DIALOG_FAHRSCHULE,DIALOG_STYLE_LIST,"Stadthalle","Führerschein 2000$\nAbbrechen","Wählen","");
    }
    return 1;
    }



    if(dialogid == DIALOG_FAHRSCHULE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid,COLOR_RED, "Du hast nicht genug Geld");
    {
    if(PlayerInfo[playerid][pScheine]==1) return SendClientMessage(playerid,COLOR_GREEN,"Du besitzt schon einen Führerschein");
    {
    GivePlayerMoney(playerid,-2000);
    PlayerInfo[playerid][pMoney]-=2000;
    PlayerInfo[playerid][pFahrschulmotor]=1;



    SendClientMessage(playerid,COLOR_BUSBLUE,"Du beginnst mit deinem Führerschein. Bitte verlasse nun das Gebäude und suche dir ein Fahrschulfahrzeug aus!");
    SendClientMessage(playerid,COLOR_BUSBLUE,"Du kannst den Motor einmalig mit [/motor] starten.");
    SetPlayerCheckpoint(playerid,1417.1967,-1651.0175,13.1206,5);
    L1Checkpoint[playerid]=1;
    }
    }
    }
    }
    }



    if(L1Checkpoint[playerid]==1)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,1441.7390,-1734.2549,13.1265,5);
    L1Checkpoint[playerid]=3;
    }
    }
    else if(L1Checkpoint[playerid]==2)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,1823.1271,-1707.6542,13.1264,5);
    L1Checkpoint[playerid]=4;
    }
    }
    else if(L1Checkpoint[playerid]==2)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,1904.8483,-1524.8584,2.9842,5);
    L1Checkpoint[playerid]=3;
    }
    }
    else if(L1Checkpoint[playerid]==3)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,2037.4652,-1580.3467,11.9626,5);
    L1Checkpoint[playerid]=4;
    }
    }
    else if(L1Checkpoint[playerid]==4)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,2157.2937,-1633.1912,13.5817,5);
    L1Checkpoint[playerid]=5;
    }
    }
    else if(L1Checkpoint[playerid]==5)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,2208.6416,-1605.2566,18.7024,5);
    L1Checkpoint[playerid]=6;
    }
    }
    else if(L1Checkpoint[playerid]==6)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,2172.4351,-1381.6036,23.5716,5);
    L1Checkpoint[playerid]=7;
    }
    }
    else if(L1Checkpoint[playerid]==7)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,2109.4937,-1413.7264,23.5716,5);
    L1Checkpoint[playerid]=8;
    }
    }
    else if(L1Checkpoint[playerid]==8)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,2054.0781,-1460.4128,19.5660,5);
    L1Checkpoint[playerid]=9;
    }
    }
    else if(L1Checkpoint[playerid]==9)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,1655.5741,-1479.0673,13.1265,5);
    L1Checkpoint[playerid]=10;
    }
    }
    else if(L1Checkpoint[playerid]==10)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,1629.6812,-1590.6157,13.2736,5);
    L1Checkpoint[playerid]=11;
    }
    }
    else if(L1Checkpoint[playerid]==11)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,1426.4432,-1633.5012,13.1263,5);
    L1Checkpoint[playerid]=12;
    }
    }
    else if(L1Checkpoint[playerid]==12)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    SetPlayerCheckpoint(playerid,1377.7605,-1649.1943,13.1249,5);
    L1Checkpoint[playerid]=13;
    }
    }
    else if(L1Checkpoint[playerid]==13)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht der Fahrer eines Fahrzeugs.");
    {
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,COLOR_BUSBLUE,"Sie haben die Prüfung bestanden. Herzlichen Glückwunsch.");
    SendClientMessage(playerid,COLOR_BUSBLUE,"Hiermit übergebe ich Ihnen Ihren Führerschein");
    SendClientMessage(playerid,COLOR_BUSBLUE,"Halten Sie sich an die StVo. Andernfalls kann es teuer werden.");
    SendClientMessage(playerid,COLOR_BUSBLUE,"Im schlimmsten Fall sehen wir uns wieder. Und das muss doch nicht sein");
    SendClientMessage(playerid,COLOR_BUSBLUE,"Ich wünsche dir alles Gute. Dein Fahrlehrer");
    PlayerInfo[playerid][pScheine]=1;
    SetVehicleToRespawn(1);
    L1Checkpoint[playerid]=14;



    }
    }


    Die Umsetzung des Systems ist denke ich einfach mal für die Katz wenn ich mal so überlege und deswegen suche ich Tipps und Infos wie es am sinnvollsten wäre es umzusetzen. Denn ich denke mit dieser Methode wird es sicher einige Fehler geben die ich nicht haben möchte.


    pFahrschulmotor gibt den Spieler die Erlaubnis ein Fahrschulfahrzeug zu starten. Sobald er den Motor gestartet hat wird der Wert wieder auf Null gesetzt.


    Ich bin mal gespannt wie Ihr euch das umgesetzt habt oder wie ihr mir da Tipps geben könnt. Ich erwarte nun kein vor geschriebenes Script sondern Ideen anreize wie man es am besten macht

  • Also du könntest hier super mit einem switch arbeiten..oder die Coords in einer Variable speichern und dann über L1Checkpoint jeweils aufrufen...


    Aber nehmen wir mal den switch, des müsste eig supi gehen:


    PS: Denk daran L1Checkpoint[playerid] unter OnPlayerConnect oder OnPlayerDisconnect zu resetten :klugs:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Also du könntest hier super mit einem switch arbeiten..oder die Coords in einer Variable speichern und dann über L1Checkpoint jeweils aufrufen...


    Aber nehmen wir mal den switch, des müsste eig supi gehen:


    PS: Denk daran L1Checkpoint[playerid] unter OnPlayerConnect oder OnPlayerDisconnect zu resetten :klugs:

    Ich danke dir für dein Feedback & hoffe dennoch von anderen Usern andere Vorschläge zu erhalten.
    Denn wo ich das Problem sehe ist das Motor System z.b denn immer die Variablen auf 1 und null setzen ist natürlich etwas doof. Ich habe auch überlegt ob ich mit bools arbeite. Allerdings frage ich mich da ob es am sinnvollsten wäre oder nicht.


    Vielleicht kann mir ja jemand weitere Infos dazu geben oder mir einen anderen Vorschlag geben


    Vielen dank