Makeleader fehler

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 leute wenn ich z.b: /Makeleader 0 1 mache kommt "Du bist nun der Leader von Hitman aber "Hitman hat die Fraktions ID 6 ?? und es ist egal was ich hinter der playerid (0 ?) schreibe. es kommt immer du bist der Leader von Hitman.
    Vielleicht könnt ihr mir helfen er zeigt mir jetzt nehmlich nur noch eine fraktion an als ob die anderen garnicht gibt.


    Define:
    //Fraktionen


    #define sFraktion0 "Zivilist"
    #define sFraktion1 "LSPD"
    #define sFraktion2 "FBI"
    #define sFraktion3 "Bundeswehr"
    #define sFraktion4 "Sanitäter"
    #define sFraktion5 "Russische Mafia"
    #define sFraktion6 "Hitman"


    Makeleader Befehl:
    dcmd_makeleader(playerid, params[])
    {
    new pid,frakid;
    if(sscanf(params,"ud", pid, frakid))
    {
    return SendClientMessage(playerid,GELB,"Verwendung : /makeleader [ID] [Fraktionsid]");
    }
    if(frakid > 13)
    {
    return SendClientMessage(playerid,ROT,"So viele Fraktionen gibt es nicht!");
    }
    if(IstSpielerAdmin(playerid, 4))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Unglültiger Spieler!");
    }
    if(IstSpielerInFraktion(pid,frakid) == frakid)
    {
    return SendClientMessage(playerid,ROT,"Dieser Spieler ist schon in dieser Fraktion.");
    }
    else
    {
    new string[128];
    format(string,sizeof(string),"Du bist der Leader von %s",GetFraktionsName(playerid));
    SendClientMessage(playerid,BLAU,string);
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    }
    return 1;
    }


    Stock:
    stock GetFraktionsName(playerid)
    {
    new string[64];
    if (sSpieler[playerid][Fraktion] == 0) string = ("Zivilist");
    if (sSpieler[playerid][Fraktion] == 1) string = ("LSPD");
    if (sSpieler[playerid][Fraktion] == 2) string = ("FBI");
    if (sSpieler[playerid][Fraktion] == 3) string = ("Bundeswehr");
    if (sSpieler[playerid][Fraktion] == 4) string = ("Sanitäter");
    if (sSpieler[playerid][Fraktion] == 5) string = ("Russische Mafia");
    if (sSpieler[playerid][Fraktion] == 6) string = ("Hitman");
    return string;
    }

  • Schreib deinen Befehl mal so:


    dcmd_makeleader(playerid, params[])
    {
    if(!IstSpielerAdmin(playerid, 4)) return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    new pID,frakid;
    if(sscanf(params,"ud", pID, frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /makeleader [ID] [Fraktionsid]");
    if(frakid > 13) return SendClientMessage(playerid,ROT,"So viele Fraktionen gibt es nicht!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Unglültiger Spieler!");
    if(IstSpielerInFraktion(pID,frakid) == frakid) return SendClientMessage(playerid,ROT,"Dieser Spieler ist schon in dieser Fraktion.");
    new string[128],name[24];
    GetPlayerName(pID,name,24);
    format(string,sizeof(string),"Du bist der Leader von %s",GetFraktionsName(pID));
    SendClientMessage(pID,BLAU,string);
    format(string,128,"Du hast %s Leader der Fraktion %s gemacht !",name,GetFraktionsName(pID));
    SendClientMessage(playerid,BLAU,string);
    return 1;
    }


    und die Funktion (stock) so:


    stock GetFraktionsName(playerid)
    {
    new string[64];
    switch(sSpieler[playerid][Fraktion]) {
    case 0: format(string,64,"Zivilist");
    case 1: format(string,64,"LSPD");
    case 2: format(string,64,"FBI");
    case 3: format(string,64,"Bundeswehr");
    case 4: format(string,64,"Sanitäter");
    case 5: format(string,64,"Russische Mafia");
    case 6: format(string,64,"Hitman");
    }
    return string;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Es wird immer noch angezeigt Du bist nun Leader von Hitman
    kann es vill an Accsystem liegen?


    /edit
    Weil wenn in mein scriptfiles und dann in Accounts ordner gehe und da die fraktions id in der txt. datei änder dann geht es ??


    //hier mal mein accsystem:


    OnPlayerConnect:
    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    SendClientMessage(playerid,BLAU,"Herzlich Willkommen zurück.");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Herzlich Willkommen auf den Reallife Server von GSR.");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte dein gewünschtes passwort ein:","Registriern","Abbrechen");
    return 1;
    }

    }


    OnDialogResponse:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==LOGIN){
    if(response){
    if(strlen(inputtext) < 4){
    SendClientMessage(playerid,BLAU,"Das Passwort war zur kurz");
    return ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
    }else return Login(playerid,inputtext);
    }else{
    SendClientMessage(playerid,BLAU,"Du hast den Login Vorgang abgebrochen.");
    return Kick(playerid);
    }
    }else if(dialogid==REGISTER){
    if(response){
    if(strlen(inputtext) < 4){
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    return ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte dein gewünschtes passwort ein:","Registriern","Abbrechen");
    }else return Register(playerid,inputtext);
    }else{
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    return Kick(playerid);
    }
    }
    return 1;
    }


    Stock 1:
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Level",0);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    dini_IntSet(Spielerdatei,"Rang",0);
    dini_IntSet(Spielerdatei,"Geld",50000);
    SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich Registriert.");
    SpielerReset(playerid);
    return 1;
    }


    Stock 2:
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich angemeldet.");
    SpielerLaden(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Du hast ein falsches Passwort eingegeben.");
    Kick(playerid);
    return 1;
    }
    }


    Stock 3:
    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    dini_IntSet(Spielerdatei,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spielerdatei,"Level",sSpieler[playerid][Level]);
    dini_IntSet(Spielerdatei,"Fraktion",sSpieler[playerid][Fraktion]);
    dini_IntSet(Spielerdatei,"Rang",sSpieler[playerid][Rang]);
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    }
    return 1;
    }


    Stock 4:
    stock SpielerLaden(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Spielerdatei,"Level");
    sSpieler[playerid][Fraktion] = dini_Int(Spielerdatei,"Fraktion");
    sSpieler[playerid][Rang] = dini_Int(Spielerdatei,"Rang");
    }
    return 1;
    }


    Stock 5 ende:
    stock SpielerReset(playerid)
    {
    sSpieler[playerid][Adminlevel] = 0;
    sSpieler[playerid][Level] = 0;
    sSpieler[playerid][Fraktion] = 0;
    sSpieler[playerid][Rang] = 0;
    sSpieler[playerid][Geld] = 0;
    return 1;
    }

    Einmal editiert, zuletzt von Sanja ()

  • Omg, jetzt verstehe ich, was du machen willst, einen makeleader befehl :wacko: Sollte mir das mal besser durchlesen :D


    Schreibe es so:


    dcmd_makeleader(playerid, params[])
    {
    if(!IstSpielerAdmin(playerid, 4)) return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    new pID,frakid;
    if(sscanf(params,"ud", pID, frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /makeleader [ID] [Fraktionsid]");
    if(frakid > 13) return SendClientMessage(playerid,ROT,"So viele Fraktionen gibt es nicht!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Unglültiger Spieler!");
    if(IstSpielerInFraktion(pID,frakid) == frakid) return SendClientMessage(playerid,ROT,"Dieser Spieler ist schon in dieser Fraktion.");
    new string[128],name[24];
    GetPlayerName(pID,name,24);
    sSpieler[pID][Fraktion] = frakid; //das hast du vergessen
    format(string,sizeof(string),"Du bist der Leader von %s",GetFraktionsName(pID));
    SendClientMessage(pID,BLAU,string);
    format(string,128,"Du hast %s Leader der Fraktion %s gemacht !",name,GetFraktionsName(pID));
    SendClientMessage(playerid,BLAU,string);
    return 1;
    }


    mfg. :whistling:

    ast2ufdyxkb1.png


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