Scheine und Fahren Problem

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 Com.,


    ich habe grade ein Scheine-System gescriptet.
    Den Befehl habe ich (meiner Meinung nach fehlerfrei), und bei OnPlayerStateChange die Abfrage ob der Spieler den Schein für das Fahrzeug hat.


    Jedoch habe ich gleich 2 Probleme - wenn ich /lic SunRise motorradschein mache, kommt "Ein Admin hat dir den Autoschein gegeben!", nicht Motorrad.
    Die Spielervariable im Account bleibt auch auf 0.


    2tes Problem: Nach dem Tutorial erhält man den Autoschein, welcher in meinem Account auch "1" ist.
    Wenn ich aber in ein Auto steige, kommt "Du hast nicht den richtigen Schein für das Auto/Flugzeug!".


    Am Besten schaut ihr es euch selbst an:


    Befehl:

    ocmd:lic(playerid, params[])
    {
    new playa, playaname[MAX_PLAYER_NAME], lic[20], sendername[MAX_PLAYER_NAME], string[176];
    if(SpielerInfo[playerid][pAdmin] >= 4)
    {
    if(sscanf(params, "us", playa, lic))
    {
    SendClientMessage(playerid, 0xFFFFFF, "Benutzung: /lic [Spieler] [Schein]");
    SendClientMessage(playerid, 0xFFFFFF, "Verfügbare Scheine: autoschein, motorradschein, flugschein, bootschein, alle");
    return 1;
    }
    else {
    GetPlayerName(playa, playaname, sizeof(playaname));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s gibt %s einen Schein! (%s)", sendername, playaname, lic);
    if(strcmp(lic, "autoschein"))
    {
    SendClientMessage(playa, 0xFFFFFF, "Ein Admin hat Dir den Autoschein gegeben!");
    SpielerInfo[playa][pCarLic] = 1;
    return 1;
    }
    if(strcmp(lic, "motorradschein"))
    {
    SendClientMessage(playa, 0xFFFFFF, "Ein Admin hat Dir den Motorradschein gegeben!");
    SpielerInfo[playa][pBikeLic] = 1;
    return 1;
    }
    if(strcmp(lic, "flugschein"))
    {
    SendClientMessage(playa, 0xFFFFFF, "Ein Admin hat Dir den Flugschein gegeben!");
    SpielerInfo[playa][pFlugLic] = 1;
    return 1;
    }
    if(strcmp(lic, "bootschein"))
    {
    SendClientMessage(playa, 0xFFFFFF, "Ein Admin hat Dir den Bootschein gegeben!");
    SpielerInfo[playa][pBoatLic] = 1;
    return 1;
    }
    if(strcmp(lic, "alle"))
    {
    SendClientMessage(playa, 0xFFFFFF, "Ein Admin hat Dir alle Scheine gegeben!");
    SpielerInfo[playa][pCarLic] = 1;
    SpielerInfo[playa][pBikeLic] = 1;
    SpielerInfo[playa][pFlugLic] = 1;
    SpielerInfo[playa][pBoatLic] = 1;
    return 1;
    }
    }}
    else { SendClientMessage(playerid, 0xFFFFFF, "Du darfst das nicht tun!"); }
    return 1;
    }


    OnPlayerStateChange: (ist nur die Abfrage für das Auto, die anderen sehen genauso aus, nur eben mit den anderen Abfragen.)

    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new v=0; v < MAX_VEHICLES; v++)
    {
    if(IsACar(v))
    {
    if(SpielerInfo[playerid][pCarLic] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht den benötigten Schein zum Fahren/Fliegen!");
    return 1;
    }
    }
    }
    }

    Liebe Grüße


    Marcel