Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <file>
- #include <Dini>
- #include <dutils>
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_LIGHTRED 0xFF6347AA
- forward ini_GetKey( line[] );
- forward ini_GetValue( line[] );
- new adminlevel[MAX_PLAYERS];
- forward ABroadCast(color,const string[],level);
- public OnPlayerConnect(playerid)
- {
- new playername2[MAX_PLAYER_NAME];
- new string2[256];
- GetPlayerName(playerid, playername2, sizeof(playername2));
- format(string2, sizeof(string2), "users/%s.ini", playername2);
- new File: UserFile = fopen(string2, io_read);
- if ( UserFile )
- {
- new key[ 256 ] , val[ 256 ];
- new Data[ 256 ];
- while ( fread( UserFile , Data , sizeof( Data ) ) )
- {
- key = ini_GetKey( Data );
- if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); adminlevel[playerid] = strval( val ); }
- }
- fclose(UserFile);
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new string[256];
- new cmd[256];
- new tmp[256];
- new sendername[MAX_PLAYER_NAME];
- new idx;
- cmd = strtok(cmdtext, idx);
- if (strcmp(cmd, "/unban", true)==0)
- {
- if(adminlevel[playerid] >= 4)
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /unban [PlayerName_PlayerLastName]");
- return 1;
- }
- format(string, sizeof(string), "users/%s.ini", tmp);
- new File:hFile = fopen(string, io_read);
- if (hFile)
- {
- new Data[ 256 ],val [ 256 ];
- while ( fread( hFile , Data , sizeof( Data ) ) )
- if( strcmp( ini_GetKey( Data ) , "Locked" , true ) == 0 )
- val = ini_GetValue( Data );
- if(strval( val ) == 2)
- {
- new var[64];
- format(var, sizeof(var), "Locked=2\n");
- fdeleteline(string,var);
- fclose(hFile);
- hFile = fopen(string, io_append);
- format(var, 64, "Locked=0\n");
- fwrite(hFile, var);
- fclose(hFile);
- }
- else
- {
- fclose(hFile);
- return SendClientMessage(playerid, COLOR_WHITE, " ERROR : Player account doesn`t locked!!");
- }
- }
- SendClientMessage(playerid, COLOR_WHITE, "Player unlocked please ask for his IP and use /unbanip [IP]");
- format(string, 256, "AdmWarning: %s has unbanned %s", sendername, tmp);
- ABroadCast(COLOR_LIGHTRED,string,1);
- }
- return 1;
- }
- return 1;
- }
- forward fcreate(filename[]);
- forward fdeleteline(filename[], line[]);
- 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(equal(templine,line,true))
- {
- strdel(temp,i,i+strlen(line));
- fcreate(filename);
- fhandle = fopen(filename,io_write);
- fwrite(fhandle,temp);
- fclose(fhandle);
- return 1;
- }
- }
- }
- }
- return 0;
- }
- public fcreate(filename[])
- {
- if (fexist(filename)){return false;}
- new File:fhandle = fopen(filename,io_write);
- fclose(fhandle);
- return true;
- }
- public ABroadCast(color,const string[],level)
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if (adminlevel[i] >= level)
- {
- SendClientMessage(i, color, string);
- printf("%s", string);
- }
- }
- }
- return 1;
- }
- stock ini_GetKey( line[] )
- {
- new keyRes[256];
- keyRes[0] = 0;
- if ( strfind( line , "=" , true ) == -1 ) return keyRes;
- strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
- return keyRes;
- }
- stock ini_GetValue( line[] )
- {
- new valRes[256];
- valRes[0]=0;
- if ( strfind( line , "=" , true ) == -1 ) return valRes;
- strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
- return valRes;
- }
Advertisement
Add Comment
Please, Sign In to add comment