Kleiner Bug brauche hilfe ...

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
  • Hey, ich suche jmd. der mir helfen kann.


    Wäre nett wenn du es könntest
    Ich habe in letzter Zeit sehr viel Scripten gelernt, jedoch beschäftigt mich seit längerem ein Problem.


    Hab ein RL script, nur iwie kann sich jeder Member mit /giverank selber nen rank geben.


    hier mal der befehl!




    if(strcmp(cmd, "/giverank", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Benutze: /giverank [SpielerID] [Nummer(1-13)]");
    return 1;
    }
    new para1;
    new level;
    para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    level = strval(tmp);
    if(level > 13 || level < 0) { SendClientMessage(playerid, COLOR_RED, "Der Rang kann nicht unter 0 oder über 13 sein."); return 1; }
    if(PlayerInfo[playerid][pLeader] == PlayerInfo[para1][pLeader] || PlayerInfo[playerid][pLeader] == PlayerInfo[para1][pLeader])
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    PlayerInfo[para1][pRank] = level;
    format(string, sizeof(string), "Leader %s hat ihnen Rang %d gegeben.", sendername,level);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Sie haben %s den Rang %d gegeben.", giveplayer,level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    }
    }
    }
    return 1;
    }




    k.A was falsch ist.

  • Du musst dabei noch Abfragen ob der Spieler Leader ist, ich weiß ja nicht wie du das bei dir gemacht hast, bei mir ist das:


    IsPlayerLeader


    Musst halt dazu auch einen Stock erstellen und das dann defnieren...

  • FAIL,
    Du hast ja gar keine admin abrfrahe oder so darein gemacht was sollte das bitteschön verhindern dass das jeder kann du musst irgendeine abfrage machen ich weiiss nicht ob du schon ne admin abfrage hast.

  • Du fügst diesen Stock ein:


    Code
    stock IsPlayerLeader(playerid,fID)
    {
    	if(GetPVarInt(playerid,"Fraktionsleader") == fID) return 1;
    	return 0;
    }


    Dann setzt du wo deine Accounts Geladen/Gepeichert werden eine neue Variable, nämlich "Fraktionsleader".
    Dann musst du bei deinem /Makeleader Befehl die Variable Fraktionsleader auf 1 setzen lassen...
    Wenn du jetzt in deine Abfrage schreibst:


    Code
    ocmd:giverank(playerid,params[])
    {
          if(IsPlayerAnAdmin(playerid,1)
          {
                 //Dein Command...
          }
    }


    Dann dürfte alles funktionieren


    //Edit Wenn du damit immer noch nichts anfangen kannst, melde dich bei mir via PN dann schicke ich dir meinen /giverank Befehl...