/aduty Befehl. Wie?

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 liebe Community.
    Ich hätte eine Frage unzwar.
    Ich möchte in mein Selfmade gerne denn Befehl /aduty oder soetwas einbauen.
    Also dass dan in Chat z.B. steht: Admin Lenny ist nun als Supporter unterwegs. Und dass der User dann die Farbe Lila oder soetwas z.B. bekommt.
    Wie gesagt der Befehl sollte für Rcon-Admins sein. (Da ich nie Check wie man ein Admin System macht. Ich will mir nicht son Ding dowloaden.)
    Ich bedanke mich schon einmal.


    Gruß,
    Lenny

    Mit freundlichen Grüßen,
    Mätz'chen

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/aduty",cmdtext,true)== 0)
    {
    new string[64],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(IsPlayerAdmin(playerid))
    {
    if(Aduty[playerid] == 0)
    {
    Aduty[playerid] = 1;
    format(string,sizeof(string),"Admin %s ist nun im Dienst",name);
    SendClientMessageToAll(FARBE,string);
    }
    else
    {
    format(string,sizeof(string),"Admin %s ist nun außer Dienst",name);
    Aduty[playerid] = 0;
    SendClientMessageToAll(FARBE,string);
    }
    }
    return 1;
    }
    return 0;
    }


    dafür musst dann ganz oben im Script


    new Aduty[MAX_PLAYERS];


    /edit:


    und natürlich NICHT zuvergessen ( was ich jetzt habe in dem Fall^^)


    unter das OnPlayerDisconnect public unbedingt


    Aduty[playerid] = 0; machen

    Einmal editiert, zuletzt von Thommylee ()



  • Dazu solltest du aber noch wissen das dieser Befehl nur für Rcon Admins funktioniert.
    Dies könnten wir ändern in dem du uns erklärst wie in deinem Script das Spieler Admin Level definiert ist.


    MFG RFT










    //edit @ Thommylee sry habe nicht aufgepasst.


    MFG RFT

    RFT

  • und dann musst halt, wenn du z.B Adminbefehle nur nutzen können willst, wenn du im Aduty bist, immer davor abfragen


    if(Aduty[playerid] == 1)


    und wenn eben Aduty dann == 0 ist, dann geht der Befehl nicht


    /edit: RFT: er wollte es ja nur fpr rcons, da er ja das Adminsysten bzw Login/Register ssystem nicht hinbekommt/hinbekommen hat.

  • Dass geht bei mir nicht richtig?


    Die Fehler:#
    C:\Users\User\Desktop\selfmade.pwn(115) : error 017: undefined symbol "Aduty"
    C:\Users\User\Desktop\selfmade.pwn(115) : warning 215: expression has no effect
    C:\Users\User\Desktop\selfmade.pwn(115) : error 001: expected token: ";", but found "]"
    C:\Users\User\Desktop\selfmade.pwn(115) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\selfmade.pwn(115) : fatal error 107: too many error messages on one line


    Köönt mir bitte jeamnd helfen?

    Mit freundlichen Grüßen,
    Mätz'chen



  • Versuch den Fehler einfach mal ins Deutsche zu übersetzen.
    Oben fehlt dir: new Aduty[MAX_PLAYERS];.


    MFG RFT

    RFT

  • Dieses new hatte ich oben schon.
    Aber wo muss ich dass hinmachen?
    if(Aduty[playerid] == 1)


    Das habe ich oben:
    new Aduty[MAX_PLAYERS];


    Dann unten dass:
    if(strcmp("/aduty",cmdtext,true)== 0)
    {
    if(Aduty[playerid] == 1)
    new string[64],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(IsPlayerAdmin(playerid))
    {
    if(Aduty[playerid] == 0)
    {
    Aduty[playerid] = 1;
    format(string,sizeof(string),"Admin %s ist nun im Dienst",name);
    SendClientMessageToAll(0xFF00FFFF,string);
    }
    else
    {
    format(string,sizeof(string),"Admin %s ist nun außer Dienst",name);
    Aduty[playerid] = 0;
    SendClientMessageToAll(0xFF00FFFF,string);
    }
    }
    return 1;
    }

    Mit freundlichen Grüßen,
    Mätz'chen


  • In jedem CP wo abgefragt werden soll ob er im DIenst ist dabei wirds eh so zu lang daher mach es so.



    if(Aduty[playerid] != 1)return //Nicht im Dienst Text.

    RFT

  • Also ist es so richtig?
    if(strcmp("/aduty",cmdtext,true)== 0)
    {
    if(Aduty[playerid] == 1)
    new string[64],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(IsPlayerAdmin(playerid))
    {
    if(Aduty[playerid] == 0)
    {
    Aduty[playerid] = 1;
    format(string,sizeof(string),"Admin %s ist nun im Dienst",name);
    SendClientMessageToAll(0xFF00FFFF,string);
    }
    else
    {
    format(string,sizeof(string),"Admin %s ist nun außer Dienst",name);
    Aduty[playerid] = 0;
    SendClientMessageToAll(0xFF00FFFF,string);
    }
    }
    return 1;
    }

    Mit freundlichen Grüßen,
    Mätz'chen

  • nein ^^
    bei dem Befehl musst du es nicht abfragen, nur bei alles weiteren.


    bei dem Befehl ist alles da was da sein muss.


    und bei den anderen kommenden Befehlen


    if(!Aduty[playerid] == 1) return SendClientMessage(playerid,FARBE,"Du kannst das nicht!");
    und hier dann einfach den Befehl, was passiet wenn Aduty == 1 ist

  • Woa langsam habe ich kein bock mehr.
    Ich mache alles so wie ihr sagt aber immer die scheiß fehler hier;


    C:\Users\User\Desktop\selfmade.pwn(115) : error 017: undefined symbol "Aduty"
    C:\Users\User\Desktop\selfmade.pwn(115) : warning 215: expression has no effect
    C:\Users\User\Desktop\selfmade.pwn(115) : error 001: expected token: ";", but found "]"
    C:\Users\User\Desktop\selfmade.pwn(115) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\selfmade.pwn(115) : fatal error 107: too many error messages on one line

    Mit freundlichen Grüßen,
    Mätz'chen