The logs system logs important things, When player connect, On RCON Login on RCON command, Or regular command, Disconnects and so on...
It doesn't requires to create a folder in advance, as it creates it when the filterscript loads.
And it uses JaTochNietDan's FileManager plug-in and include. Logs can be cleared simply by Typing:
You can customize to log vehicle and player settings, as it can spam logs and server console (samp-server.exe), as can be seen in line (22) and (23)
Not Yet found, report if you find one.
Code:
Log almost everything in your server!
*/
#include <a_samp>
#include <filemanager>
#define ghillie "scriptfiles/aGhillieSniper"
#define LogFile "scriptfiles/aGhillieSniper/Log.log"
new spawnlog = 0; // <-- Change it to 1 if you want to Log when player Spawns / Deaths --> Can spam severely
new vehiclelog = 0; // <-- Change it to 1 if you want to Log when vehicle Spawns / Destoys --> Can spam severely
public OnFilterScriptInit()
{
print(" [S]S]S]S] ");
print(" ");
print(" **");
print(" **");
print(" **");
print(" **");
print(" **");
print(" ***********");
print(" Logs");
print("____________________________________________________");
print(" ");
print("[aGS-Logs] Checking for folders and files...");
if(!dir_exists(ghillie))
{
printf("[aGS-Logs] Directroy path %s wasn't found, It has been auto-created!", ghillie);
dir_create(ghillie);
}
if(!file_exists(LogFile))
{
printf("[aGS-Logs] File path %s wasn't found, It has been auto-created!", LogFile);
file_create(LogFile);
}
if(file_exists(LogFile) && dir_exists(ghillie))
{
printf("[aGS-Logs] Files verified, server starting...", LogFile);
}
Log("Server succesful started");
return 1;
}
public OnFilterScriptExit()
{
Log("FilterScript unloaded");
return 1;
}
public OnPlayerConnect(playerid)
{
new str[128], name[128];
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "Player %s [id:%d] connected", name, playerid);
Log(str);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new str[128], name[128];
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "Player %s [id:%d] disconnected [R: %d]", name, playerid, reason);
Log(str);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(spawnlog == 1)
{
new str[128], name[128];
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "Player %s [id:%d] spawned", name, playerid);
Log(str);
return 1;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(spawnlog == 1)
{
new str[128], name[128], oname[128];
GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(killerid, oname, sizeof(oname));
format(str, sizeof(str), "Player %s [id:%d] killed %s [id:%d]", oname, killerid, name, playerid);
Log(str);
return 1;
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
if(vehiclelog == 1)
{
new str[128];
format(str, sizeof(str), "Vehicleid %d spawned", vehicleid);
Log(str);
return 1;
}
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
if(vehiclelog == 1)
{
new str[128], name[128];
GetPlayerName(killerid, name, sizeof(name));
format(str, sizeof(str), "Vehicleid %d destroyed by: %s [id:%d]", vehicleid, name, killerid);
Log(str);
return 1;
}
return 1;
}
public OnPlayerText(playerid, text[])
{
new str[128], name[128];
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "[Chat] %s: %s", name, text);
Log(str);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new str[128], name[128];
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "[Command] %s typed %s", name, cmdtext);
Log(str);
if(strcmp("/clearlogs", cmdtext, true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "You're not an admin!");
SendClientMessage(playerid, 0xFFFFFFFF, "Logs cleared!");
ClearLogs();
Log("=> LOGS CLEARED =<");
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
new str[128];
format(str, sizeof(str), "==>> RCON COMMAND | Command: %s", cmd);
Log(str);
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
new str[128];
if(!success)
{
format(str, sizeof(str), "==>> RCON LOGIN | IP: %s | Attempt Password: %s | *FAILED* TO LOGIN <<==", ip, password);
}
if(success)
{
format(str, sizeof(str), "==>> RCON LOGIN | IP: %s | Attempt Password: %s | *SUCCESS* TO LOGIN <<==", ip, password);
}
Log(str);
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
stock Log(string[])
{
new Year, Month, Day, Hour, Minute, line[300];
getdate(Year, Month, Day);
gettime(Hour, Minute);
format(line, sizeof(line), "[%d/%d/%d %d:%d] %s\n\r", Day, Month, Year, Hour, Minute, string);
file_write(LogFile, line);
print(line);
return 1;
}
stock ClearLogs()
{
file_delete(LogFile);
file_create(LogFile);
return 1;
}