RemovePlayerFromVehicle(playerid=

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
  • Hi,
    ich hoffe mir kann jemand helfen, und zwar funktioniert bei mir der Befehl RemoveplayerFromVehicle(playerid) nicht, hier der Code:

    Code
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    	SendClientMessage(playerid,0xAAAAAAAA,"You can't drive that car");
    	RemovePlayerFromVehicle(playerid);
    	return 1;
    }


    Ich habe den Code soweit vereinfacht wie möglich, um das Problem einzugrenzen, aber da die Naricht angezeigt wird, muss es an dem oben genanten Befehl liegen.
    In Hoffnung auf schnelle Antworten
    DjDETE

  • Ging bei mir auch nicht also hab ich impovisiert oder wie das auch immer geschrieben wird :-]



    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    SendClientMessage(playerid,0xAAAAAAAA,"You can't drive that car");
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    SetPlayerPos(playerid, X, Y, Z+2);
    return 1;
    }

  • Das Callback OnPlayerEnterVehicle wird aufgerufen sobald du die Einsteigen-Taste drückst, also wenn du noch neben dem Auto stehst --> RemovePlayerFromVehicle greift ins leere da du ja nicht im Auto sitzt.


    Du musst den Code daher in das Callback OnPlayerStateChange schreiben, wenn die Variable newstate == PLAYER_STATE_DRIVER ist hat sich der Spieler gerade ins Auto gesetzt:


    public OnPlayerStateChange(playerid, newstate, oldstate) {
    if (newstate == PLAYER_STATE_DRIVER) {
    SendClientMessage(playerid,0xAAAAAAAA,"You can't drive that car");
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }


    Weitere States stehen in der a_samp.inc im include-Ordner.

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • Also ersteinmal muss ich mich für die schnellen Antworten bedanken, aber ich habe noch eine Frage im Bezug auf die Antwort von breadfish:
    Wie kann ich das dann Vehiclespezifisch machen, also das man nur in bestimmte Autos nicht einsteigen kann?

  • Ersteinmal musst du wissen in welches Auto man nicht einsteigen darf, dazu gibt es die vehicleid. Die id ist entsprechend der Reihenfolge in der du Autos mit AddStaticVehicle hinzufügst. Das erste Auto das du hinzufügst hat die vehicleid 1, das zweite die vehicleid 2 usw...


    Damit man in ein bestimmtes Auto nicht einsteigen kann musst du etwas code hinzufügen:



    public OnPlayerStateChange(playerid, newstate, oldstate) {
    if (newstate == PLAYER_STATE_DRIVER) {
    if (GetPlayerVehicleID(playerid) == hier_die_vehicleid_hinschreiben) {
    SendClientMessage(playerid,0xAAAAAAAA,"You can't drive that car");
    RemovePlayerFromVehicle(playerid);
    }
    }
    return 1;
    }

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!