Fahrschul system

  • Fahrschul system

    Hallo leute, ich weiss nicht wie ich ein Fahrschul system machen will..
    Hier mal paar Infos:

    Also habe autos gemappt (Fahrschulautos) da soll der User einsteigen, wenn er den Schein noch nicht hat, kommen paar Regeln und wenn er ihn hat steigt er automatisch aus...,,, wenn er ihn nicht hat, kommen halt die StVo etc. dann muss er Checkpoints abfahren. Wenn er fertig ist, bekommt er den Autoschein... Das Geld (1000) wird ihm automatisch Abgezogen dan..
  • Hallo nochmal Volco,
    das ist in der Theorie ganz einfach. ;)

    Als erstes fragst du ab, ob das Fahrzeug in das der User einsteigt, überhaupt ein Fahrschulfahrzeug ist (mit Hilfe von, entweder, dem Model oder der ID (GetPlayerVehicleModel, GetPlayerVehicleID)) - wär' ja schlimm wenn man das einfach so stehlen könnte, nech? ;)
    Trifft das zu, so sendest du ihm die Regeln per SendClientMessage zu, ist das aber nicht der Fall, so wirst du ihn mit RemovePlayerFromVehicle wieder aus dem Fahrzeug, je nachdem. Am besten freezed du den Spieler während die Regeln kommen, sonst fährt er ja schon los (TogglePlayerControllable) und setzt dann deinen ersten Checkpoint und entfreezed den Spieler wieder, damit er losfahren kann.
    Nach langer Checkpointfahrerei gibst du ihm dann den Autoschein, per Variable, wie auch immer du das gelöst hast und ziehst ihm die 1000$ ab (GivePlayerMoney).

    Viel Glück wünsch ich!
  • Ich versuchs mal ;)

    Die Errors:

    Zeile (1098) : error 033: array must be indexed (variable "Fahrschule")

    Zeile: [pwn] if(GetVehicleModel(playerid == Fahrschule))[/pwn]

    Die Autos dafür:
    [pwn] Fahrschule[0] = AddStaticVehicleEx(405, -2089.699951, -84.699997, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (1)
    Fahrschule[1] = AddStaticVehicleEx(405, -2064.500000, -84.899414, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (2)
    Fahrschule[2] = AddStaticVehicleEx(405, -2068.500000, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (3)
    Fahrschule[3] = AddStaticVehicleEx(405, -2072.799805, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (4)
    Fahrschule[4] = AddStaticVehicleEx(405, -2077.000000, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (5)
    Fahrschule[5] = AddStaticVehicleEx(405, -2081.299805, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (6)
    Fahrschule[6] = AddStaticVehicleEx(405, -2085.399414, -84.699219, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (7)

    [/pwn]

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Volco212 () aus folgendem Grund: Error

  • Hier mal alles, durcheinander ;)

    [pwn]stock isFahrschulAuto(carid)
    {
    for(new x; x < MaxFahrschul_Cars; x++)
    {
    if(carid == Fahrschule[x])
    return 1;
    }
    return 0;
    }[/pwn]

    Oben im Script: [pwn]#define MaxFahrschul_Cars 7[/pwn]
    [pwn]new Fahrschule[7];[/pwn]


    OnGamemodeInit:
    [pwn] Fahrschule[0] = AddStaticVehicleEx(405, -2089.699951, -84.699997, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (1)
    Fahrschule[1] = AddStaticVehicleEx(405, -2064.500000, -84.899414, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (2)
    Fahrschule[2] = AddStaticVehicleEx(405, -2068.500000, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (3)
    Fahrschule[3] = AddStaticVehicleEx(405, -2072.799805, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (4)
    Fahrschule[4] = AddStaticVehicleEx(405, -2077.000000, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (5)
    Fahrschule[5] = AddStaticVehicleEx(405, -2081.299805, -84.799805, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (6)
    Fahrschule[6] = AddStaticVehicleEx(405, -2085.399414, -84.699219, 35.200001, 180.000000, -1, -1, 0); //vehicle (Sentinel) (7)
    [/pwn]

    OnPlayerEnterVehicle:
    [pwn] if(GetVehicleModel(playerid) == isFahrschulAuto(GetPlayerVehicleID(playerid)))
    {
    if(autoschein == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_FS, DIALOG_STYLE_MSGBOX, "Fahrprüfung", "Du beginnst nun mit deiner Ersten Fahrstunde\nBitte Befolge die Regeln, damit\ndu Später keinen Unfall baust!", "Starten", "Abbrechen");
    TogglePlayerControllable(playerid, 0);
    }
    else if(autoschein == 1)
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du hast den Autoschein Bereits bestanden.");
    RemovePlayerFromVehicle(playerid);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du bist in keinem Fahrschul Auto.");
    }[/pwn]

    vllt. kannste damit ja was anfangen ;)
    Mfg Volco
  • Also, jetzt habe ich das Problem, das man die Fahrprüfung immer Wiederholen kann...
    Also es kommt nicht, wenn ich in der Spielerdatei "Autoschein = 1" mache, dann kommt ingame nicht der Dialog das ich schon den Führerschein habe..
    Hier mal :
    [pwn]public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new Vehicle = GetPlayerVehicleID(playerid);
    if(Vehicle == rentroller1)
    {
    SendClientMessage(playerid,Orange,"Dieses Fahrzeug kannst du mieten! Tippe /rent, wenn du nicht möchtest, dann /exit.");
    TogglePlayerControllable(playerid,0);
    return 1;
    }
    if(isFahrschulAuto(GetPlayerVehicleID(playerid)) == 1)
    {
    if(autoschein == 1)
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du hast den Autoschein Bereits bestanden.");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    if(autoschein == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_FS, DIALOG_STYLE_MSGBOX, "Fahrprüfung", "Du beginnst nun mit deiner Ersten Fahrstunde\nBitte Befolge die Regeln, damit\ndu Später keinen Unfall baust!", "Starten", "Abbrechen");
    TogglePlayerControllable(playerid, 0);
    }
    }
    }
    }
    return 1;
    }[/pwn]