Guest User

Untitled

a guest
May 29th, 2011
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. #include <a_samp>
  2. #include <file>
  3. #include <Dini>
  4. #include <dutils>
  5. #define COLOR_WHITE 0xFFFFFFAA
  6. #define COLOR_LIGHTRED 0xFF6347AA
  7. forward ini_GetKey( line[] );
  8. forward ini_GetValue( line[] );
  9. new adminlevel[MAX_PLAYERS];
  10. forward ABroadCast(color,const string[],level);
  11. public OnPlayerConnect(playerid)
  12. {
  13. new playername2[MAX_PLAYER_NAME];
  14. new string2[256];
  15. GetPlayerName(playerid, playername2, sizeof(playername2));
  16. format(string2, sizeof(string2), "users/%s.ini", playername2);
  17. new File: UserFile = fopen(string2, io_read);
  18. if ( UserFile )
  19. {
  20. new key[ 256 ] , val[ 256 ];
  21. new Data[ 256 ];
  22. while ( fread( UserFile , Data , sizeof( Data ) ) )
  23. {
  24. key = ini_GetKey( Data );
  25. if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); adminlevel[playerid] = strval( val ); }
  26. }
  27. fclose(UserFile);
  28. }
  29. return 1;
  30. }
  31. public OnPlayerCommandText(playerid, cmdtext[])
  32. {
  33. new string[256];
  34. new cmd[256];
  35. new tmp[256];
  36. new sendername[MAX_PLAYER_NAME];
  37. new idx;
  38. cmd = strtok(cmdtext, idx);
  39. if (strcmp(cmd, "/unban", true)==0)
  40. {
  41. if(adminlevel[playerid] >= 4)
  42. {
  43. tmp = strtok(cmdtext, idx);
  44. if(!strlen(tmp))
  45. {
  46. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /unban [PlayerName_PlayerLastName]");
  47. return 1;
  48. }
  49. format(string, sizeof(string), "users/%s.ini", tmp);
  50. new File:hFile = fopen(string, io_read);
  51. if (hFile)
  52. {
  53. new Data[ 256 ],val [ 256 ];
  54. while ( fread( hFile , Data , sizeof( Data ) ) )
  55. if( strcmp( ini_GetKey( Data ) , "Locked" , true ) == 0 )
  56. val = ini_GetValue( Data );
  57. if(strval( val ) == 2)
  58. {
  59. new var[64];
  60. format(var, sizeof(var), "Locked=2\n");
  61. fdeleteline(string,var);
  62. fclose(hFile);
  63. hFile = fopen(string, io_append);
  64. format(var, 64, "Locked=0\n");
  65. fwrite(hFile, var);
  66. fclose(hFile);
  67. }
  68. else
  69. {
  70. fclose(hFile);
  71. return SendClientMessage(playerid, COLOR_WHITE, " ERROR : Player account doesn`t locked!!");
  72. }
  73. }
  74. SendClientMessage(playerid, COLOR_WHITE, "Player unlocked please ask for his IP and use /unbanip [IP]");
  75. format(string, 256, "AdmWarning: %s has unbanned %s", sendername, tmp);
  76. ABroadCast(COLOR_LIGHTRED,string,1);
  77. }
  78. return 1;
  79. }
  80. return 1;
  81. }
  82. forward fcreate(filename[]);
  83. forward fdeleteline(filename[], line[]);
  84. public fdeleteline(filename[], line[])
  85. {
  86. if(fexist(filename))
  87. {
  88. new temp[256];
  89. new File:fhandle = fopen(filename,io_read);
  90. fread(fhandle,temp,sizeof(temp),false);
  91. if(strfind(temp,line,true)==-1){return 0;}
  92. else
  93. {
  94. fclose(fhandle);
  95. fremove(filename);
  96. for(new i=0;i<strlen(temp);i++)
  97. {
  98. new templine[256];
  99. strmid(templine,temp,i,i+strlen(line));
  100. if(equal(templine,line,true))
  101. {
  102. strdel(temp,i,i+strlen(line));
  103. fcreate(filename);
  104. fhandle = fopen(filename,io_write);
  105. fwrite(fhandle,temp);
  106. fclose(fhandle);
  107. return 1;
  108. }
  109. }
  110. }
  111. }
  112. return 0;
  113. }
  114. public fcreate(filename[])
  115. {
  116. if (fexist(filename)){return false;}
  117. new File:fhandle = fopen(filename,io_write);
  118. fclose(fhandle);
  119. return true;
  120. }
  121. public ABroadCast(color,const string[],level)
  122. {
  123. for(new i = 0; i < MAX_PLAYERS; i++)
  124. {
  125. if(IsPlayerConnected(i))
  126. {
  127. if (adminlevel[i] >= level)
  128. {
  129. SendClientMessage(i, color, string);
  130. printf("%s", string);
  131. }
  132. }
  133. }
  134. return 1;
  135. }
  136. stock ini_GetKey( line[] )
  137. {
  138. new keyRes[256];
  139. keyRes[0] = 0;
  140. if ( strfind( line , "=" , true ) == -1 ) return keyRes;
  141. strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
  142. return keyRes;
  143. }
  144.  
  145. stock ini_GetValue( line[] )
  146. {
  147. new valRes[256];
  148. valRes[0]=0;
  149. if ( strfind( line , "=" , true ) == -1 ) return valRes;
  150. strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  151. return valRes;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment