/aduty befehl geht 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
  • Hallo,


    ich habe mir neulich einen Befehl geschrieben wo man in den Dienst gehen soll. Wenn ich mich einlogge dann lautet mein name wie es sein soll: [TAG]Name.
    Aber wenn ich aus dem Dienst gehen soll lautet dann mein Name irgentwie so: [TAG][TAG]Name. Ich habe schon den Namen aus der MySQL tabelle ausgelesen aber es hilft nichts.


    Hier ist mal der Befehl:
    ocmd:aduty(playerid,params[])
    {
    new name[128];
    cache_get_field_content(0, "username",name,dbhandle,25);


    if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,Rot,"Du bist nicht Eingeloggt");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Administrator oder dein Rang ist nicht hoch genung");
    if(sInfo[playerid][adminonduty] == 0)
    {
    new string[128],stringname[64];
    format(string,sizeof(string),"Der Administrator %s ist als %s im Einsatz",SpielerName(playerid),Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    format(stringname,sizeof(stringname),"["SERVERTAG"]%s",SpielerName(playerid));
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,0xFF0000B2);
    }
    else
    {
    new string[128],stringname[64];
    format(string,sizeof(string),"Der Administrator %s hat den Einsatz als %s Beendet",name,Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    format(stringname,sizeof(stringname),"%s",name,Adminrang(playerid));
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,Weiß);
    }
    return 1;
    }


    Wie kann ich den Bug beheben?


    Danke im vorraus


    MfG Exon

  • Erstelle den die Variable name mal Global oben im Script.

  • Für was überhaupt die Abfrage aus der Datenbank?
    ocmd:aduty(playerid,params[])
    {
    if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,Rot,"Du bist nicht Eingeloggt");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Administrator oder dein Rang ist nicht hoch genung");
    if(sInfo[playerid][adminonduty] == 0)
    {
    new string[128],stringname[MAX_PLAYER_NAME];
    format(string,sizeof(string),"Der Administrator %s ist als %s im Einsatz",SpielerName(playerid),Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    format(stringname,sizeof(stringname),"["SERVERTAG"]%s",SpielerName(playerid));
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,0xFF0000B2);
    sInfo[playerid][adminonduty] = 1;
    }
    else
    {
    new string[128],stringname[MAX_PLAYER_NAME];
    format(stringname,sizeof(stringname),SpielerName(playerid));
    strdel(stringname, 0, strfind(stringname, "]")+1);
    format(string,sizeof(string),"Der Administrator %s hat den Einsatz als %s Beendet",stringname,Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,Weiß);
    sInfo[playerid][adminonduty] = 0;
    }
    return 1;
    }


    Oder so, je nach dem wie du es lieber hast.

    Spoiler anzeigen
    ocmd:aduty(playerid,params[])
    {
    static oldName[MAX_PLAYERS][MAX_PLAYER_NAME];
    if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,Rot,"Du bist nicht Eingeloggt");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Administrator oder dein Rang ist nicht hoch genung");
    if(sInfo[playerid][adminonduty] == 0)
    {
    new string[128],stringname[MAX_PLAYER_NAME];
    format(string,sizeof(string),"Der Administrator %s ist als %s im Einsatz",SpielerName(playerid),Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    format(oldName[playerid], MAX_PLAYER_NAME], SpielerName(playerid));
    format(stringname,sizeof(stringname),"["SERVERTAG"]%s",SpielerName(playerid));
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,0xFF0000B2);
    sInfo[playerid][adminonduty] = 1;
    }
    else
    {
    new string[128];
    format(string,sizeof(string),"Der Administrator %s hat den Einsatz als %s Beendet",oldName[playerid],Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    SetPlayerName(playerid,oldName[playerid]);
    SetPlayerColor(playerid,Weiß);
    sInfo[playerid][adminonduty] = 0;
    }
    return 1;
    }

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()


  • new name = cache_get_field_content(0, "username",name,dbhandle,25);