Ich scripte sein 15 min ein Logsystem für jedermann.
Name: FusionLog
Was kann es soweit?
Es speichert CMDs, TXT, RCONCMS, CON, DIS ab. Hier speichert aber das System jeweils die Daten in die jeweilige Tagesdatei ab.
Pro Tag gibt es also eine Datei.
Was benötigt ihr für Commands?
Ich habe mir überlegt, dass es auch nicht blöd wäre online ein Log durchsuchen zu können.
Jetzt meine Frage, was für Durchsuchungscmds benötigt ihr?
Oder soll das Ding wegwerfen, weil es eh nur rumgespiele ist xDD
Hier mal der Code bis jetzt:
//FUSIONLOG BY MINIYODA
//Nutzung ist erlaubt.
//Credits sind beizubehalten. Das Script bleibt und ist geistiges Eigentum von MiniYoda.
//Bei Widerhandlung sind rechtliche Schritte zu erwarten
#include <a_samp>
//______________________________________________________________________________
#define DIALOGS 1337
//______________________________________________________________________________
new configdaten[2];
//______________________________________________________________________________
forward loadconfig();
forward saveconfig();
forward writelog(string[]);
forward SaveCreatedLog(logname[]);
//______________________________________________________________________________
stock getlogname(day,month,year)
{
new returnstring[128];
format(returnstring, sizeof(returnstring), "/FusionLogs/log.%d.%d.%d.fusion.save",year,month,day);
return returnstring;
}
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}
stock ShowPlayerDiaConfig(playerid)
{
ShowPlayerDialog(playerid, DIALOGS+1, DIALOG_STYLE_LIST, "Fusionlog: Menu", "Log: activate\nLog: deactivate", "Bestätigen", "Beenden");
return 1;
}
stock ShowPlayerLogMenu(playerid)
{
ShowPlayerDialog(playerid, DIALOGS, DIALOG_STYLE_LIST, "Fusionlog: Menu", "Config", "Bestätigen", "Beenden");
return 1;
}
//______________________________________________________________________________
public loadconfig()
{
if (fexist("config.log.fusion.save"))
{
new File: datei = fopen("config.log.fusion.save", io_read);
new dateistring[256];
fread(datei, dateistring);
configdaten[0] = strval(dateistring);
return 1;
}
return 0;
}
public saveconfig()
{
new File:speichern = fopen("config.log.fusion.save", io_write);
new speicherstring[256];
format(speicherstring,sizeof(speicherstring),"%d",configdaten[0]);
fwrite(speichern, speicherstring);
fclose(speichern);
return 1;
}
public writelog(string[])
{
if (configdaten[0] == 1)
{
if (strlen(string) == 0) return 0;
new datum[3];
new File:savefile;
new savestring[256];
getdate(datum[2],datum[1],datum[0]);
format(savestring, sizeof(savestring),"%s\n",string);
if (fexist(getlogname(datum[0],datum[1],datum[2])))
{
savefile = fopen(getlogname(datum[0],datum[1],datum[2]), io_append);
fwrite(savefile, savestring);
fclose(savefile);
} else {
savefile = fopen(getlogname(datum[0],datum[1],datum[2]), io_write);
fwrite(savefile, savestring);
fclose(savefile);
new savecrstring[128];
format(savecrstring,sizeof(savecrstring),"%d.%d.%d",datum[2],datum[1],datum[0]);
SaveCreatedLog(savecrstring);
}
}
return 1;
}
public SaveCreatedLog(logname[])
{
new File:savefile;
new savestring[256];
format(savestring, sizeof(savestring),"%s\n",logname);
if (fexist("loglist.log.fusion.save"))
{
savefile = fopen("loglist.log.fusion.save", io_append);
fwrite(savefile, savestring);
fclose(savefile);
} else {
savefile = fopen("loglist.log.fusion.save", io_write);
fwrite(savefile, savestring);
fclose(savefile);
}
}
public OnFilterScriptInit()
{
print(" FUSIONLOG ONLINE!");
loadconfig();
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
new connectstring[256];
new playerip[32];
GetPlayerIp(playerid,playerip,sizeof(playerip));
new time[3];
gettime(time[0],time[1],time[2]);
format(connectstring,sizeof(connectstring),"%d:%d:%d|CON|%s|IP: %s",time[0],time[1],time[2],PlayerName(playerid),playerip);
writelog(connectstring);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new disconnectstring[256];
new playerip[32];
GetPlayerIp(playerid,playerip,sizeof(playerip));
new time[3];
gettime(time[0],time[1],time[2]);
format(disconnectstring,sizeof(disconnectstring),"%d:%d:%d|DIS|%s|IP: %s|%d",time[0],time[1],time[2],PlayerName(playerid),playerip,reason);
writelog(disconnectstring);
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
new deathstring[256];
new time[3];
gettime(time[0],time[1],time[2]);
format(deathstring,sizeof(deathstring),"%d:%d:%d|RIP|%s|Reason: %d|Killer: %s",time[0],time[1],time[2],PlayerName(playerid),reason,PlayerName(killerid));
writelog(deathstring);
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
new deathstring[256];
new time[3];
gettime(time[0],time[1],time[2]);
format(deathstring,sizeof(deathstring),"%d:%d:%d|TXT|%s|%s",time[0],time[1],time[2],PlayerName(playerid),text);
writelog(deathstring);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new deathstring[256];
new time[3];
gettime(time[0],time[1],time[2]);
format(deathstring,sizeof(deathstring),"%d:%d:%d|CMD|%s|%s",time[0],time[1],time[2],PlayerName(playerid),cmdtext);
writelog(deathstring);
if (!strcmp("/logmenu",cmdtext,true))
{
if (!IsPlayerAdmin(playerid)) return 1;
ShowPlayerLogMenu(playerid);
return 1;
}
return 0;
}
public OnRconCommand(cmd[])
{
new deathstring[256];
new time[3];
gettime(time[0],time[1],time[2]);
format(deathstring,sizeof(deathstring),"%d:%d:%d|RCN|%s",time[0],time[1],time[2],cmd);
writelog(deathstring);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == DIALOGS && response)
{
ShowPlayerDiaConfig(playerid);
}
if (dialogid == (DIALOGS+1))
{
if (response)
{
if (listitem == 0) configdaten[0] = 1;
if (listitem == 1) configdaten[0] = 0;
saveconfig();
}
}
return 1;
}
Kann das bitte in ShowRoom verschoben werden. Danke!