[Hilfe] Adminnachricht

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
  • wie mach ich das, das wenn ein admin /n text) macht! das das alle lesen können!



    :_Admin-Nachricht_:
    Admin ....... : (Text)



    so soll das ausschaun


    bitte um hilfe


    mgf
    deathrunner



    //edit sry fürs editieren hatte Fehler im text


    //edit: Ich arbeite mit gAdmin(3ränge also if(gAdmin[playerid] == 1 ||gAdmin[playerid] == 2 ||gAdmin[playerid] == 3); ) und strcmp

    2 Mal editiert, zuletzt von deathrunner ()

  • Hi,


    forward DenyMessage(playerid, level);


    new Lang[MAX_PLAYERS];


    Ganz unten im Script :


    stock DenyMessage ( playerid, level )
    {
    new string[256];
    switch (Lang[playerid])
    {
    format(string, sizeof(string), "Sie müssen admin Level %d sein , um diesen Befehl zu benutzen !", level);
    SendClientMessage(playerid, COLOR_RED, string);
    return 1;
    }
    return 1;
    }




    OnPlayerCommandText :


    if(strcmp(cmd, "/n", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] < 1) return DenyMessage(playerid, 1);
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "Benutze: /n [text]");
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string,sizeof(string),"Admin %s : %s", playername, result);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] >= 1)
    SendClientMessage(i,COLOR_DBLUE,string);
    }
    return 1;
    }


    Ich hoffe , ich konnte dir helfen . 8)


    MfG X-Spider

  • ich arbeite mit strcmp und gadmin(3ränge)

    Einmal editiert, zuletzt von deathrunner ()

  • ja da musste ich sie etwas um schreiben und dann kamen errors


    if(strcmp(strget(cmdtext,0), "/n", true) == 0)
    {
    if(gAdmin[playerid] == 2 || gAdmin[playerid] == 3)
    {
    //befehl
    }
    return 1;
    }


    //edit: ist das eig. nicht wie ein weltchat den nur admins benutzen können(sry fürs editieren)

    2 Mal editiert, zuletzt von deathrunner ()

  • mit strcmp kann ich das nicht ^^.
    Benutz ocmd ist schneller und ressourcenschonender.
    ocmd bekommst bei kleinerOpa's steckbrief.
    Du benötigst auch Sscanf was du hier bekommst SA:MP Wiki Sscanf_Code
    Der Sscanf_Code kommt nach ganz unten in dein Script.


    Code:

    ocmd:t(playerid,params[])
    {
    new name[MAX_PLAYER_NAME],
    Text[128],
    string[128];
    if(gAdmin[playerid] == 3 || gAdmin[playerid] == 3)
    {
    GetPlayerName(playerid,name,sizeof name);
    if(sscanf(params, "s",Text)) { return SendClientMessage(playerid,FARBCODE,"INFO: /t [TEXT]"); }

    format(string,sizeof string,"Admin: %s: %s",name,Text);
    SendClientMessageToAll(FARBCODE,"%s",string);
    }
    else { return SendClientMessage(playerid,FARBCODE,"Dein Admin Level reicht für diesen Befehl nicht aus"); }
    return 1;
    }


    So müsste es gehen.
    Könnten vllt fehler drin sein.
    Ungetestet!

  • Zitat

    mit strcmp kann ich das nicht ^^.
    Benutz ocmd ist schneller und ressourcenschonender.

    Du behauptest das ocmd schneller und ressourcenschonender ist wie strcmp?!


    Oder habe ich das grad falsch verstanden?

  • ich will nicht wissen was einfacher ist ich will nur das kommando haben



    bitte bitte bitte

  • ist das selbe prinzip wie mit /o



    if(strcmp(cmdtext,"/o", true,2)== 0)
    {
    new string[156],name[133];
    GetPlayerName(playerid,name,sizeof name);
    format(string,sizeof string,"[Admin] %s: %s",name,cmdtext[3]);
    {
    SendClientMessageToAll(dunkelgrün,string);
    }
    return 1;
    }


    dann machste ne if abfrage ob er admin ist


    dann unten wenn net kommt text

  • ok das funkt


    aber wie mach ich das das über dem text (:_Admin-Nachricht_:) steht


    //edit fettes thx

  • if(strcmp(cmdtext,"/an", true,2)== 0)
    {
    if(gAdmin[playerid] == 1 || gAdmin[playerid] == 2 || gAdmin[playerid] == 3)
    {
    new string[156],name[133];
    format(string,sizeof string,":_Adminnachricht_:",name,cmdtext[3]);
    SendClientMessageToAll(COLOR_LIGHTBLUE,string);
    GetPlayerName(playerid,name,sizeof name);
    format(string,sizeof string,"[Admin] %s: %s",name,cmdtext[3]);
    SendClientMessageToAll(COLOR_LIGHTBLUE,string);


    }
    return 1;
    }


    so da