/makeleader befehl buggt

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
  • moin moin,


    mein /makeleader befehl buggt, also leader machen geht es buggt nur bei der text ausgabe, naja seht selbst...



    dcmd_makeleader(playerid,params[])
    {
    new pid, frakid;
    new string[128], string2[128];
    if(sscanf(params,"ud",pid,frakid))
    {
    return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung : /makleader [ID] [Fraktions ID]");
    }

    if(frakid > 1)
    {
    return SendClientMessage(playerid,COLOR_RED,"Soviele Fraktionen gibt es nicht!");
    }
    if(IstSpielerAdmin(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,COLOR_RED,"Ungültiger Spieler!");
    }
    if(IstSpielerInFraktion(pid,frakid) == frakid)
    {
    return SendClientMessage(playerid,COLOR_RED,"Der angegebene Spieler ist schon in dieser Fraktion!");
    }
    else
    {


    sSpieler[pid][Fraktion] = frakid;
    sSpieler[pid][Leader] = 1;
    sSpieler[pid][Rank] = 12;
    SpielerSpeichern(pid);
    SpawnPlayer(pid);
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion: %s ernannt.",sSpieler[pid],frakid);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string2,sizeof(string2),"Admin:%s hat dich zum Leader der Fraktion: %s ernannt.",sSpieler[playerid],frakid);
    SendClientMessage(pid,COLOR_LIGHTBLUE,string2);
    SendClientMessage(pid,COLOR_LIGHTBLUE,"Erfülle dein Amt als Leader gut!");
    }
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Administrator!");
    }
    return 1;
    }


    Was er Anzeigt:
    Du hast zum Leader der Fraktion ernannt. (Sieht der der jemanden leadert logisch oder :P )
    Admin: hat dich zum Leader der Fraktion: ernannt.
    Erfülle dein Amt als Leader gut!



    hab dieses Problem überall auch beim Fraktionschat usw.

  • dcmd_makeleader(playerid,params[])
    {
    new pid, frakid;
    new string[128], string2[128];
    if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung : /makleader [ID] [Fraktions ID]");
    if(frakid > 1) return SendClientMessage(playerid,COLOR_RED,"Soviele Fraktionen gibt es nicht!");
    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Administrator!");
    if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Ungültiger Spieler!");
    if(IstSpielerInFraktion(pid,frakid) == frakid) return SendClientMessage(playerid,COLOR_RED,"Der angegebene Spieler ist schon in dieser Fraktion!");


    sSpieler[pid][Fraktion] = frakid;
    sSpieler[pid][Leader] = 1;
    sSpieler[pid][Rank] = 12;
    SpielerSpeichern(pid);
    SpawnPlayer(pid);
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion: %d ernannt.",sSpieler[pid],frakid);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string2,sizeof(string2),"Admin:%s hat dich zum Leader der Fraktion: %d ernannt.",sSpieler[playerid],frakid);
    SendClientMessage(pid,COLOR_LIGHTBLUE,string2);
    SendClientMessage(pid,COLOR_LIGHTBLUE,"Erfülle dein Amt als Leader gut!");
    return 1;
    }

  • if(IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Administrator!");

    =


    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Administrator!");


    Edit


    Dazu musst du den integer in eine string formatieren

    KleineHilfe 2.0

  • Achso, dachte es sollte nur ab mit lvl 5 gehen mit makeleader :)
    Hast du den allseits bekannten SpielerName stock?
    Ansonsten new Name[MAX_PLAYER_NAME];


    GetPlayerName(playerid,Name,sizeof(Name));


    Verwendung: Name für player id, das selbe für pID erstellen.

    KleineHilfe 2.0

  • Ja, aber du gibst mit playerid nur die id zurück und nicht den Namen.
    Du musst ihn zuerst auslesen.
    Nutze dies was ich dir nun schreibe


    stock spielername(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    Nun ersetzt du deine komischen variablen um den namen auszulesen mit spielername(playerid) & spielername(pid) fertig :)

    KleineHilfe 2.0