I have plugin that writes some info in file and it works fine some while, but after ~1h it crashes
Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Server status"
#define VERSION "1.0"
#define AUTHOR "Hops"
new id, confdir[128], logfile[128], log[64], log2[64], name[32], Players[32];
new playerCount, player, emtline, i, rinda;
new maplog[32], connplalog[16], maxsplalog[16], timeleftlog[16], nextmlog[32], hotlog[64], timelimlog[16];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
get_configsdir( confdir, 127 );
format(logfile, 128, "%s/serverinfo.log", confdir);
set_task(5.0, "info",id,"",0, "b");
set_task(5.0, "CTspeletaji",id,"",0, "b");
set_task(5.0, "Tspeletaji",id,"",0, "b");
set_task(5.0, "CTfragi",id,"",0, "b");
set_task(5.0, "Tfragi",id,"",0, "b");
set_task(5.0, "CTkills",id,"",0, "b");
set_task(5.0, "Tkills",id,"",0, "b");
}
public info() {
new karte[32];
get_mapname(karte, 31);
format(maplog, 31, "%s", karte);
write_file(logfile, maplog, 0);
format(connplalog, 15, "%d", get_playersnum(1));
write_file(logfile, connplalog, 1);
format(maxsplalog, 15, "%d", get_maxplayers());
write_file(logfile, maxsplalog, 2);
new timeleft = get_timeleft();
format(timeleftlog, 15, "%d:%02d", (timeleft / 60), (timeleft % 60));
write_file(logfile, timeleftlog, 3);
new nextm[32];
get_cvar_string("amx_nextmap",nextm,31)
format(nextmlog, 31, "%s", nextm);
write_file(logfile, nextmlog, 4);
new hostname[64];
get_cvar_string("hostname",hostname,63)
format(hotlog, 63, "%s", hostname);
write_file(logfile, hotlog, 5);
new timelim[16];
get_cvar_string("mp_timelimit",timelim,15)
format(timelimlog, 15, "%s", timelim);
write_file(logfile, timelimlog, 6);
}
public CTspeletaji() {
new CTsprnd = 7;
get_players(Players, playerCount, "e", "CT")
for (i=0; i<playerCount; i++) {
player = Players[i];
get_user_name(player, name, 31);
if(is_user_alive(player)) {
format(log, 63, "%s", name);
write_file(logfile, log, CTsprnd);
CTsprnd++;
}
else {
format(log, 63, "gxPtrw%s", name);
write_file(logfile, log, CTsprnd);
CTsprnd++;
}
}
if(i==0) {
emtline = 6;
}
else {
emtline = 6 + playerCount;
}
while(++emtline<17) {
format(log2, 63, "");
write_file(logfile, log2, emtline);
}
}
public Tspeletaji() {
new Tsprnd = 17;
get_players(Players, playerCount, "e", "TERRORIST")
for (i=0; i<playerCount; i++) {
player = Players[i];
get_user_name(player, name, 31);
if(is_user_alive(player)) {
format(log, 63, "%s", name);
write_file(logfile, log, Tsprnd);
Tsprnd++;
}
else {
format(log, 63, "gxPtrw%s", name);
write_file(logfile, log, Tsprnd);
Tsprnd++;
}
}
if(i==0) {
emtline = 16;
}
else {
emtline = 16 + playerCount;
}
while(++emtline<27) {
format(log2, 63, "");
write_file(logfile, log2, emtline);
}
}
public CTfragi() {
rinda = 27;
get_players(Players, playerCount, "e", "CT")
for (i=0; i<playerCount; i++) {
player = Players[i];
format(log, 63, "%d", get_user_frags(player));
write_file(logfile, log, rinda);
rinda++;
}
if(i==0) {
emtline = 26;
}
else {
emtline = 26 + playerCount;
}
while(++emtline<37) {
write_file(logfile, "", emtline);
}
}
public Tfragi() {
rinda = 37;
get_players(Players, playerCount, "e", "TERRORIST")
for (i=0; i<playerCount; i++) {
player = Players[i];
format(log, 63, "%d", get_user_frags(player));
write_file(logfile, log, rinda);
rinda++;
}
if(i==0) {
emtline = 36;
}
else {
emtline = 36 + playerCount;
}
while(++emtline<47) {
write_file(logfile, "", emtline);
}
}
public CTkills() {
rinda = 47;
get_players(Players, playerCount, "e", "CT")
for (i=0; i<playerCount; i++) {
player = Players[i];
format(log, 63, "%d", get_user_deaths(player));
write_file(logfile, log, rinda);
rinda++;
}
if(i==0) {
emtline = 46;
}
else {
emtline = 46 + playerCount;
}
while(++emtline<57) {
write_file(logfile, "", emtline);
}
}
public Tkills() {
rinda = 57;
get_players(Players, playerCount, "e", "TERRORIST")
for (i=0; i<playerCount; i++) {
player = Players[i];
format(log, 63, "%d", get_user_deaths(player));
write_file(logfile, log, rinda);
rinda++;
}
if(i==0) {
emtline = 56;
}
else {
emtline = 56 + playerCount;
}
while(++emtline<67) {
write_file(logfile, "", emtline);
}
}
I can't figure it out why it works for 1h and then crashes, meybe its dumping RAM?
p.s. sorry for my eanglish