/a [Text]

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 Brotfischer


    Habe eine Frage.
    Wie macht man das, das wenn man "/a hallo ich bin der und der" das es auch ankommt?
    der jetzige Befehl sendet dann nur hallo


    Würde mir das vielleicht jemand erklären? wäre echt nett


    if(strcmp(cmd, "/admin", true) == 0 || strcmp(cmd, "/a", true) == 0)
    {
    if(!strlen(strget(cmdtext, 1)))
    {
    SendClientMessage(playerid, COLOR_GRAD2, " SERVER: /a [Text]");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new string[128];
    tmp = strget(cmdtext,1);
    if(Spieler[playerid][pAdmin] == 0)
    {
    format(string, sizeof string, "User %s: %s",sendername, tmp);
    SendAdminMessage(COLOR_RED, string, 1);
    SendClientMessage(playerid, COLOR_BLUE, " Deine Admin Nachricht wurde an die Admins weitergeleitet. Achtung nur für Notfälle!");
    AdminChatLog(string);
    return 1;
    }
    else
    {
    format(string, sizeof string, "Admin %s: %s",sendername, tmp);
    SendAdminMessage(COLOR_BLUE, string, 1);
    AdminChatLog(string);
    return 1;
    }
    }

    ik bin der vito c:

  • Das liegt daran, dass SAMP hinter jedem Leerzeichen einen neuen Wert erkennt und alles hinter dem Hallo als eigene Zeichenkette ansieht. Probiers mal mit bigstrtok.
    if(strcmp(cmd, "/admin", true) == 0 || strcmp(cmd, "/a", true) == 0)
    {
    if(!strlen(strget(cmdtext, 1)))
    {
    SendClientMessage(playerid, COLOR_GRAD2, " SERVER: /a [Text]");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new string[128];
    tmp = bigstrtok(cmdtext,idx);
    if(Spieler[playerid][pAdmin] == 0)
    {
    format(string, sizeof string, "User %s: %s",sendername, tmp);
    SendAdminMessage(COLOR_RED, string, 1);
    SendClientMessage(playerid, COLOR_BLUE, " Deine Admin Nachricht wurde an die Admins weitergeleitet. Achtung nur für Notfälle!");
    AdminChatLog(string);
    return 1;
    }
    else
    {
    format(string, sizeof string, "Admin %s: %s",sendername, tmp);
    SendAdminMessage(COLOR_BLUE, string, 1);
    AdminChatLog(string);
    return 1;
    }
    }


    // Am Ende vom Script
    stock bigstrtok(const string[], &idx)
    {
    new length = strlen(string);
    while ((idx < length) && (string[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = string[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    return result;
    }

  • Hmm


    habs nu so


    if(strcmp(cmd, "/admin", true) == 0 || strcmp(cmd, "/a", true) == 0)
    {
    if(!strlen(strget(cmdtext, 1)))
    {
    SendClientMessage(playerid, COLOR_GRAD2, " SERVER: /a [Text]");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new string[128];
    tmp = bigstrtok(cmdtext,idx);
    if(Spieler[playerid][pAdmin] == 0)
    {
    format(string, sizeof string, "User %s: %s",sendername, tmp);
    SendAdminMessage(COLOR_RED, string, 1);
    SendClientMessage(playerid, COLOR_BLUE, " Deine Admin Nachricht wurde an die Admins weitergeleitet. Achtung nur für Notfälle!");
    AdminChatLog(string);
    return 1;
    }
    else
    {
    format(string, sizeof string, "Admin %s: %s",sendername, tmp);
    SendAdminMessage(COLOR_BLUE, string, 1);
    AdminChatLog(string);
    return 1;
    }
    }


    Na dann kahm undifined Symbol idx usw


    dann hab ich oben einfach new idx; gemacht aber jetzt bin ich genauso weit wie vorher.. :evil:

    ik bin der vito c:

  • K, versuch das mal so in dein Cript zu integrieren.
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[256];
    new idx;
    new tmp[256];


    cmd = strtok(cmdtext, idx);
    //...
    if(strcmp(cmd, "/admin", true) == 0) || strcmp(cmd, "/a", true) == 0)
    {
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, " SERVER: /a [Text]");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new string[128];
    new reason[128];
    reason = bigstrtok(cmdtext,idx);
    if(Spieler[playerid][pAdmin] == 0)
    {
    format(string, sizeof string, "User %s: %s",sendername, reason);
    SendAdminMessage(COLOR_RED, string, 1);
    SendClientMessage(playerid, COLOR_BLUE, " Deine Admin Nachricht wurde an die Admins weitergeleitet. Achtung nur für Notfälle!");
    AdminChatLog(string);
    return 1;
    }
    else
    {
    format(string, sizeof string, "Admin %s: %s",sendername, reason);
    SendAdminMessage(COLOR_BLUE, string, 1);
    AdminChatLog(string);
    return 1;
    }
    }
    //...
    }