Onplayerstatechange oder Onplayerentervehicle?

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 allerseits,


    wo muss ich die Funktion 'TogglePlayerControllable(playerid,0)' einfügen wenn ich den Spieler beim einsteigen in ein Fahzeug dabei hindern will einzustiegen?


    MfG Kloppo93 ;)

  • Kommt drauf an.


    OnPlayerEnterVehicle = Wenn er F oder G Taste betätigt
    OnPlayerStateChange = Wenn er z.B. den Zustand ändert. Von im auto zu zu Fuß.


    Ich würde sagen bei meiner 1. Option

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • Wenn ich es so


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(IsAAuto(GetPlayerVehicleID(playerid)))
    {
    if(GetPVarInt(playerid,"Autoführerschein") == 0)
    {
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,Rot, "Du hast keinen Autoführerschein. Um einen zu machen gehe zur Fahrschule San Fierro.");
    }
    }
    }


    mache klappt es nicht


    bei:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    TogglePlayerControllable(playerid,0);
    TogglePlayerControllable(playerid,1);
    }


    steigt er nicht ein aber dann klappt da keine abfrage..


  • if(newstate == PLAYER_STATE_DRIVER)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(sSpieler[playerid][gTeam]==Polizist) // Wenn er in der Fraktion ist passiert nichts.
    {
    }
    else // Und Wenn er nicht in der Fraktion ist, wird er aus dem Auto geschmissen mit der MSG.
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,FARBE,"Du bist kein Polisizt!");
    }
    }
    }




    Das unter OnPlayerStateChange.


    MfG

    Ihr habt das normale Pawno satt? Notepad ++ mit allen Pawnofunktionen, hier zum Downloaden, Klick

  • Mal um es zur Frage dazu zu werfen:
    Kann man irgendwie diesen ''Synchrobug'' umgehen?
    Spieler A will Spieler B das Fahrzug klauen.
    A wird daran vom Script her gehindert, weil er nicht befugt ist.
    A steht bei sich dann vor dem Fahrzeug und steigt nicht ein.
    Bei B zerrt ihn Spieler A dennoch aus dem Auto.


    Das nervt echt tierisch...



  • Er soll aber nicht rausgeschmissen werden, sondern gar nicht erst einsteigen.


    Er soll bevor er die tür aufmacht gefreezt werden!

  • Dann musst du die Abfrage unter OnPlayerEnterVehicle machen, wie du es auch hattest.


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(IsAAuto(vehicleid) && !ispassenger)
    {
    if(GetPVarInt(playerid,"Autoführerschein") == 0)
    {
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,Rot, "Du hast keinen Autoführerschein. Um einen zu machen gehe zur Fahrschule San Fierro.");
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    Bei der Abfrage 'IsAAuto' habe ich direkt die vehicleid genommen, die wird beim public mitgelifert. Da macht das GetPlayerVehicleID keinen Sinn.
    Das !ispassenger habe ich mit hinein geschrieben, weil sonst der gleiche Effekt als Beifahrer auftritt, das wäre ja Schwachsinn.


    //edit: Mal wieder keine Garantie, kann nichts testen.
    Falls es nicht klappt, sag bitte was genau passiert (bei Compilerfehler bitte den Error/Warning mit dazugehöriger Zeile schreiben)