/report Command
- Wayne_Waylay
- Geschlossen
- Erledigt
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
-
-
kthx
versuchs mal damit -
ich wette, dass da mindestens 15 errors kommen^^
es bringt nix report-befehle aus anderen scrpts rauszukopieren... wie das mit [playerinfo][padmin], das wird eigentlich keiner so haben^^ ------ genau wie das !strlen(tmp)) und so... -
eben sieht auch nach einen mod. gf aus
-
Hier, das ist aus GF:
Code
Alles anzeigenif(strcmp(cmd, "/report", true) == 0) { if(IsPlayerConnected(playerid)) { 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: /Report [Grund + ID]"); return 1; } format(string, sizeof(string), "Report from %s: %s", sendername, (result)); ABroadCast(COLOR_YELLOW,string,1); SendClientMessage(playerid, COLOR_YELLOW, "Your Report Message was sent to the Admins."); } return 1; }
Bei den Forwards das einfügen:Und dann einfach noch irgendwo (ausserhalb eines anderen Callbacks) das einfügen:
-
Hier, das ist aus GF:
Code
Alles anzeigenif(strcmp(cmd, "/report", true) == 0) { if(IsPlayerConnected(playerid)) { 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: /Report [Grund + ID]"); return 1; } format(string, sizeof(string), "Report from %s: %s", sendername, (result)); ABroadCast(COLOR_YELLOW,string,1); SendClientMessage(playerid, COLOR_YELLOW, "Your Report Message was sent to the Admins."); } return 1; }
Bei den Forwards das einfügen:Und dann einfach noch irgendwo (ausserhalb eines anderen Callbacks) das einfügen:
Bitte eines Das Funktioniert!!!!!!!
-
stock ReturnUser(tmp[])
{
new playerid=INVALID_PLAYER_ID;
if(strlen(tmp)>=1)
{
if(IsNumeric(tmp))
{
if(IsPlayerConnected(strval(tmp)))
playerid=strval(tmp);
}
else
{
if(strlen(tmp)>=3)
{
new count;
for(new i=0;i<MAX_SLOTS;i++)
{
if(IsPlayerConnected(i))
{
if(strfind(PlayerName(i),tmp,true)!=-1)
{
playerid=i;
count++;
}
}
}
if(count>1)
{
playerid=INVALID_PLAYER_ID;
}
}
}
}
return playerid;
}
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
stock PlayerIP(playerid)
{
new ip[16];
GetPlayerIp(playerid,ip,16);
return ip;
}
stock PlayerReportPlayer(playerid,reportid,report[])
{
new h,m,s;
new d,y,month;
getdate(d,y,month);
gettime(h,m,s);
new string[512];
format(string,sizeof(string),"%d.%d.%d | %d:%d:%d | %s(%d,%s) meldet %s(%d,%s) wegen: %s\r\n",d,month,y,h,m,s,
PlayerName(playerid),playerid,PlayerIP(playerid),PlayerName(reportid),reportid,PlayerIP(reportid),report);
new File:log=fopen("Report.log",io_append);
fwrite(log,string);
fclose(log);
SendClientMessage(playerid,0xF60000F6,"Meldung erfolgreich gesendet.");
SendClientMessage(playerid,0xF60000F6,"Falls kein Admin online ist, wird sie später ein Admin lesen.");
format(string,sizeof(string),"[Meldung] %s (%d) meldet %s (%d) wegen: %s",PlayerName(playerid),playerid,PlayerName(reportid),reportid,report);
for(new i=0;i<MAX_PLAYERS;i++)
if(IsPlayerConnected(i))
if(IsPlayerAdmin(i))
SendClientMessage(i,0xF60000F6,string);
return 1;
}Der Command((strtok benötigt):
if(strcmp(cmd,"/melden",true)==0)
{
tmp=strtok(cmdtext,idx);
if(!strlen(tmp))
return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
pid=ReturnUser(tmp);
if(!IsPlayerConnected(pid))
return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
if(strlen(cmdtext[strlen(cmd)+strlen(tmp)+2])<3)
return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
PlayerReportPlayer(playerid,pid,cmdtext[strlen(cmd)+strlen(tmp)+2]);
return 1;
}Sollte funktionieren. Hab ich aus meinem eigenen Script^^
-
error 017: undefined symbol "cmd"
error 017: undefined symbol "tmp"
error 017: undefined symbol "strtok"
error 017: undefined symbol "tmp"
error 017: undefined symbol "pid"
error 017: undefined symbol "tmp"
error 017: undefined symbol "pid"
error 017: undefined symbol "cmd"
error 017: undefined symbol "pid"
error 017: undefined symbol "IsNumeric"
error 017: undefined symbol "MAX_SLOTS"Was soll ich dagegen tun? oO
-
IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
if (string[i] > '9' || string[i] < '0') return 0;
return 1;
}
stock strtok(const string[], &index,seperator=' ')
{
new length = strlen(string);
new offset = index;
new result[64];
while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
if ((index < length) && (string[index] == seperator))
{
index++;
}
return result;
}Ich habe geschrieben, dass noch strtok(...) benötigt wird Die Variablen für strtok(...) usw.:
new cmd[64],idx,tmp[64],pid;
cmd=strtok(cmdtext, idx);
Anstatt MAX_SLOTS MAX_PLAYERS benutzen.
Bisschen denken würd nicht schaden...
-
Du solltes lieber nicht so frech sein...Daskotzt echt an! Du brauchst mir ja nich helfen wenns dir nicht Passt oO! Es kann nicht jeder Scripten wie ein Weltmeister oder so wie du- es gibt auch "frischlinge"
-
-
sehr interessant leute, nur jetzt ne frage von mir kann mir einer helfen, das mit strget zu machen habe das ganze schon fertig, mir fehlt nur noch das bisher genannte "result", könnte mir einer sagen wie ich das einfügen muss? wäre sehr wichtig.
gruß spike
-
-
wir reden jetzt aber beide von STRGET?? oder :D:D
wenn ja könntest du mir sagen wie ich das einfügen müsste?, bitte -
Hmm... ah... ne^^
-
schaade, aber trotzdem danke
-
mein problem hat sich erledigt, trotzdem noch ma danke für eure hilfe
-
Kann mir das villeicht einer als FS schicken oder so?
-
Also ich komme da irgendwie nicht weiter...ich habs jetzt ma eingefügt, aber ich habe 6 Errors:
PHPerror 017: undefined symbol "pid" error 017: undefined symbol "pid" error 017: undefined symbol "pid" error 025: function heading differs from prototype error 021: symbol already defined: "ReturnUser" error 017: undefined symbol "MAX_SLOTS"
Keine Ahnung was ich machen soll, da das Script insgesant etwas größer für meine verhältnisse ist (3000 Zeilen möglichst platzsparend), ist es ziemlich schwer (für mich) das da korrekt einzufügen.
In Verzweiflung FACE
-
Dann werde ich halt ein Filterscript machen (Double-O-Report^^) und es hier und auf forum.sa-mp.com veröffentlichen.
-
Falls diese Art von Doppelpost nicht erlaubt ist, bitte Beiträge zusammenfügen.