/admins Befehl mit GetPVarInt

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 hab mal eine kleine Frage.
    Wie erstell ich den /admins - Befehl mit GetPVarInt.
    Ich hab mal in GF geschaut, doch da ist es eben nicht mit GetPVarInt sondern mit
    if(PlayerInfo[i][pAdmin] >= 1 ......


    Der Befehl sollte dann so ähnlich wie der hier sein nur halt wie gesagt mit GetPVarInt:


    if (strcmp(cmd, "/admins", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pAdmin] >= 1 && PlayerInfo[i][pAdmin] < 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    }
    }
    }
    return 1;
    }


  • new admin[MAX_PLAYERS];
    GetPVarInt(playerid, pAdmin) = admin[playerid];
    if(admin[playerid] > 1 && admin[playerid] <1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }

    Liebe Grüße


    Marcel

  • Hab nu ein bisschen rumprobiert, wenn ich es so mache:
    if(strcmp(cmd, "/admins",true)==0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i, "Adminlevel") > 0);
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    }
    }
    return 1;
    }
    kommt der Error:

    Code
    (697) : error 036: empty statement


    Wenn ich es so mache:
    if(strcmp(cmd, "/admins",true)==0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new admin[MAX_PLAYERS];
    GetPVarInt(playerid, pAdmin) = admin[playerid];

    if(admin[playerid] > 1 && admin[playerid] <1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    }
    }
    return 1;
    }
    kommen diese beiden errors:

    Code
    (695) : error 017: undefined symbol "pAdmin"
    (695) : warning 215: expression has no effect


    Was muss ich ändern?

  • pAdmin ist undefiniert.
    Was ist deine Adminabfrage?

  • Meine Adminabfrage funzt über einen stock


    stock isPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }



    Mein Problem liegt halt daran, da ich nicht weiß wie ich das Adminlevel von anderen Usern abfrage


  • if(strcmp(cmd, "/admins",true)==0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i, "Adminlevel") > 0))// nach einer if Abfrage kommt niemals ein ";"
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    }
    }
    return 1;
    }

    Mit unfreundlichen Grüßen
    Buschmensch

  • Gut, danke das klappt schon mal :)
    Nun hätte ich nur noch eine kleine Frage :D
    Ich möchte das bei den verschiedenen Rängen auch verschiedene 'Titel' angezeigt werden, und man ab dem Rang 1338 nicht mehr angezeigt wird.
    if(strcmp(cmd, "/admins",true)==0)
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i, "Adminlevel") == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter/Moderator: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") > 2 && GetPVarInt(i, "Adminlivel") < 1338) // In dieser Zeile ist etwas flasch, doch was :D
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    return 1;
    }
    }
    return 1;
    }


    So wie ich es jetzt hab, wird bei dem Rang 1 "Supporter: NAME ", bei dem Rang 2 "Supporter/Moderator: NAME" u. bei ALLEN Rängen über 2 "Admin: NAME" angezeigt, doch ich möchte halt wie gesagt, dass nur die Ränge 3 - 1337 als "Admin: NAME" angezeigt werden.



    /e: Habs auch mal so ausprobiert:
    if(strcmp(cmd, "/admins",true)==0)
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i, "Adminlevel") == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter/Moderator: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") > 2 && GetPVarInt(i, "Adminlivel") < 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") >= 2000)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Projektleiter: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    return 1;
    }
    }
    return 1;
    }


    ..doch dann wird bei einem Rang von 2000+ Angezeigt:


    Code
    Admins online:
    Admin: Fredi
    Projektleiter: Fredi
  • Nochmal zu deinem Ersten Zitat:
    Da hättest du folgendes machen Sollen
    if(strcmp(cmd, "/admins",true)==0)
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i, "Adminlevel") == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter/Moderator: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") > 2 && GetPVarInt(i, "Adminlivel") < 1339) // Anstatt 1338, 1339 damit auch 1338 Angezeigt wird weil sonst wird nur alles unter 1338 angezeigt
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    return 1;
    }
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Habs jetzt so gemacht:



    if(strcmp(cmd, "/admins",true)==0)
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i, "Adminlevel") == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Supporter/Moderator: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    if(GetPVarInt(i, "Adminlevel") >=3 && GetPVarInt(i, "Adminlevel") <=1337)// Einfach mit " >= 3 " und " <= 1337 " anstatt " >2 " und " >1338"
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s", sendername);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    return 1;
    }
    }
    return 1;


    Und es klappt :)