All pastes #391175 Raw Edit

Stuff

public text v1 · immutable
·published 2007-03-11 22:57 UTC
rendered paste body
public 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;
}