Aktion abbrechen geht unter 0.3 nichtmehr?

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 liebe User,
    ich habe jetzt mein Job System gescripted.
    Da musste ich (damit normale User nicht mit Cop Cars fahren können)
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);
    nutzen.
    Bisher wurde die "Aufsteig Aktion" abgebrochen, dort jetzt tut sie das nichtmehr?
    Ich habe auch mal per print ausgeben lassen, was für eine Aktion bei einem false Statement aufgerufen wird, und welche beim true Statement.
    Das funktioniert einwandfrei.
    Die Funktionen werden richtig aufgerufen, jedoch kann man trotzdem aufsteigen.
    Das soll aber nicht, könnt ihr da näheres zu sagen, und wie ich das Problem lösen kann?
    MfG
    Maxx

  • Unter OnPlayerState


    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == Deine Copcar modell id)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,farbe,"Nur für Cops");
    return 1;
    }
    }


    Sollte es auch tun

  • Ein return probiere ich mal schnell.
    Das mit dem abschliessen, weiss ich nciht, teste ich dann als nächstes ;)
    Danke des Gedankenanstoßes :D
    //EDIT:
    Das returnen hat nicht geklappt.
    Dann versuchte ich das auf- bzw. abschliessen.
    Da dies aber bei 0.3 nurnoch beim einstreamen klappt, funktioniert diese Methode auch nicht.
    Weitere Vorschläge?
    Lieben Dank
    MfG
    Maxx

    Einmal editiert, zuletzt von Maxx ()

  • Müsste man bei OnPlayerEnterVehicle dann return 0; machen ?
    Anstatt return 1;


    @dit


    Ansonsten mach doch einfach unter OnPlayerEnterVehicle



    if(GetVehicleModel(vehicleid) == Deine Modell ID)
    {
    new Float:x,Float:,Float:z,Float:rot;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,rot);
    SetPlayerPos(playerid,x,y,z);
    SetPlayerFacingAngle(playerid,rot);
    SendClientMessage(playerid,farbe,"Nur für COPS");
    }


    Sollte ja dann auch funktionieren.

    Einmal editiert, zuletzt von Hagi ()

  • Ich habe jetzt so ziemlich alles durch.
    Nichts funktioniert - um's kurz zu machen:
    Ich will einen möglichst kleinen Code, weshalb ich dann wohl mit:
    RemovePlayerFromVehicle(playerid);
    arbeiten werde.
    Das tut es, und das ist ein kurzer Code.
    Ist zwar nicht mein Wunsch, aber naja.
    Wie auch immer, danke an alle, die mir geholfen haben.
    Ich lass den Thread mal offen, vllt hat ja einer noch eine Lösung :)
    MfG
    Maxx

  • unter OnPlayerStateChange...


    if(newstate == 2)
    {
    if(GetVehicleModel(vehicleid) == Modell ID)
    {
    If(<Team abfrage>)
    {
    RemovePlayerFormVehicle(playerid);
    // Weitere Aktionen
    }
    }
    }



    oder unter OnVehicleStreamIn Das Fahrzeug für den Spieler mit der Standard Funktion verriegeln
    Hier mal ein Beispiel dazu...


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    if(GetVehicleModel(vehicleid) == modell)
    {
    if(<Team abfrage>)
    {
    SetVehicleParamsForPlayer(vehicleid,forplayerid,0,1);
    }
    }
    return 1;
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


    Einmal editiert, zuletzt von BlackFoX ()

  • Ich hab das bei meinen Admin-Cars so:

    public OnPlayerEnterVehicle (playerid,vehicleid, ispassenger)
    {
    new veh = GetVehicleModel(vehicleid);
    {
    if(veh == 520 || veh == 427 || veh == 432 || veh == 490 || veh == 523 || veh == 528 || veh == 545 || veh == 575 || veh == 596 || veh == 597 || veh == 598 || veh == 599 || veh == 601) //hier einfach deine ModelID's-Von den CopCars einfügen
    {
    if(IsPlayerAdmin(playerid)) //durch deine gTeam (oder was auch immer du hast) Abfrage ersetzen
    {
    SendClientMessage (playerid, 0xFFFFFFFF, "Dies ist ein Admin-Car!");
    }
    else
    {
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(playerid, x+3, y+3, z+3); //hier kannste die +3 wegmachen, Erklärung s.u.
    SendClientMessage (playerid, 0xFFFFFFFF, "Sorry, das ist nur für große Jungs! xD");
    }
    }
    else
    {
    }
    }
    }


    Da kann der Spieler gar nicht erst einsteigen, sondern wird 3 Meter auf jeder Achse weggesetzt. Du kannst die +3'er auch wegmachen, dann wird er einfach wieder da hingesetzt, wo er einsteigen wollte, bewegt sich im Endeffekt also gar nicht. Das ist vielleicht Roleplay-tauglicher...