rendered paste bodypublic WriteStats(playerid)
{
new die = gPlayerStats[playerid][1], kill = gPlayerStats[playerid][0];
new File:statsfile = fopen("stats.txt", io_append);
new name[24], string[256], buffer[256];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s %d %d\n\r",name, kill, die);
if(!statsfile) {
fcreate("stats.txt");
}
while(fread(statsfile, buffer)) {
if(strcmp(buffer, name, true, strlen(name)) == 0) {
fdeleteline("stats.txt", buffer);
fwrite(statsfile, string);
}
else if(strcmp(buffer, name, true, strlen(name))!= 0) {
fwrite(statsfile, string);
}
}
fclose(statsfile);
}
public ReadStats(playerid)
{
new File:statsfile = fopen("stats.txt", io_read);
new name[24], buffer[256];
new strkill[24], strdie[24], kill, die;
GetPlayerName(playerid, name, sizeof(name));
while(fread(statsfile, buffer)) {
if(strcmp(buffer, name, true, strlen(name)) == 0) {
new idx = 0;
strkill = strtok(buffer,idx);
strdie = strtok(buffer,idx);
kill = strval(strkill);
kill = strval(strdie);
}
else {
kill = 0;
die = 0;
}
}
fclose(statsfile);
gPlayerStats[playerid][1] = die;
gPlayerStats[playerid][0] = kill;
return 1;
}
public fcreate(filename[])
{
if (fexist(filename)){ return false; }
new File:fhandle = fopen(filename,io_write);
fclose(fhandle);
return true;
}
public fdeleteline(filename[], line[])
{
if(fexist(filename)) {
new temp[256];
new File:fhandle = fopen(filename,io_read);
fread(fhandle,temp,sizeof(temp),false);
if(strfind(temp,line,true)==-1){ return 0; }
else{
fclose(fhandle);
fremove(filename);
for(new i=0;i<strlen(temp);i++) {
new templine[256];
strmid(templine,temp,i,i+strlen(line));
if(strcmp(templine,line, true) == 0){
strdel(temp,i,i+strlen(line));
fcreate(filename);
fhandle = fopen(filename,io_write);
fwrite(fhandle,temp);
fclose(fhandle);
return 1;
}
}
}
}
return 0;
}