Ähnlicher Befehl wie makeleader 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
  • Irgendwie habe ich ein kleines Problem. Bei /makeleader geht fast genau die selbe funtkion 1A aber hier klappt es nicht... naja vielleicht sieht einer von euch den Fehler hänge da mal wieder Stunden dran und suche rum. Damit ihr es vergleichen könnt poste ich gleich mal beide hier.


    Mein Teil (klappt nicht)
    -es kommt kein du bist gefeuert usw und den Job hat man auch noch. Nach dem ich die else Kontrolle eingebaut habe kam auch nichts.

    if(strcmp(cmdtext, "/feuern" , true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pChef] == 0)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast kein Unternehmen");
    return 1;
    }
    if(PlayerInfo[playerid][pChef] == 1)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Benutze: /feuern [playerid/Name]");
    return 1;
    }
    new para1;
    para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(IsPlayerConnected(para1))
    {
    if(playerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), " Du hast %s gefeuert !", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " Chef %s hat dich gefeuert !", sendername);
    PlayerInfo[playerid][pBGefeuert] = 1;//Gefeuert
    PlayerInfo[playerid][pJob] = 0;
    SendClientMessage(playerid, COLOR_YELLOW, "Du wurdest gefeuert !");
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "playerid != INVALID_PLAYER_ID");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "IsPlayerConnected(para1)");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "PlayerInfo[playerid][pChef] == 1");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "IsPlayerConnected(playerid)");
    }
    return 1;
    }

    Der /makechef Teil klappt 1A)

    if(strcmp(cmd, "/makechef", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] < 2000)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dazu bist du nicht befugt!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Benutze: /makechef [playerid/Name] [Nummer(1)]");
    SendClientMessage(playerid, COLOR_YELLOW, "Firmen: 1 Los Santos Busunternehmen");
    return 1;
    }
    new para1;
    new level;
    para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    level = strval(tmp);
    if(level > 1 || level < 1) { SendClientMessage(playerid, COLOR_GREY, " Geh nicht tiefer als Nummer 1, oder höher als Nummer 1!"); return 1; }
    if (PlayerInfo[playerid][pAdmin] >= 1338)
    {
    if(IsPlayerConnected(para1))
    {
    if(playerid != INVALID_PLAYER_ID)
    {
    new ctext[32];
    if(level == 0)
    {
    ctext = "/";
    }
    if(level == 1)
    {
    ctext = "Los Santos Busunternehmen";
    }
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), " Du hast %s die Chefrechte des %s gegeben.", giveplayer,ctext);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " Admin %s hat dich zum Chef von des %s ernannt.", sendername,ctext);
    new iyear, imonth,iday;
    getdate(iyear, imonth, iday);
    format(string, sizeof(string), "%s[Level:%d] wurde von %s als Leiter des %s eingeladen (%d-%d-%d)", giveplayer,PlayerInfo[para1][pLevel],sendername,ctext,imonth,iday,iyear);
    LeaderLog(string);
    if(level == 0)
    {
    PlayerInfo[playerid][pChef] = 0;
    }
    else if(level == 1)
    {
    PlayerInfo[playerid][pChef] = 1;//Los Sanots Busunternehmen
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " ** INFO: Das ist ein Adminbefehl, Du bist nicht befugt!");
    }
    }
    return 1;
    }

    So damit man alles genaustens verstehen kann nochmal der /makeleader Teil von dem ich alles abgeschaut habe
    if(strcmp(cmd, "/makeleader", true) == 0)


    {


    if(IsPlayerConnected(playerid))


    {


    if(PlayerInfo[playerid][pAdmin] < 2000)


    {


    SendClientMessage(playerid, COLOR_GRAD1, "Dazu bist du nicht befugt!");


    return 1;


    }


    tmp = strtok(cmdtext, idx);


    if(!strlen(tmp))


    {


    SendClientMessage(playerid, COLOR_YELLOW, "Benutze: /makeleader [playerid/Name] [Nummer(1-24)]");


    SendClientMessage(playerid, COLOR_YELLOW, "Fraktionen: 1 LSPD, 2 FBI, 3
    Bundeswehr, 4 Medic, 5 LCN, 6 Yakuza, 7 Präsi, 8 (nicht vorhanden),");


    SendClientMessage(playerid, COLOR_YELLOW, "Fraktionen: 9 CNN, 10 (nicht
    vorhanden) , 11 Fahrlehrer, 12 (nicht vorhanden), 13 (nicht
    vorhanden,");


    SendClientMessage(playerid, COLOR_YELLOW, "Fraktionen: 14 (nicht
    vorhanden), 15 (nicht vorhanden), 16 FlugManagerLS, 17 FlugManagerSF,");


    SendClientMessage(playerid, COLOR_YELLOW, "Fraktionen: 18 FlugManagerLV,
    19 (nicht vorhanden), 20 Terror, 21 Wheelmen, 22 Bundespolizei, 23
    (nicht vorhanden), 24 O-Amt");


    return 1;


    }


    new para1;


    new level;


    para1 = ReturnUser(tmp);


    tmp = strtok(cmdtext, idx);


    level = strval(tmp);


    if(level > 24 || level < 0) { SendClientMessage(playerid,
    COLOR_GREY, " Geh nicht tiefer als Nummer 0, oder höher als Nummer
    24!"); return 1; }


    if (PlayerInfo[playerid][pAdmin] >= 1338)


    {


    if(IsPlayerConnected(para1))


    {


    if(para1 != INVALID_PLAYER_ID)


    {


    if(PlayerInfo[para1][pMember] > 0 || PlayerInfo[para1][pFMember] < 255)


    {


    SendClientMessage(playerid, COLOR_GREY, " Dieser Player ist bereits/noch in einer Fraktion!");


    return 1;


    }


    if(PlayerInfo[para1][pFrakSperre] > 0)


    {


    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler hat FraktionsSperre!");


    return 1;


    }


    new ftext[32];


    if(level == 0) { ftext = "Zivilisten"; } else { ftext = Fracs[(level-1)]; }


    GetPlayerName(para1, giveplayer, sizeof(giveplayer));


    GetPlayerName(playerid, sendername, sizeof(sendername));


    format(string, sizeof(string), " Du hast %s die Leaderrechte der Fraktion %s gegeben.", giveplayer,ftext);


    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);


    format(string, sizeof(string), " Admin %s hat dich zum Oberhaupt von der %s ernannt.", sendername,ftext);


    gTeam[para1] = 0;


    PlayerInfo[para1][pTeam] = 0;


    PlayerInfo[para1][pRank] = 6;


    PlayerInfo[para1][pLeader] = level;


    PlayerInfo[para1][pGehalt] = 0;


    new iyear, imonth,iday;


    getdate(iyear, imonth, iday);


    format(string, sizeof(string), "%s[Level:%d] wurde von %s Als Leader der
    Fraktion %s eingeladen (%d-%d-%d)",
    giveplayer,PlayerInfo[para1][pLevel],sendername,ftext,imonth,iday,iyear);


    LeaderLog(string);


    if(level == 0)


    {


    gTeam[para1] = 3;


    PlayerInfo[para1][pTeam] = 3;


    PlayerInfo[para1][pMember] = 0;


    PlayerInfo[para1][pRank] = 0;


    PlayerInfo[para1][pChar] = 0;


    new rand = random(sizeof(CIV));


    SetSpawnInfo(para1, gTeam[para1], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);


    PlayerInfo[para1][pModel] = CIV[rand];


    MedicBill[para1] = 0;


    SpawnPlayer(para1);


    }


    else if(level == 1) { PlayerInfo[para1][pChar] = 283; gTeam[para1] = 2; PlayerInfo[para1][pTeam] = 2; } // LOS SANTOS POLICE


    else if(level == 2) { PlayerInfo[para1][pChar] = 165; gTeam[para1] = 2; PlayerInfo[para1][pTeam] = 2; } // SAN FIERRO POLICE


    else if(level == 3) { PlayerInfo[para1][pChar] = 287; gTeam[para1] = 2; PlayerInfo[para1][pTeam] = 2; } // Bundeswehr


    else if(level == 4) { PlayerInfo[para1][pChar] = 275; gTeam[para1] = 4; PlayerInfo[para1][pTeam] = 4; } // Medic


    else if(level == 5) { PlayerInfo[para1][pChar] = 113; } // La Cosa Nostra


    else if(level == 6) { PlayerInfo[para1][pChar] = 120; } // Yakuza


    else if(level == 7) { PlayerInfo[para1][pChar] = 295; } // Mayor


    //else if(level == 8) { PlayerInfo[para1][pChar] = 294; } // Hitmans


    else if(level == 9) { PlayerInfo[para1][pChar] = 187; } // CNN


    else if(level == 10) { PlayerInfo[para1][pChar] = 189; } // Taxi Cab Company


    else if(level == 11) { PlayerInfo[para1][pChar] = 240; } // Fahrschule


    //else if(level == 12) { PlayerInfo[para1][pChar] = 120; } // Fuegos


    //else if(level == 13) { PlayerInfo[para1][pChar] = 269; } // Grove Street


    //else if(level == 14) { PlayerInfo[para1][pChar] = 103; } // Ballas


    //else if(level == 15) { PlayerInfo[para1][pChar] = 247; } // Sf Biker Club


    else if(level == 16) { PlayerInfo[para1][pChar] = 228; } //FlugManagerLS


    else if(level == 17) { PlayerInfo[para1][pChar] = 227; } //FlugManagerSF


    else if(level == 18) { PlayerInfo[para1][pChar] = 57; } // FlugManagerLV


    //else if(level == 19) { PlayerInfo[para1][pChar] = 19; } // Red Soldiers


    else if(level == 20) { PlayerInfo[para1][pChar] = 220; } // Terroristen


    else if(level == 21) { PlayerInfo[para1][pChar] = 47; } //Wheelmen


    else if(level == 22) { PlayerInfo[para1][pChar] = 285; } // Bundespolizei


    //else if(level == 23) { PlayerInfo[para1][pChar] = 127; } // russenmafia


    else if(level == 24) { PlayerInfo[para1][pChar] = 71; } // Ordnungsamt


    SetPlayerSkin(para1, PlayerInfo[para1][pChar]);


    }


    }//not connected


    }


    else


    {


    SendClientMessage(playerid, COLOR_GRAD1, " ** INFO: Das ist ein Adminbefehl, Du bist nicht befugt!");


    }


    }


    return 1;


    }


    Hoffe diesmal könnt ihr mir hier helfen bei meinen letzten Problem fand sich schon keiner der der Aufgabe gewachsen war und helfen wollte.

  • PlayerInfo[playerid][pBGefeuert] = 1;//Gefeuert
    PlayerInfo[playerid][pJob] = 0;


    du machst es ja auch für dich selber, und nicht den anderen spieler

    PlayerInfo[playerid][pChef] = 1;
    Aber so mache ich das doch bei /makechef und das klappt ja.
    Habs genau so umgeändert wie bei /makeleader hat aber auch nichts geholfen
    PlayerInfo[para1][pBGefeuert] = 1;//Gefeuert
    PlayerInfo[para1][pJob] = 0;
    Also es ist ja nicht so das nur das nicht klappt es kommt auch kein Text und nichts.

  • format(string, sizeof(string), " Admin %s hat dich zum Chef von des %s ernannt.", sendername,ctext);
    Du müsstest den formatierten string auch absenden.


    SendClientMessage(para1,farbe,string);


    Oh das hast du falsch verstanden. Der Bereich mit /makechef also auch dies funktioniert. Das was nicht geht ist /feuern da kommt nichts. Kein Text und der Job wird auch nicht geändert.

  • PlayerInfo[playerid][pBGefeuert] = 1;//Gefeuert
    PlayerInfo[playerid][pJob] = 0;
    SendClientMessage(playerid, COLOR_YELLOW, "Du wurdest gefeuert !");


    machst du alles für dich, du musst es eig nur für den anderen spieler machen.

    Aber so mache ich das doch bei /makechef und das klappt ja.


    Habs genau so umgeändert wie bei /makeleader hat aber auch nichts geholfen
    Also es ist ja nicht so das nur das nicht klappt es kommt auch kein Text und nichts.





    2-3 Beiträge voher hattest du genau das auch schon gemeint und das war meine Antwort.
    Also mit [para1] habe ich es halt auch schon gemacht genau wie bei /makeleader und das klappt ja vom Rohscript her so ohne das ich da was dran geändert habe. Anders gesagt falls du es nicht so verstanden hast: Ich habe es so gemacht wie bei der Funktion von der ich alles abgeguckt habe und wo es auch funktioniert und es hat nicht geklappt. (Alle 3 Funktionen werden angezeigt 2 davon klappen genau mit dem selben Prinziep meiner Meinung nach) Solltest du im Vergleich den Fehler erkennen den ich jetzt auch nicht erkenne denn schau dir doch bitte die funktionierenden Funktionen an und sag mir auch bitte die Lösung.

  • so hab mir mal dein makeleader befehl angesehen, da hast du es eben so
    PlayerInfo[para1][pTeam] = 0;


    also muss es ja funktionieren..
    warum nutzt du nicht einfach sscanf? da kannst du dir so nen ärger auch ersparen..


    wie gesagt mit [para1] hat es hier auch nicht geklappt und der anderen funktionierende Befehl klappt auch mit [playerid]... sscanf? keine Ahnung was das nun ist.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • mit sscanf kannst du befehle mit parametern erstellen, sehr hilfreich.. und erspart dir hier den ärger..
    forum.sa-mp.com/showthread.php?t=120356


    Danke werde ich mir mal anschauen. Aber ersmal will ich es so hinbekommen denn bei den anderen Befehl den ich gemacht habe klappt es ja. So nun anders habe was heraus gefunden. Wenn ich bei /makechef eine ID nutze die nicht onloine ist kommt nichts genau wie das Problem hier. Kann es also sein das der Befehl irgendwo die ID nicht erkennt oder so?