makeleader befehl klappt nicht

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,
    mein makeleader Befehl funktioniert leider nicht.
    Hier der Befehl.


    Er funktioniert bis zu der Abfrage ob der Wert "frakid" zwischen 1 und 10 liegt.
    Dann kommt aber nichts mehr.


    ocmd:makeleader(playerid,params[])
    {
    if(PlayerInfo[playerid][pAdmin] < 2)return SendClientMessage(playerid, rot, "Du bist kein Teammitglied.");
    new pID,string[144], aname[MAX_PLAYER_NAME], frakid;
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"ui",pID,frakid))return SendClientMessage(playerid,rot,"[FEHLER]{FFFFFF} Benutze: /makeleader [Name/ID] [0-10]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, -1, "Der Spieler ist nicht online!");
    if(frakid < 0 || frakid > 10)return SendClientMessage(playerid, rot, "Der wert muss zwischen 0-10 liegen!");
    if(frakid == 1)
    {
    PlayerInfo[pID][pFrak] = 1;
    format(string,sizeof(string),"[INFO]{FFFFFF} Admin %s hat dich zum Leader der Fraktion LSPD ernannt!",aname);
    SendClientMessage(pID,rot,string);
    return 1;
    }
    if(frakid == 2)
    {
    PlayerInfo[pID][pFrak] = 2;
    format(string,sizeof(string),"[INFO]{FFFFFF} Admin %s hat dich zum Leader der Fraktion FBI ernannt!",aname);
    SendClientMessage(pID,rot,string);
    return 1;
    }
    return 1;
    }

  • Einen Fehler kann ich da auf die schnelle nicht erkennen.
    Bau deine Abfrage aber mal so auf.
    if(frakid < 0 || frakid > 10)return SendClientMessage(playerid, rot, "Der wert muss zwischen 0-10 liegen!");
    else if(frakid == 1)
    Wahrscheinlich könnte das deinen Fehler schon beheben, wenn nicht dann melde dich nochmals.

  • ocmd:makeleader(playerid,params[]){
    if(PlayerInfo[playerid][pAdmin] < 2)return SendClientMessage(playerid, rot, "Du bist kein Teammitglied.");
    new pID,string[144], aname[MAX_PLAYER_NAME], frakid;
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"ui",pID,frakid))return SendClientMessage(playerid,rot,"[FEHLER]{FFFFFF} Benutze: /makeleader [Name/ID] [0-10]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, -1, "Der Spieler ist nicht online!");
    if(frakid < 0 || frakid > 10)return SendClientMessage(playerid, rot, "Der wert muss zwischen 0-10 liegen!");
    format(string,sizeof string,"[INFO]{FFFFFF} Admin %s hat dich zum Leader der Fraktion %s ernannt!",aname,GetFrakName(frakid));
    SendClientMessage(pID,rot,string);
    PlayerInfo[pID][pFrak] = frakid;
    }


    stock GetFrakName(rang_y){
    switch(rang_y){
    case 0:return "Zivilist";
    case 1:return "LSPD";
    case 2:return "FBI";
    default: return "ERROR";
    }
    return "ERROR";
    }


    Schau dir das mal an, ich habe es gerade mal fix für dich geschrieben! (Nicht getestet)


    mfg :thumbup:

  • ich kann dir hier mal meine variante posten


    Spoiler anzeigen
    ocmd:makeleader(playerid,params[])
    {
    if(!isAdmin(playerid,7) && ADuty[playerid] == 1) return SendClientMessage(playerid,RED,
    "Dein Adminrang ist zu niedrig");
    new pID, fID;
    if(sscanf(params,"ui",pID,fID)) return SendClientMessage(
    playerid,RED,"INFO : /makeleader [Playerid][FraktionsID]");
    if(fID >= sizeof(fInfo))return SendClientMessage(
    playerid,RED,"Fraktion existiert nicht!");
    sInfo[pID][fraktion] = fID;
    sInfo[pID][rang] = 6;
    new string[256];
    format(string,sizeof(string),
    "%s hat dich zum Leader der Fraktion %s gemacht",
    getPlayerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID,CL_GRAU, string);
    SendClientMessage(playerid,CLGREEN,"Du hast einen Spieler zum Leader gemacht");
    sInfo[playerid][pLeader] = sInfo[playerid][fraktion];
    sInfo[playerid][pMember] = sInfo[playerid][fraktion];
    return 1;
    }


    ist mit einem accept befehl verbaut


    hier der dazu


    Spoiler anzeigen
    ocmd:accept(playerid,params[])
    {
    new item[64];
    if(sscanf(params,"s[64]",item))return SendClientMessage(
    playerid, RED, "INFO: /accept [invite]");
    if(!strcmp(item, "invite", false))
    {
    if(GetPVarInt(playerid, "inv_frakid") == 0)return SendClientMessage(
    playerid, RED, "Du wurdest in keine Fraktion eingeladen.");
    new fID = GetPVarInt(playerid, "inv_frakid");
    sInfo[playerid][fraktion] = fID;
    sInfo[playerid][rang] = 1;
    new string[256]; //new fID = GetPVarInt(playerid, "inv_frakid");
    format(string,sizeof(string), "Du bist der Fraktion %s beigetreten (Rang 1).",
    fInfo[fID][f_name]);
    SendClientMessage(playerid,CL_GRAU , string);
    format(string,sizeof(string), "%s ist der Fraktion beigetreten.",
    getPlayerName(playerid));
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"), RED,
    string);
    SetPVarInt(playerid, "inv_frakid", 0);
    sInfo[playerid][pMember] = sInfo[playerid][fraktion];
    return 1;
    }
    return 1;
    }