Rank wird nicht angezeigt

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
  • Moin, hab mir nen Admin Chat Befehl erstellt, aber der Admin Rank failt, und der Befehl selber klappt auch nicht



    ocmd:a(playerid,params[])
    {
    if(SpielerInfo[playerid][pTeammitglied] == 1)
    {
    new text[50],Name[MAX_PLAYER_NAME],string[126],rankname[20],rank;
    GetPlayerName(playerid,Name,sizeof(Name));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,GRAU,"Benutzung : /a [Nachricht]");
    SpielerInfo[playerid][pTeammitglied] = rank;
    switch(rank)
    {
    case 1: rankname = "Supporter";
    case 2: rankname = "Administrator";
    case 3: rankname = "Head Administrator";
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][pTeammitglied] > 0)
    {
    format(string,sizeof(string),"%s %s: %s",rankname,Name,text);
    }
    SendClientMessage(i,0xFFFFFFFF,string);
    }
    }
    return 1;
    }

  • versuch es mal so habe es nicht getestet....


    ocmd:a(playerid,params[])
    {
    if(SpielerInfo[playerid][pTeammitglied] == 1)
    {
    new text[50],Name[MAX_PLAYER_NAME],string[126];
    GetPlayerName(playerid,Name,sizeof(Name));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,GRAU,"Benutzung : /a [Nachricht]");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][pTeammitglied] > 0)
    {
    format(string,sizeof(string),"%s %s: %s",SpielerAdminRank(i),Name,text);
    SendClientMessage(i,0xFFFFFFFF,string);
    }
    }
    }
    return 1;
    }


    stock SpielerAdminRank(playerid)
    {
    new rankname[50];
    if(SpielerInfo[playerid][pTeammitglied] == 0) { rankname= "Spieler"; }
    else if(SpielerInfo[playerid][pTeammitglied] == 1) { rankname= "Supporter"; }
    else if(SpielerInfo[playerid][pTeammitglied] == 2) { rankname= "Administrator"; }
    else if(SpielerInfo[playerid][pTeammitglied] == 3) { rankname= "Head Administrator"; }
    return rankname;
    }


    /edit Fehler behoben!

    Einmal editiert, zuletzt von Pr0x ()

  • Warum neuer Thread?
    Deine Benutzung ist auch Käse.


    Wie sieht dein giverank Befehl aus?
    Die Variable wo der rang gegeben wird gehört in den switch.


    Teammitglied = Admin oder kein Admin, oder auch direkt der Rang? Nimm dein pTieammitglied in den Switch und entferne deine rank variable, genauso wie Pr0x


    /e1

    KleineHilfe 2.0

  • new /*text[50],Name[MAX_PLAYER_NAME],string[126],rankname[20],*/rank; // rank = 0
    SpielerInfo[playerid][pTeammitglied] = rank; //pTeammitglied wird auf rank gesetzt, was 0 beträgt
    switch(rank) //rang ist Null -> wird nicht ausgeführt
    {


    }
    rank = SpielerInfo[playerid][pTeammitglied];
    wäre die richtige Lösung. Alternativ kannst du auch direkt switch(SpielerInfo[playerid][pTeammitglied]) verwenden.


  • habe es jetzt mal verbessert ;)

  • Probier es mal so. Bin mir unsicher ob es funktioniert^^


    ocmd:a(playerid,params[])
    {
    if(SpielerInfo[playerid][pTeammitglied] == 1)
    {
    new text[50],Name[MAX_PLAYER_NAME],rankname[20],rank;
    GetPlayerName(playerid,Name,sizeof(Name));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,GRAU,"Benutzung : /a [Nachricht]");
    rank=SpielerInfo[playerid][pTeammitglied];
    switch(rank)
    {
    case 0:rankname = "Unwichtig";
    case 1: rankname = "Supporter";
    case 2: rankname = "Administrator";
    case 3: rankname = "Head Administrator";
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][pTeammitglied] >= 1)
    {
    format(string,sizeof(string),"%s %s: %s",rankname,Name,text);
    }
    SendClientMessage(i,0xFFFFFFFF,text);
    }
    }
    return 1;
    }


  • Funktioniert nur wenn man Admin Rang 1 hat ,und es wird auch kein name oder kein Rankname angezeigt, lediglich nur der Text


  • Funktioniert nur wenn man Admin Rang 1 hat ,und es wird auch kein name oder kein Rankname angezeigt, lediglich nur der Text


    Probier mal das, sollte Funktionieren:


    ocmd:a(playerid,params[])
    {
    if(SpielerInfo[playerid][pTeammitglied] == 1)
    {
    new text[50],Name[MAX_PLAYER_NAME],string[126];
    GetPlayerName(playerid,Name,sizeof(Name));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,GRAU,"Benutzung : /a [Nachricht]");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][pTeammitglied])
    {
    format(string,sizeof(string),"%s %s: %s",SpielerAdminRank(i),Name,text);
    SendClientMessage(i,0xFFFFFFFF,string);
    }
    }
    }
    return 1;
    }


    stock SpielerAdminRank(playerid)
    {
    new rankname[50];
    if(SpielerInfo[playerid][pTeammitglied] == 0) { rankname= "Spieler"; }
    else if(SpielerInfo[playerid][pTeammitglied] == 1) { rankname= "Supporter"; }
    else if(SpielerInfo[playerid][pTeammitglied] == 2) { rankname= "Administrator"; }
    else if(SpielerInfo[playerid][pTeammitglied] == 3) { rankname= "Head Administrator"; }
    return rankname;
    }