Guten Tag,
kann mir vllt einer ein Report Chat scripten?
Hab auch inner Sufu geschaut , alles negativ.
Das sollte am besten ab Admin Level 1 sein!
Da sollte so sein:
Ein Admin kann "/sc" [ID] und dann starten man mit einem Spieler den Report Chat.
Mit "/sc" kann man den wieder wegmachen.
Wenn der Admin den Report Chat startet sollte beim Spieler stehen:
Supporter **** hat den Report Chat gestartet!
Bei dem Admin:
Du hast mit Blümchen den Report Chat gestartet..
PS: Die Chat Farbe sollte auch so Lila sein
Währe nett.
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
-
-
Mach ich eben, ich edtier den Beitrag dann.
Ich müsste noch Wissen wie deine Admin Abfrage aussieht.PlayerInfo[playerid][pAdmin] ?Poste es mal kurz.Da ich keine Antwort bekommen hab, hab ich es mit ner RCON Abfrage gemacht, hier bitte:
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;
}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;
}Hab ich doch gern gemacht
Ach und falls du das ocmd Include noch nicht hast, hier bitte:
-
Ich hab einfach alles unten im Script reingepackt, aber Ingame tut sich nichts...
Oder wo muss ich die 1 & das 2 reinpacken .. ?? -
Am besten ganz unten, als letztes, die "new's" einfach oben hin, dort wo auch die anderen "news's" stehen.
-
Hast du irgendwie Skype oder Icq?
Ich heiße auf Skype: jacoub187Du kennst dich ja gut aus
-
Solch eine Funktion wurde einmal im DDG-Script vom Allbekannten HEiTZER
veröffentlicht, das warsch. nie wieder Realeased wird.
Im Ravens Roleplay gibt es auch solch eine Funktion, einfach mal nach-
schauen. -
Solch eine Funktion wurde einmal im DDG-Script vom Allbekannten HEiTZER
veröffentlicht, das warsch. nie wieder Realeased wird.
Im Ravens Roleplay gibt es auch solch eine Funktion, einfach mal nach-
schauen.Danke , aber der nette "n0skillg3t" hat mir eins erstellt.
-
breadfish.de
Hat das Thema geschlossen.