Rausschmeißen aus einem Auto

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 Leute, derzeit habe ich es so gemacht:

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(!ispassenger && vehicleid == 133 || !ispassenger && vehicleid == 134 || !ispassenger && vehicleid == 135 || !ispassenger && vehicleid == 163 || !ispassenger && vehicleid == 164 || !ispassenger && vehicleid == 165)
    {
    if(TakingLesson[playerid] == 1) { }
    else if(!IsAnInstructor(playerid))
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist kein Fahrlehrer !");
    TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1);
    }
    }
    return 1;
    }


    Wenn der Spieler jedoch des öfteren Enter drückt, dann kann er in das Auto. Gibt es eine andere Lösung als es unter ON_Player_State_Change einzufügen? Hätte zwar selbst ne Lösung und zwar RemovePlayerFromVehicle mit einem Timer schreiben, jedoch halte ich diese Idee persönlich zu bescheuert....

  • if(newstate == 2)
    {
    if(vehicleid == 133 || vehicleid == 134 || vehicleid == 135 || vehicleid == 163 || vehicleid == 164 || vehicleid == 165)
    {
    if(!TakingLesson[playerid] && !IsAnInstructor(playerid))
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist kein Fahrlehrer !");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Es bewirkt schon was, denn dann wird die Aktion die der Spieler gerade ausführt abgebrochen , diese Funktion hat hervorragend Funktioniert in der 0.2x,
    jedoch weiß ich nicht wie es in der 0.3a aussieht

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Ehm bei 0.3a kann man es durch mehrfachen Enter drücken umgehen.


    RemovePlayerFromVehicle wird auch nicht funktionieren, da diese Funktion zu früh ausgeführt wird, außer es hat was mit dem newstate zu tun. Was bewirkt denn das newstate == 2 ?

  • Ich weiß nicht ob es in der Praxis so funktioniert, wie es funktionieren soll, aber einen Versuch ist es wert:
    new Float:gX, Float:gY, Float:gZ;
    GetPlayerPos(playerid, gX, gY, gZ);
    SetPlayerPos(playerid, gX, gY, gZ);