Support Chat

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
  • Ja und zwar würde ich gern einen Befehl für
    Supporter haben das sie


    /schat [ID] machen und dann diese personen einen Live Chat
    führen bis er /schataus eingibt.


    Wäre ganz nett

  • Ja wenn du es so nennst ^^ halt nur der Chat kein Report unso




    /edit mit Report

  • suchst du sowas wie das was [German-Midnight] < hat ?


    wenn ja wurde doch sowas im tutorials veröffentlicht..


    MfG

  • Stimmt DomE, hier ist es zu finden: Report Chat.


    Dabei hätte ich aber mal die Frage wo man es genau reintun muss..klar im GameMode aber wo genau?



    public OnPlayerText(playerid, text[]){
    new string[512], string2[512], string3[512], string4[512], string5[512];
    format(string2,sizeof(string2),"Spieler %s: %s",derspieler,text);
    format(string,sizeof(string),"Administrator %s: %s",deradmin,text);
    format(string4,sizeof(string4),"[ReportChat] Administrator %s: %s",deradmin,text);
    format(string5,sizeof(string5),"[ReportChat] Spieler %s: %s",derspieler,text);
    format(string3,sizeof(string3),"Du: %s",text);
    if(GetPVarInt(playerid,"reportchat")==1)
    {
    if(IsPlayerAdmin(playerid))
    {
    SendClientMessage(derspielerid,0xA000FFFF,string);
    SendClientMessage(playerid,0xA000FFFF,string3);
    print(string4);
    return 0;
    }
    else if(!IsPlayerAdmin(playerid))
    {
    SendClientMessage(deradminid,0xA000FFFF,string2);
    SendClientMessage(playerid,0xA000FFFF,string3);
    print(string5);
    return 0;
    }
    }
    return 1; }




    Dann hier


    ocmd:sc(playerid,params[])//Startet den Chat...{
    if(GetPVarInt(playerid,"reportchat")==1)return SendClientMessage(playerid,0xA0A0A0FF,"Du hast bereits einen Chat offen, beende ihn zuerst mit '/ssc'!");
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,0xA0A0A0FF,"Du bist kein Admin!");
    new player, admin[MAX_PLAYER_NAME], user[MAX_PLAYER_NAME];
    new chatu[256], chata[256];
    if(sscanf(params,"u",player))return SendClientMessage(playerid, 0xFF0000AA, "Benutze: /sc [Name/ID]");
    if(!IsPlayerConnected(player))return SendClientMessage(playerid,0xA0A0A0FF,"Dieser Spieler ist nicht online!");
    GetPlayerName(playerid,admin,sizeof(admin));
    GetPlayerName(player,user,sizeof(user));
    format(chatu,sizeof(chatu),"Administrator %s hat den Report-Chat gestartet!",admin);
    format(chata,sizeof(chata),"Du hast mit Spieler %s den Report Chat gestartet!",user);
    SendClientMessage(player,0xA000FFFF,chatu);
    SendClientMessage(playerid,0xA000FFFF,chata);
    SetPVarInt(playerid,"reportchat",1);
    SetPVarInt(player,"reportchat",1);
    deradmin = admin;
    derspieler = user;
    deradminid = playerid;
    derspielerid = player;
    return 1;
    }


    ocmd:ssc(playerid,params[])//Beendet den Chat..
    {
    if(GetPVarInt(playerid,"reportchat")!=1)return SendClientMessage(playerid,0xA0A0A0FF,"Du hast keinen Chat offen!");
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,0xA0A0A0FF,"Du bist kein Admin!");
    new chatu[256], chata[256];
    format(chatu,sizeof(chatu),"Administrator %s hat den Report-Chat beendet!",deradmin);
    format(chata,sizeof(chata),"Du hast mit Spieler %s den Report Chat beendet!",derspieler);
    SendClientMessage(derspielerid,0xA000FFFF,chatu);
    SendClientMessage(playerid,0xA000FFFF,chata);
    SetPVarInt(playerid,"reportchat",0);
    SetPVarInt(derspielerid,"reportchat",0);
    return 1; }



    Sscanf Code, einfach ganz unten ins Script einfügen..:


    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; }



    Und hier noch Include


    [Include] OCMD