Fraktionstool V.3

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 Morgen,


    tut mir leid, wenn ich in letzter Zeit immer so Sachen veröffentliche, mir ist aber total langweilig :S


    Also heute ist es ein Fraktionstool, welches ich gerade geschrieben habe und dies hilft Leuten die gerade ein Selmfade schreiben wollen ;)


    [tabmenu]


    [tab='Allgemeine Informationen','http://forum.sa-mp.de/wcf/icon/infoM.png']
    [subtab='Funktionen','http://forum.gamerzhost.de/wcf/icon/codeS.png']
    SetPlayerFraktion(playerid, frakid); //Fügt einen Spieler in eine Fraktion
    SetPlayerRang(playerid, rangid); //Setzt den Rang des Spielers
    IsOnline(frakid); //Listet in einem Dialog auf, wer aus der Fraktion online ist + Titel, quasi Member: Kaliber (Rang: Rangname)
    GetFraktion(playerid); //returnt frakid
    GetRang(playerid); //returnt den Rang des Spielers
    SetFraktionsColor(frakid, hexcode); //Hier kann man farben für die einzelnen Fraktionen setzen
    SetFraktionsSpawn(frakid, Float:X,Float:Y,Float:Z, (optional)Float:A); //ja, setzt halt den Spawnpunkt für die Spieler (an einer Base)
    SetRangName(frakid, rangid, name[]); //Setzt den Rangnamen für die bestimmte Fraktion
    GetRangName(playerid); //returnt (nach Beispiel) "Laufbursche"
    AddFrakCar(frakid,modelid,Float:X,Float:Y,Float:Z,Float:A,color1,color2,respawn); //Fügt ein Car der Fraktion hinzu
    GetFrakCar(vehicleid); //returnt zu welcher Frakid dieser Wagen gehört
    SetFraktionArt(frakid, art); //Setzt die Fraktions Art (ob Gang...) siehe Beispiel Tab (V3.0)
    GetFraktionArt(frakid); //Returnt die Fraktionsart als String (V3.0)
    CreateGangZone(frakid, Float:minx, Float:miny, Float:maxx, Float:maxy); //Erstellt eine Fraktions Gangzone (V3.0)
    GetGangZoneOwner(GangZoneID); //Returnt die frakid von dem Owner der Gangzone (V3.0)
    SetGangZoneOwner(GangZoneID,frakid); //Setzt den Owner der Gangzone (V3.0)

    [subtab='Wichtig','http://www.rezepte-guru.de/template/images/icon_stern.gif']
    Man kann den MAX_RANG setzen:
    #define MAX_RANG 10 //Hier setzen wir den "Leader Rang" auf 10
    #define MAX_FRAKTIONS 30 //Hier könnte man die Anzahl der Fraktionen erhöhen
    //Das muss man nicht machen mit MAX_RANG oder MAX_FRAKTIONS
    //Da MAX_RANG (ohne verändern) den Wert 6 hätte und MAX_FRAKTIONS (ohne verändern) 20
    #include <frakhelp> //Wichtig, erst unter dem #define stehen !
    PS: Wer den Leader Rang hat, ist automatisch Leader der Fraktion.


    PS²: Es gibt keine Fraktion 0 = keine Fraktion !!!
    [subtab='Beispiele','http://www.damen-eishockey.de/images/lampe.gif']
    //Unter OnGameModeInit
    SetFraktionsColor(1, 0xFFFFFFFF); //Die Fraktion 1 hätte jetzt die Farbe weiß
    SetFraktionsSpawn(1, 0.0, 0.0, 0.0); //Die Fraktion 1 würde jetzt an den Koordinaten 0,0,0 spawnen
    SetRangName(1, 1, "Laufbursche"); //In der Fraktion 1, wenn man Rang 1 ist heißt man Laufbursche


    //Ein Beispiel Invite Befehl
    ocmd:invite(playerid, params[]) //ich hoffe du nutzt ocmd
    {
    //if(!IsPlayerAdmin(playerid)) return 1; //Man sollte für diesen Befehl Admin sein, ich lasse es mal weg...
    new pID, frakid;
    if(sscanf(params,"ui",pID,frakid)) return SendClientMessage(playerid,rot,"Verwendung: /invite [spielerid] [frakid]");
    SetPlayerFraktion(pID, frakid);
    SetPlayerRang(pID, 1);
    SetPlayerSkin(playerid, 299); //halt irgendein neuer Fraktions Skin
    return 1;
    }
    Hier ein Beispiel zu der Verwendung vom Leadersystem: Leader Beispiel
    [subtab='Download','http://www.projekt-deutsch.de/templates/cback/images/download.gif']
    Pastebin: Pastebin (V.3.0)
    Mediafire: Download Mediafire (V.3.0)
    [/tabmenu]


    Zu den Fraktionscars:

    Zitat

    Man kann die Fraktion Cars nur benutzen, wenn man zu der Fraktion gehört, sie sind durch SetVehicleParams abgeschlossen !


    Hier nun die Version 3.0, Viel Spaß :)


    mfg. :thumbup:


    //Edit:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    9 Mal editiert, zuletzt von Kaliber ()

  • Ja das wäre noch besser


    Okay, also ich dachte da an sowas:


    AddFraktionsCar(frakid, modelid,X,Y,Z,A,c1,c2,respawn); //habe mal die Variablentypen weggelassen


    SetDoorsLocked(frakid, var); /*
    Wenn var = false, dann sind die Türen durch SetVehicleParamsEx abgeschlossen
    wenn var = true, dann kommt man in das Auto aber da ist es mit RemovePlayerFromVehicle
    */


    So okay, oder habt ihr da noch eine bessere Idee ?


    kann man die Fraktion Namen


    Eine extra Funktion gibts dafür nicht, aber wenn du die haben willst mach ich eine ;)

    Skin´s festlegen?


    Ja, das ist so eine Sache, wenn man z.B. mehrere Fraktionsskins haben soll wird das problematisch, deshalb dachte ich das man das manuell festlegt...mhm, aber wenn du da eine Idee für eine Funktion hast, poste mal eine Beispiel Funktion :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Wie mach ich den den Frakname?oben new Fraktionsname bla ?

  • Wie mach ich den den Frakname?oben new Fraktionsname bla ?


    Momentan, brauchst du keine Variable dazu, da der Name statisch ist, hier ein jetziges Beispiel:


    //In einem command
    if(GetFraktion(playerid) == 1) SendClientMessage(playerid,blau,"Du bist ein Yakuza Mitglied !"); //so irgendwie


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zuerstmal, die neue Version mit den Fraktion Cars ist draußen :)


    //Edit²:
    Man kann die Fraktion Cars nur benutzen, wenn man zu der Fraktion gehört, sie sind durch SetVehicleParams abgeschlossen !


    //Edit:
    Achso jetzt hab ich deine Frage verstanden du willst meine Include außeinander nehmen und nur einzelne Teile verwenden :(
    Ehm...ja schau doch einfach wie ich es gemacht habe, dafür ist der Source Code da :P


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber


    Éine frage noch wie kann ich ein Dialog machen wo man alle Rang Namen sieht wie z.b.


    Rang: 1 Name: blabla
    Rang: 2 Name: kakaka
    .....


    So:


    //der Command
    ocmd:rangnamen(playerid, params[])
    {
    show_rang_dialog(playerid, frakid);
    return 1;
    }


    //Die Funktion
    stock show_rang_dialog(playerid, frakid)
    {
    new v = 1, string[128], buffer[32];
    for(; v<MAX_RANG; v++)
    {
    format(buffer, sizeof buffer, "Rang %d: %s",v,Rang_Name[frakid][v]);
    strcat(string, buffer, sizeof string);
    }
    ShowPlayerDialog(playerid,-1,DIALOG_STYLE_MSGBOX,"{FF0000}Rang Info",string,"Bestätigen","");
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Du könntest noch einen /invite befehl machenHab kp wie das gehen würde-..


    Also...das sollte nun wirklich kein Problem sein, hier mal ein Beispiel:


    ocmd:invite(playerid, params[]) //ich hoffe du nutzt ocmd
    {
    //if(!IsPlayerAdmin(playerid)) return 1; //Man sollte für diesen Befehl Admin sein, ich lasse es mal weg...
    new pID, frakid;
    if(sscanf(params,"ui",pID,frakid)) return SendClientMessage(playerid,rot,"Verwendung: /invite [spielerid] [frakid]");
    SetPlayerFraktion(pID, frakid);
    SetPlayerRang(pID, 1);
    SetPlayerSkin(playerid, 299); //halt irgendein neuer Fraktions Skin
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen