Fraktautos nur für Frakt immer zugänglich

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 Breadfischer..
    Ich habe da ein Problem mit den Fraktionsautos...
    Also ich will das man zum Beispiel wenn man Ballas ist jederzeit in ein Ballasauto kann.
    Ich habe schon den /flock befehl damit andere dann auch ins Fahrzeug können.
    Mein Problem ist nur ich kriege es nicht hin das man beim Connecten als Ballas in ein Ballascar kann.
    Ich habe es mit den Ballascars so definiert:
    Ballascar[1]=
    Ballascar[2]=
    .....
    Und als definition ob der in Frakt Ballas is so:
    isPlayerInFrakt(playerid,3)


    Vielleicht kann mir ja hier einer helfen :)


  • public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof terrorcar; i++)
    {
    if(GetPlayerVehicleID(playerid)==terrorcar[i])
    {
    if(GetPVarInt(playerid,"Fraktion")!=3)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Rot,"Du hast keine Schlüssel für dieses Fahrzeug.");
    }
    }
    }
    }
    return 1;
    }

    So ungefähr :)

  • Dieser Code alleine wird ihm nicht viel weiter helfen.
    Ich habe das ganze damals ziemlich simpel gelöst:


    Da es in meinem Car-System sowieso Variablen für Motor, Licht, Benzinzstand, etc. gab und ich diese als Array angelegt hatte, habe ich dort einfach die Fraktion speichern lassen.
    Somit konnte ich direkt beim einsteigen abfragen.


    Da wir hier aber bei Scriptwünsche sind:

    new fraktion[MAX_CARS];
    new veh = AddStaticVehicle(..);
    fraktion[veh] = fraktionsid;


    //OnPlayerStateChange
    if(fraktion[GetPlayerCarID(playerid] != 0 && fraktion[GetPlayerCarID] != SpielerInfo[playerid][fraktion])
    {RemovePlayerFromVehicle(playerid); SendClientMessage(..);}


    Musst du halt noch etwas zurechtschneiden, sollte aber funktionieren ;)

  • Das passiert wenn man den Thread nur überfliegt^^
    Brauchst nen CMD und musst dann mit SetVehicleParams(Ex) das Auto dementsprechend auf/ab schließen.
    Das heißt du kannst meinen Code so verwenden und brauchst nur dem CMD zum Auf/Abschließen des Fahrzeuges.


    Wenn ich heute abend zuhause bin schreib ich dich mal an.
    Bin gerade auf der Arbeit und da habe ich weder wirklich die Zeit, noch die Möglichkeit dir irgendwie zu helfen ;)