Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*----------------------------------------------------------------------------*\
- =======================================
- PVars Extras Funcoes
- =======================================
- Versao 1.1
- Descricao:
- Adiciona novas e uteis funcoes para PVars
- Creditos:
- Dayvison - Criacao da include.
- SA:MP Team - Tutoriais, existir *-*
- Funcoes:
- PVarExiste(playerid,varnome[]) -- Verifica se uma variavel existe
- bool:GetPVarBool(playerid,varnome[]) -- Obtem o valor de uma PVar booleana
- SetPVarBool(playerid, varnome[], bool:valor) -- Seta uma PVar booleana
- SalvarPVars(playerid, arquivo[]) -- Salva todas as PVars de um Player
- CarregarPVars(playerid, arquivo[]) -- Carrega todas as PVars de um Player
- DestruirPVars(playerid) -- Destroi todas as PVars de um Player
- bool:BoolStr(str[]) -- Retorna em booleano o valor de uma string
- Hooks:
- GetPVarType(playerid, varnome[])
- \*----------------------------------------------------------------------------*/
- #define Func::%0(%1) stock %0(%1)
- #define PLAYER_VARTYPE_BOOL 4
- stock PVarExiste(playerid,varnome[])
- {
- new PVAR[70];
- for(new pvar; pvar <= GetPVarsUpperIndex(playerid); pvar++)
- {
- GetPVarNameAtIndex(playerid,pvar,PVAR,70);
- if(!strcmp(PVAR,varnome) && PVAR[0])
- {
- return true;
- }
- else
- {
- continue;
- }
- }
- return false;
- }
- stock bool:BoolStr(str[])
- {
- return (strval(str) || str[0] && !strcmp(str,"true",true));
- }
- Func:: INC_GetPVarType(playerid, varnome[])
- {
- switch(GetPVarType(playerid, varnome))
- {
- case PLAYER_VARTYPE_NONE: return 0;
- case PLAYER_VARTYPE_INT: return 1;
- case PLAYER_VARTYPE_STRING:
- {
- new str[150];
- GetPVarString(playerid,varnome,str,150);
- if(!strcmp(str,"true") || !strcmp(str,"false")) return 4;
- else return 2;
- }
- case PLAYER_VARTYPE_FLOAT: return 3;
- }
- return 0;
- }
- #if defined _ALS_GetPVarType
- #undef GetPVarType
- #else
- #define _ALS_GetPVarType
- #endif
- #define GetPVarType INC_GetPVarType
- Func:: bool:GetPVarBool(playerid,varnome[])
- {
- new str[10];
- GetPVarString(playerid,varnome,str,10);
- if(BoolStr(str)) return true;
- else return false;
- }
- Func:: SetPVarBool(playerid,varnome[],bool:valor)
- {
- SetPVarString(playerid,varnome,valor ? ("true") : ("false"));
- return true;
- }
- Func:: DestruirPVars(playerid)
- {
- new varnome[70];
- for(new pvar; pvar <= GetPVarsUpperIndex(playerid); pvar++)
- {
- GetPVarNameAtIndex(playerid,pvar,varnome,70);
- DeletePVar(playerid,varnome);
- continue;
- }
- return true;
- }
- Func:: CarregarPVars(playerid,arquivo[])
- {
- if(!fexist(arquivo)) return false;
- new
- varnome[70],
- string[900],
- File: arq = fopen(arquivo,io_read);
- while(fread(arq,string))
- {
- if(!strcmp(string,"[STRING]",false,8))
- {
- new valor[150];
- strmid(varnome,string,8,strfind(string,"=")-1);
- strmid(valor,string,strfind(string,"=")+2,strlen(string)-2);
- SetPVarString(playerid,varnome,valor);
- }
- if(!strcmp(string,"[INTEIRO]",false,9))
- {
- new valor[40],valor2;
- strmid(varnome,string,9,strfind(string,"=")-1);
- strmid(valor,string,strfind(string,"=")+2,strlen(string)-2);
- valor2 = strval(valor);
- SetPVarInt(playerid,varnome,valor2);
- }
- if(!strcmp(string,"[FLOAT]",false,7))
- {
- new valor[40];
- strmid(varnome,string,7,strfind(string,"=")-1);
- strmid(valor,string,strfind(string,"=")+2,strlen(string)-2);
- SetPVarFloat(playerid,varnome,floatstr(valor));
- }
- if(!strcmp(string,"[BOOL]",false,6))
- {
- new valor[6];
- strmid(varnome,string,6,strfind(string,"=")-1);
- strmid(valor,string,strfind(string,"=")+2,strlen(string)-2);
- SetPVarBool(playerid,varnome,BoolStr(valor));
- }
- }
- fclose(arq);
- return true;
- }
- Func:: SalvarPVars(playerid,arquivo[])
- {
- new
- varnome[70],
- File: arq = fopen(arquivo,io_write);
- for(new pvar; pvar <= GetPVarsUpperIndex(playerid); pvar++)
- {
- GetPVarNameAtIndex(playerid,pvar,varnome,70);
- switch(GetPVarType(playerid,varnome))
- {
- case PLAYER_VARTYPE_STRING:
- {
- new conteudo[150],string[250];
- GetPVarString(playerid,varnome,conteudo,150);
- format(string,250,"[STRING]%s = %s\r\n",varnome,conteudo);
- fwrite(arq,string);
- }
- case PLAYER_VARTYPE_INT:
- {
- new string[90],valor = GetPVarInt(playerid,varnome);
- format(string,90,"[INTEIRO]%s = %d\r\n",varnome,valor);
- fwrite(arq,string);
- }
- case PLAYER_VARTYPE_FLOAT:
- {
- new string[90], Float:valor = GetPVarFloat(playerid,varnome);
- format(string,90,"[FLOAT]%s = %f\r\n",varnome,valor);
- fwrite(arq,string);
- }
- case PLAYER_VARTYPE_BOOL:
- {
- new string[90],bool:valor = GetPVarBool(playerid,varnome);
- format(string,90,"[BOOL]%s = %s\r\n",varnome,valor ? ("true") : ("false"));
- fwrite(arq,string);
- }
- }
- }
- fclose(arq);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement