Wie erstelle ich eine Admin Nachricht?

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
  • Hey Leute!
    Ich möchte mal gerne fragen wie ich eine Admin nachricht erstelle?


    Also ich meine das wenn ich z.b. einem Support ticket antworten möchte das ich das mit /sup "NACHRICHT" machen kann, das dann eine nachricht erzeugt wird.?
    Beispiel: [ADMIN]T0rbenn sagt: "NACHRICHT"


    Ich bedanke mich schon mal. :)


    Beiträge erreicht:[x] 50 Beiträge
    [x] 100 Beiträge
    [x] 150 Beiträge
    [x] 200 Beiträge
    [x] 250 Beiträge
    [x] 300 Beiträge

    Einmal editiert, zuletzt von t0rbenn ()

  • naja das ist soweit nicht einfach so mit einer admin nachricht zu machen. du musst dir schon ein ganzes report system bauen.
    ansonsten ´kannst du einfach eine abfrage machen, ob der jenige adnin ist und das nur er den befehl /sup schreiben kann.

  • ja dann schau mal hier him forum nach. am besten im showroom. dort hat meine ich mal einer ein fliterscript erstellt. genau das was du brauchst. dann kannste dir anschauenw ie es gemacht wird. dir das jetzt zu erklären würde zu lange dauern.

  • ...




    ocmd:supp(playerid,params[])
    {
    new pID,text[256], string[256];
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(sscanf(params,"us",pID,text)) return SendClientMessage(playerid,weiß,"/supp [ID] [Nachricht]");
    format(string,sizeof(string),"[Admin] %s sagt: %s",Name(playerid),text);
    SendClientMessage(pID,orange,string);
    SendClientMessage(playerid,orange,string);
    }
    return 1;
    }


    Sollte eig. das sein was du willst

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ok habe nun bisschen dran rum experimentiert.. Habe vorerst eine Rcon abfrage gemacht das ist aber nicht schlimm ^^


    Nun bekomme ich diese Fehler..


    C:\Users\Administrator\Desktop\Server Data\Samp server\gamemodes\neu.pwn(318) : error 017: undefined symbol "sscanf"
    C:\Users\Administrator\Desktop\Server Data\Samp server\gamemodes\neu.pwn(319) : error 017: undefined symbol "Name"


    Was müsste ich machen ?


    LG t0rbenn


    Beiträge erreicht:[x] 50 Beiträge
    [x] 100 Beiträge
    [x] 150 Beiträge
    [x] 200 Beiträge
    [x] 250 Beiträge
    [x] 300 Beiträge

  • Hier die Funktion Name()
    Die kommt ca. ans Ende vom Script.


    stock Name(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }



    Und hier die SSCANF Funktion



    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }