RemovePlayerFromVichele geht net

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
  • public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(PlayerInfo[playerid][pCarschein] == 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast kein Führerschein");
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }


    die message due hast kein führerscheion kommt aber der player bleibt drine sitzen
    bitttte helft mir

  • Du hast was vergessen IsPlayerInAnyVehicle



    if(IsPlayerInAnyVehicle(playerid))
    {
    if(PlayerInfo[playerid][pCarschein] == 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast kein Führerschein");
    RemovePlayerFromVehicle(playerid);
    }
    }


    und das unter newstate

    RFT

  • Zitat

    das kann so gar nicht gehen, das musst du bei OnPlayerStateChange machen


    Warum solltest du bei OnPlayerEnterVehicle einen Spieler aus einem Auto schmeissen, in dem er noch gar nicht sitzen kann bzw. warum sollte man dort überprüfen, ob er in einem Auto sitzt.
    OnPlayerEnterVehicle wird aufgerufen, wenn man gerade die Taste ("Enter") drückt... Man kann zwar bei OnPlayerEnterVehicle schon dem Spieler verbieten in das Auto zu steigen (z.B. SetPlayerPos(playerid, x,y, z+1)), aber das dann nicht mit RemovePlayerFromVehicle.

  • Alles in allem kannst du es so verwenden indem du es unter einen public-Timer setzen
    Oder du machst es so...



    if(IsPlayerInAnyVehicle(playerid))
    {
    if(PlayerInfo[playerid][pCarschein] == 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast kein Führerschein");
    TogglePlayerControllable(playerid, true);
    }
    }


    Erklärt sich von selbst

    [align=center]
    Mta Script Editor - Work in Progress

  • Extra in einem Timer es überprüfen lassen? Ziemlich unnütz


    Meine Lösung von weiter oben schon komplett:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pCarschein] == 0)
    {
    // ...
    RemovePlayerFromVehicle(playerid);
    }

    }
    return 1;
    }


    // Ich weiß nicht, obs nur mir so geht Jason, aber eingerückten Code kann ich besser lesen als uneingerückten

  • TogglePlayerControlable ist auch eine Option - siehe oben - es unterbricht alle AKtionen, so auch das Einsteigen.
    So viel du es gemacht hast funktioniert es natürlich auch, aber einfacher ist es sein RemovePlayerFromVehicle
    mit TogglePlayerControlable zu ersetzen. Oder den Spieler beleibig weit wegtelepotieren^.

    [align=center]
    Mta Script Editor - Work in Progress