Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* SA-MP Include Easy Saving
- *
- * (c) by Kaliber, 2014
- *
- */
- #if !defined _samp_included
- #include <a_samp>
- #endif
- #if defined _EasySystem
- #endinput
- #endif
- #define _EasySystem
- #define INVALID -1
- #if !defined PATH
- #define PATH "%s.txt"
- #endif
- static const e_r[16] = "-1";
- stock Save(playerid,size,{Float,_}:...) {
- if(numargs() != 3) return INVALID;
- static tmp[64],File:f,data;
- GetPlayerName(playerid,tmp,MAX_PLAYER_NAME),format(tmp,sizeof tmp,PATH,tmp);
- f=fopen(tmp,io_write);
- for(new i; i<size+1; i++) {
- data = getarg(2,i);
- format(tmp,sizeof tmp,((GetVarType(data) != 1) ? ("%d|") : ("%.04f|")),data),fwrite(f,tmp);
- }
- return fclose(f);
- }
- stock Edit(const path[],idx,value) {
- if(!fexist(path) || idx <= 0) return INVALID;
- new File:f = fopen(path,io_read),tmp[16],buffer[512],pos,pos2;
- fread(f,buffer),fclose(f);
- for(new i; i<idx; i++) {
- if(!i) strmid(tmp,buffer,0,strfind(buffer,"|",false,pos),32),pos=strfind(buffer,"|",false,pos)+1;
- else pos2=pos,strmid(tmp,buffer,pos,strfind(buffer,"|",false,pos+1),32),pos=strfind(buffer,"|",false,pos)+1;
- }
- if(!tmp[0]) return INVALID;
- valstr(tmp,value);
- if(idx==1) strdel(buffer,-1,pos);
- else strdel(buffer,strfind(buffer,"|",false,pos2)-1,pos-1);
- strins(buffer,tmp,pos2);
- return f=fopen(path,io_write),fwrite(f,buffer),fclose(f);
- }
- stock Get(const path[],idx) {
- if(!fexist(path) || idx <= 0) return e_r;
- new File:f = fopen(path,io_read),tmp[16],buffer[512],pos;
- fread(f,buffer),fclose(f);
- for(new i; i<idx; i++) {
- if(!i) strmid(tmp,buffer,0,strfind(buffer,"|",false,pos),32),pos=strfind(buffer,"|",false,pos)+1;
- else strmid(tmp,buffer,pos,strfind(buffer,"|",false,pos+1),32),pos=strfind(buffer,"|",false,pos)+1;
- }
- return (!tmp[0]) ? e_r : tmp;
- }
- stock Load(playerid,size,{Float,_}:...) {
- if(numargs() != 3) return INVALID;
- static tmp[64],File:f,buffer[512],pos,tmp2[16];
- GetPlayerName(playerid,tmp,MAX_PLAYER_NAME),format(tmp,sizeof tmp,PATH,tmp);
- f=fopen(tmp,io_read);
- if(!f) return INVALID;
- fread(f,buffer);
- for(new i; i<size+1; i++) {
- if(!i) strmid(tmp,buffer,0,strfind(buffer,"|",false,pos),32),pos=strfind(buffer,"|",false,pos)+1;
- else strmid(tmp,buffer,pos,strfind(buffer,"|",false,pos+1),32),pos=strfind(buffer,"|",false,pos)+1;
- if(!tmp[0]) break;
- format(tmp2,sizeof tmp2,"%.02f",floatstr(tmp));
- setarg(2,i,(strfind(tmp2,".00") != -1) ? (strval(tmp)) : (_:floatstr(tmp)));
- }
- return fclose(f);
- }
- stock GetVarType({Float,_}:...) {
- if(numargs() != 1) return INVALID;
- static buffer[16],tmp[16];
- format(tmp,sizeof tmp,"%.02f",getarg(0,0));
- if(strcmp(tmp,"0.00") != 0 && strfind(tmp,".") != -1) return 1;
- for(new i; i<sizeof buffer; i++) buffer[i] = getarg(0,i);
- return (strlen(buffer) >= 2) ? 0 : 2;
- }
- #undef INVALID
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement