Auto only Führerschein bug

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,
    ich habe das so gemacht, wie bei der tutorial : [ SCRIPTING ] Autoschein , Bootsschein und Flugschein


    das sieht so aus :

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    //--------------scheine--------------------------------------------------------
    new modelid = GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(modelid == 472 || modelid == 473 || modelid == 493 || modelid == 595 || modelid == 484 || modelid == 430 || modelid == 453 || modelid == 452 || modelid == 446 || modelid == 454 )
    {
    if(pInfo[playerid][boot] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, " Du hast keine Bootschein");
    SendClientMessage(playerid, COLOR_GREY, " Fahr in die Stadthalle und kauf dir einen!");
    }
    }
    else if(modelid == 592 || modelid == 577 || modelid == 511 || modelid == 512 || modelid == 593 || modelid == 520 || modelid == 553 || modelid == 476 || modelid == 519 || modelid == 460 || modelid == 513 || modelid == 548 || modelid == 425 || modelid == 417 || modelid == 487 || modelid == 488 || modelid == 497 || modelid == 563 || modelid == 447 || modelid == 469 )
    {
    if(pInfo[playerid][flug] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, " Du hast keine Bootschein");
    SendClientMessage(playerid, COLOR_GREY, " Fahr in die Stadthalle und kauf dir einen!");
    }
    }
    else if(modelid == 400-405 || modelid == 407-408 || modelid == 410-416 || modelid == 418-424 ||
    modelid == 426-427 || modelid == 429 || modelid == 431-433 || modelid == 436-440 || modelid == 443-445 || modelid == 451 || modelid == 455-456 || modelid == 458-459 || modelid == 466-467 || modelid == 470-471 || modelid == 474-475 || modelid == 477-482 || modelid == 489-496 || modelid == 498-500 || modelid == 502-507 || modelid == 514-518 || modelid == 524 || modelid == 526-529
    || modelid == 531 || modelid == 533-536 || modelid == 540-544 || modelid == 546-547 || modelid == 549-552 || modelid == 545-562 || modelid == 564-568 || modelid == 573 || modelid == 575 || modelid == 576 || modelid == 578-582 || modelid == 585-589 || modelid == 596-605 || modelid == 609 )
    {
    if(pInfo[playerid][autos] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_GREY, " Du hast keine Führerschein");
    SendClientMessage(playerid, COLOR_GREY, " Fahr in die Stadthalle und kauf dir einen!");
    }
    }
    }
    return 1;
    }



    so, das mit dem Auto habe ich selbst gemacht, das mit boot und flugschein habe ich übernomne, jetzt egal was ich spawne, ob flugzeug boot oder auto, es passiert nichts, wenn ich einsteige und in meiner datei 0 steht.

    2 Mal editiert, zuletzt von Tockra ()

  • 1.) GetPlayerVehicleID(playerid); liefert die VehicleID deines Fahrzeugs zurück
    GetVehicleModel(GetPlayerVehicleID(playerid)); liefert das Model deines Fahrzeugs in dem du sitzt zurück
    Du musst also deine Zeile oben im Script entsprechend anpassen...
    2.) else if(modelid == 400-405)
    geht nicht, dazu müsstest du es so machen
    else if(modelid >= 400 && modelid<= 405)
    allerdings kannst du dein letzes "else if" (das viel zu lange) einfach zu einem "else" machen

  • also aus new modelid = GetPlayerVehicleID(playerid);

    mache ich

    new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));


    ?

  • Genau dann bekommst du nämlich das Model zurückgeliefert und nicht die Carid, denn
    carid != model


    Außerdem solltest du das letze else if(GANZ LANGE BEDINGUNG) für die Autos zu einem else machen
    Also
    else if(modelid == 400-405 || modelid == 407-408 || modelid == 410-416 || modelid == 418-424 ||
    modelid == 426-427 || modelid == 429 || modelid == 431-433 || modelid == 436-440 || modelid == 443-445 || modelid == 451 || modelid == 455-456 || modelid == 458-459 || modelid == 466-467 || modelid == 470-471 || modelid == 474-475 || modelid == 477-482 || modelid == 489-496 || modelid == 498-500 || modelid == 502-507 || modelid == 514-518 || modelid == 524 || modelid == 526-529
    || modelid == 531 || modelid == 533-536 || modelid == 540-544 || modelid == 546-547 || modelid == 549-552 || modelid == 545-562 || modelid == 564-568 || modelid == 573 || modelid == 575 || modelid == 576 || modelid == 578-582 || modelid == 585-589 || modelid == 596-605 || modelid == 609 )
    {


    zu
    else
    {


  • gäbe es einen Nachteil, wenn ichs nicht zu einen Else machen würde, oder ist es nur für mich vorteilhaft, denn wenn ich else benutze, braucht man für Fahrräder und Roller und Motorräder auch nen Führerschein, außer man scriptet da nochmal was und dann wirds irgendwann unübersichtlicher...




    €: Aus irgend einen Grund klappt das nicht, weiß jmd wieso?:



    Einmal editiert, zuletzt von Tockra ()

  • Mach aus else if(modelid == 400-405 || modelid == 407-408 || modelid == 410-416 || modelid == 418-424 ||
    modelid == 426-427 || modelid == 429 || modelid == 431-433 || modelid == 436-440 || modelid == 443-445 || modelid == 451 || modelid == 455-456 || modelid == 458-459 || modelid == 466-467 || modelid == 470-471 || modelid == 474-475 || modelid == 477-482 || modelid == 489-496 || modelid == 498-500 || modelid == 502-507 || modelid == 514-518 || modelid == 524 || modelid == 526-529
    || modelid == 531 || modelid == 533-536 || modelid == 540-544 || modelid == 546-547 || modelid == 549-552 || modelid == 545-562 || modelid == 564-568 || modelid == 573 || modelid == 575 || modelid == 576 || modelid == 578-582 || modelid == 585-589 || modelid == 596-605 || modelid == 609 )
    {


    das hier
    else
    {
    if(PlayerInfo[playerid][pCarschein] == 0)
    {
    SendClientMessage(playerid, ROT, " Du hast keinen Führerschein, ");
    return 1;
    }
    else
    {
    return 1;
    }
    }