Brauche hilfe bei den Fraktionen.

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
  • Nabend


    Klein Freggel steht wieder aufm schlauch. Ich habe Fraktionen erstellt. Nicht normal mit gTeams sondern mit einer Variable. Sollte die Variable auf 1 sein ist man im LSPD, ist sie auf 2 ist man bei den Hitmans etc. Beim Leader habe ich es mir so vorgestellt, das man mit Rank 7 Leader ist und dann normal die 6 Ränge in der Fraktion. Alles ist in einem enum gespeichert.


    1. Frage: Ist das eine gute Variante oder kann mir einer eine Bessere nennen?
    2. Frage sollte diese Möglichkeit gut sein kann mit jmd beim Makeleader befehl helfen? Habe es bereits versucht und bin kläglich gescheitert.
    Beim Makeleader befehl sollte dann die [leader] Variable auf die gewünsche Fraktionsid gesetzt werden und der Rank auf 7.


    Hier noch mein enum



    enum spieler_daten
    {
    Geld,
    Score,
    Wanted,
    Skin,
    Eingeloggt,
    pAdmin,
    Kills,
    Tode,
    Leader, //wird im moment bei allen CMDs etc verwendet
    Member, //wird nicht verwendet.
    Rank,
    Job
    }
    new PlayerInfo[MAX_PLAYERS][spieler_daten];


    Edit: Kann keiner helfen? :D

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

    2 Mal editiert, zuletzt von Freggel ()

  • Wieso scheiterst du an so einem leichten Befehl?


    Du setzt einfach PlayerInfo[giveplayerid][Leader] auf 1 und Rank auf 7


    Schau GF den Befehl an der ist schlicht und schreib ihn für dich um

  • dcmd_makeleader(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Hier stene die Fraktionen + id");
    return 1;
    }
    new para1;
    new level;
    para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Hier stene die Fraktionen + id");
    return 1;
    }
    level = strval(tmp);
    if(level > 10 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "Fraktion zwischen 1 und 10 wählen!"); return 1; }
    if (PlayerInfo[playerid][pAdmin] >= 1337)
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[para1][Leader] > 0 || PlayerInfo[para1][Leader] < 10)
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist in einer Gang/Mafia/Fraktion");
    return 1;
    }
    if(PlayerInfo[para1][Leader] >= 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist schon ein Leader, Bitte benutze erst /unmakeleader !");
    return 1;
    }
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    PlayerInfo[para1][Leader] = level;
    format(string, sizeof(string), "* Du wurdest von Admin %s zum Leader einer Fraktion gemacht.", sendername);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s die Kontrolle über die Fraktion Nr. %d gegeben.", giveplayer,level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    PlayerInfo[para1][pTeam] = 11;
    PlayerInfo[para1][pRank] = 6;
    SetPlayerSkin(para1, PlayerInfo[para1][pModel]);
    if(PlayerInfo[para1][pLeader] == 8)
    {
    PlayerInfo[para1][Leader] = 0;
    PlayerInfo[para1][Rank] = 0;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht berechtigt, diesen Befehl zu benutzen !");
    }
    }
    }
    return 1;
    }


    folgende Errors

    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1973) : error 017: undefined symbol "tmp"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1973) : error 017: undefined symbol "cmdtext"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1974) : error 017: undefined symbol "tmp"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1983) : error 017: undefined symbol "tmp"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1984) : error 017: undefined symbol "tmp"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1984) : error 017: undefined symbol "cmdtext"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1985) : error 017: undefined symbol "tmp"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(1991) : error 017: undefined symbol "tmp"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(2009) : error 017: undefined symbol "giveplayer"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(2009) : error 017: undefined symbol "giveplayer"
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(2009) : error 029: invalid expression, assumed zero
    C:\Users\Freggel\Desktop\Neuer Ordner\gamemodes\Neue.pwn(2009) : fatal error 107: too many error messages on one line


    Habe des schon mal gesehen aber leider keine Ahnung wie ich es befehbe, wie gesagt bin neu im Scripten


    Kann man mir noch helfen?

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

    Einmal editiert, zuletzt von Freggel ()

  • Das ist auch ein GF befehl
    hier ist mein Selfmade befehl musste wahrscheinlich umschreiben ^^ und die Farben Defenieren



    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    new pID, Fraktion;
    if(sscanf(params,"ui",pID, Fraktion))return SendClientMessage(playerid,COLOR_WEISS,"Benutze: /makeleader [ID] [Fraktion]");
    if(Fraktion<0||Fraktion>6)return SendClientMessage(playerid,COLOR_RED,"Bitte gültige Fraktion angeben.");
    SetPVarInt(pID,"Leader",Fraktion);
    SetPVarInt(pID,"frank",6);//ich scripte mit SetPVarInt GetPVarInt.... ich habs mit MrMonatTutorials gelernt :) auf youtube -> Ankucken und lernen der zeigt dir von Port befehlen bis Fraktionen alles in 18 TUTs :D :D :D
    SpielerSpeichern(pID);
    //hier kannste noch strings und alles hinzufügen
    return 1;
    }

  • Dank [E]xtreme[F]ighter habe ich es nun so



    dcmd_makeleader(playerid,params[])
    {
    if(PlayerInfo[playerid][pAdmin]<1337)
    {
    return SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Admin!");
    }
    new pID, Fraktion;
    if(sscanf(params,"ui",pID, Fraktion))
    {
    return SendClientMessage(playerid,COLOR_GRAD2,"Benutze: /makeleader [ID] [Fraktion]");
    }
    if(Fraktion<0||Fraktion>10)
    {
    return SendClientMessage(playerid,COLOR_GRAD2,"Bitte gültige Fraktion angeben.");
    }
    PlayerInfo[pID][Leader] == Fraktion; //Warning, hat kein Effekt
    PlayerInfo[pID][Rank] == 7; //Warning hat kein Effekt
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    format(string,sizeof string,"Du hast %s zum Leader der Fraktion %d gemacht",name,Fraktion);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string,sizeof string,"Du wurdest zum Leader der Fraktion %d gemacht",Fraktion);
    return 1;
    }


    Klappt alles recht gut nur das ich nicht in die Fraktion gesetzet werde und auch der rank wird nicht geändert.
    Edit: Denke ich habs -.-
    Edit: :D Klappt alles sehr ngut, vielen dank

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • Bitte :)



    Der Beitrag ist zu kurz. Der Beitrag muss mindestens 15 Zeichen lang sein und 6 Wörter enthalten.