Admin / Fraktions Autos

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
  • Guten Abend, Breadfish.
    Ich hab eine längere Zeit vergeblich nach solch einem Tutorial auf Breatfish gesucht. Dann bin ich auf ein Tutorial auf der Englischen Seite gestoßen, das bei mir perfekt funktioniert hat, und deswegen dachte ich, ich würde euch mal zeigen, wie das geht, weil das eigentlich total einfach ist, und jaaaa, sollte jeder hinbekommen, wenn selbst ich das hinbekomm :D


    Also zuerst definieren wir mal das Car bei den ganzen Defines und Includes:
    new Admincar;
    Dann gehen wir unter OnGameModeInit() (Ich glaub ihr wisst was das ist,Dieses Callback wird aufgerufen, wenn der Gamemode geladen wird.)
    Und dort erstellen wir dann das davor definierte Admincar, und zeigen dem Script dass das das Admincar ist
    Also: public OnGameModeInit()
    {
    //Alles was davor kommt
    Admincar = AddStaticVehicle(520,2187.0125,1321.1467,11.6033,183.3407,0,0); // Adminhydra in LV
    return 1;
    }
    Variable = AddStaticVehicle


    Soo, wenn wir jetzt unter public OnPlayerEnterVehicle gehen, wollen wir, dass wenn er versucht in dieses Car zu steige, soll die Animation gecleart werdne.


    Also:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(vehicleid == Admincar && !IsPlayerAdmin(playerid)) //Hier wird abgefragt ob die VehicleID die Variable ist, die wir definiert haben und er kein Admin ist, wenn das stimmt, dann... (Also hier ob er ein RCON Admin ist oder nicht, könnt ihr mit euerer Adminvariable machen)
    {
    ClearAnimations(playerid); //...Wird die Animation gecleart
    SendClientMessage(playerid,0xFFFFFFFF,"Du bist kein Administrator");//Und wir senden ihm noch eine kleine Nachricht.
    }
    return 1;
    }


    Das ganze kann man beliebig weiter erweitern.Hier definen wir wieder.
    new Admincar,Admincar2;
    Und unter OnGameModeInit
    public OnGameModeInit()
    {
    //Alles was davor kommt
    Admincar = AddStaticVehicle(520,2187.0125,1321.1467,11.6033,183.3407,0,0); // Adminhydra in LV
    Admincar = AddStaticVehicle2(522,2200.0125,1321.1467,11.6033,183.3407,0,0); // AdminNRG in LV
    return 1;
    }
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(vehicleid == Admincar && !IsPlayerAdmin(playerid))
    {
    ClearAnimations(playerid); //...Wird die Animation gecleart
    SendClientMessage(playerid,0xFFFFFFFF,"Du bist kein Administrator");//Und wir senden ihm noch eine kleine Nachricht.
    }


    if(vehicleid == Admincar2 && !IsPlayerAdmin(playerid))
    {
    ClearAnimations(playerid); //...Wird die Animation gecleart
    SendClientMessage(playerid,0xFFFFFFFF,"Du bist kein Administrator");//Und wir senden ihm noch eine kleine Nachricht.
    }
    return 1;
    }
    Und das könnt ihr eben soweit machen wie ihr wollt. Meiner Meinung nach die einfachste Variante von Admincars/Fraktionscars, bei Fraktionscars muss man dann eben eine Variablen für Fraktionen erstellen. Als kleines BSP:
    stock IsPlayerInFrakt(playerid,fraktid)
    {
    if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
    return 0;
    }
    Also das Bsp für die Abfrage für Fraktion wär für Dini.


    Ich hoffe euch hat das Tutorial gefallen.
    Ich bitte euch das durchzulesen was ich geschrieben habe, damit ihr auch was lernt, wenn ihr noch Fragen habt, könnt ihr euch gerne Melden! :)


    Mit freundlichen Grüßen,
    #include aka. Johannes

    Einmal editiert, zuletzt von #include () aus folgendem Grund: eine 2 vergessen :)

  • ich würde es aber in einem Array machen also


    new admincars[2];


    Und bei OnGamemodeInit:
    admincars[0] = AddStaticVehicle(...);
    admincars[1] = AddStaticVehicle(...);


    Und bei OnPlayerEnterVehicle dann:

    for(new i=0;i<sizeof(admincars);i++){
    if(vehicleid == admincars[i]){
    SendClientMessage(playerid,0xFFFFFFFF,"Du bist kein Administrator");
    }
    }


    So kann man viele Zeilen sparen ;)