[Suche] Suche einen Selfmadechat

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 suche einen selfmadechat ich habe schon lange gesucht aber das war erfolglos.
    Ich hätte es mir so vorgestellt das ein admin mit einen Befehl dies wäre jetzt (/o [text]) das es alle spieler lesen können.


    mfg
    simplefire

  • if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht eingeloggt!");
    return 1;
    }
    if ((noooc) && PlayerInfo[playerid][pAdmin] < 1)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Der OOC Channel wurde von einem Admin deaktiviert!");
    return 1;
    }
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Du kannst nicht schreiben, weil du stummgeschaltet bist!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    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))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: (/o)oc [text]");
    return 1;
    }
    format(string, sizeof(string), "(( %s: %s ))", sendername, result);
    OOCOff(COLOR_OOC,string);
    printf("%s", string);
    }
    return 1;
    }
    if(strcmp(cmd, "/noooc", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pAdmin] >= 3 && (!noooc))
    {
    noooc = 1;
    SendClientMessage(playerid, COLOR_YELLOW, "Der OOC Channel wurde von einem Admin deaktiviert!");
    }
    else if (PlayerInfo[playerid][pAdmin] >= 3 && (noooc))
    {
    noooc = 0;
    BroadCast(COLOR_YELLOW, "Der OOC Channel wurde von einem Admin aktiviert!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt diesen Befehl zu benutzen!");
    }
    }
    return 1;
    }

  • Sorry vielleicht habe ich mich falsch ausgedrückt aber ich meine das nur admins /o [text] befehl nutzen können und das es dann halt alle spieler lesen können was der admin da geschrieben hat .So zum beispiel /o Bitte kein dm am noobspawn so was meine ich :D Vielen Dank

  • Ja bau halt die /oooc Funktioniert und /noooc Funktion nicht ein, fertig :)


    if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht eingeloggt!");
    return 1;
    }
    if ((noooc) && PlayerInfo[playerid][pAdmin] < 1)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Der OOC Channel wurde von einem Admin deaktiviert!");
    return 1;
    }
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Du kannst nicht schreiben, weil du stummgeschaltet bist!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    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))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: (/o)oc [text]");
    return 1;
    }
    format(string, sizeof(string), "(( %s: %s ))", sendername, result);
    OOCOff(COLOR_OOC,string);
    printf("%s", string);
    }
    return 1;
    }

  • OCMD mit SSCANF - Natürlich noch Variablen anpassen



    ocmd:o(playerid,params[])
    {
    if(Spieler[playerid][Admin] < 1)return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Admin");
    new text[128], string[128],name[MAX_PLAYERS];
    GetPlayerName(playerid,name,sizeof(name));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_GREY,"Fehler: /o [Text]");
    format(string,sizeof(string),"Admin %s: %s",name,text);
    SendClientMessageToAll(COLOR_WHITE,string);
    return 1;
    }


    Sollte so klappen. :)


    Natürlich brauchst du die ocmd.inc, den sscanf code und du musst deine Variablen einsetzen.


    Viel Spaß. :)

  • Vielen Dank ich habe bisle rumgespielt :D danke sehr :D


    so sieht es bei mir aus
    ocmd:o(playerid,params[])
    {
    if(isPlayerAnAdmin(playerid,2))
    {
    new text[128], string[128],name[MAX_PLAYERS];
    GetPlayerName(playerid,name,sizeof(name));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,WEIß,"Fehler: /o [Text]");
    format(string,sizeof(string),"Admin %s: %s",name,text);
    SendClientMessageToAll(WEIß,string);
    return 1;
    }
    }