OnPlayerEnterVehicle <- Falsche ausgabe

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(MatTraCar[4])
    {
    if(GetPVarInt(Server1,"WTTransport") == 1)
    {
    if(SpielerInfo[playerid][pFraktion] == 1 && SpielerInfo[playerid][pLeader] == 1)
    {
    SendClientMessageToAll(GOLD,"[WT] Der Waffentransporter wurde in Los Santos gesichtet.");
    SetPVarInt(Server1,"WTTransport",2);
    SendClientMessage(playerid,GRAU,"Tipp: Benutze /wtausladen um den Transporter auszuladen.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist kein Mitglied des Fort Carson Sheriff Office");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du hast keine Waffen bestellt.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    return 1;
    }


    Dieser Code soll bewirken das ein Spieler wenn er in das Fahrzeug einsteigt die Meldung angezeigt bekommt.
    Aber die Meldung kommt egal in welches Auto man einsteigt!

  • Gebe Jeffry Recht. Jedoch solltes du unbedingt beachten, dass RemovePlayerFromVehicle nicht bei OnPlayerEnterVehicle funktioniert.Wenn das aufgerufen wird ist es wenn man gerade f bzw. enter gedrückt hat, sodass man noch nicht im Auto ist. 2 Möglichkeiten: Du machst einen Timer, der den Spiele so 2 sekunden danach rauswirft.
    Du fügst das ganze bei OnPlayerStateChange ein, da kannst du nämlich abfragen, wenn er vorher nicht im auto drin war und jetzt im auto drin ist, dass er die Person dann herauswirft.

  • Stimmt, da hast du Recht. Da habe ich nicht drauf geschaut.
    Allerdings würde ich es nicht per Timer machen, bzw. bei OnPlayerStateChange, weil das oft unschön aussieht für den Spieler, wenn er erst rein geht, und dann wieder raus geht.


    Ich finde diese Methode am besten:
    RemovePlayerFromVehicle(playerid);
    zu:
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);


    Dann kommt man auch nicht mehr rein. Als Alternative dazu, falls das je mal nicht greift (warum auch immer) könnte man die Prüfung dazu noch unter OnPlayerStateChange machen, falls man das will.