Advertisement
Hardwell

Untitled

Jul 21st, 2013
500
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. #if defined BanSystem
  2.  
  3. ----------( CREDITS )----------
  4. SQLite - SA-MP Team
  5. ZCMD - Zeex
  6. sscanf2 - Y_Less
  7. GPVSEx - Zh3r0
  8. Script - Hardwell
  9. ----------( CREDITS )----------
  10.  
  11. #endif
  12.  
  13.  
  14. #include <a_samp>
  15. #include <zcmd>
  16. #include <sscanf2>
  17.  
  18. main() { }
  19.  
  20. #define R "{F81414}"
  21. #define B "{00C0FF}"
  22. #define W "{FFFFFF}"
  23.  
  24. #define C_R 0xF81414FF
  25. #define C_B 0x00C0FFFF
  26. #define C_G 0xC3C3C3FF
  27.  
  28. #define SCM SendClientMessage
  29.  
  30. new DB:DB;
  31.  
  32. public OnGameModeInit()
  33. {
  34. DB = db_open("Bans.db");
  35. db_query(DB,"CREATE TABLE IF NOT EXISTS `Bans`(`Name` TEXT,\
  36. `IP` TEXT,\
  37. `BanDate` TEXT,\
  38. `byAdmin` TEXT,\
  39. `Reason` TEXT)");
  40. return 1;
  41. }
  42.  
  43. public OnGameModeExit()
  44. {
  45. db_close(DB);
  46. return 1;
  47. }
  48.  
  49. public OnPlayerConnect(playerid)
  50. {
  51. new
  52. Query[129],
  53. DBResult:Result;
  54.  
  55. format(Query,sizeof(Query),"SELECT * FROM `Bans` WHERE `Name` = '%s' OR `IP` = '%s'",GetName(playerid),GetIP(playerid));
  56. Result = db_query(DB,Query);
  57.  
  58. if(Result)
  59. {
  60. if(db_num_rows(Result))
  61. {
  62. new Field[128];
  63.  
  64. db_get_field_assoc(Result,"BanDate",Field,sizeof(Field)); SetPVarString(playerid,"BanDate",Field);
  65. db_get_field_assoc(Result,"byAdmin",Field,sizeof(Field)); SetPVarString(playerid,"byAdmin",Field);
  66. db_get_field_assoc(Result,"Reason",Field,sizeof(Field)); SetPVarString(playerid,"Reason",Field);
  67.  
  68. new bStr[256];
  69. format(bStr,sizeof(bStr),""W"Ban Date: "B"%s\n\
  70. "W"by Admin: "B"%s\n\
  71. "W"Reason: "B"%s",GPVSEx(playerid,"BanDate"),GPVSEx(playerid,"byAdmin"),GPVSEx(playerid,"Reason"));
  72. ShowPlayerDialog(playerid,5000,DIALOG_STYLE_MSGBOX,""R"Banned",bStr,"Close","");
  73.  
  74. SetTimerEx("KickAfter",2 * 1000,false,"i",playerid);
  75. }
  76. }
  77. return 1;
  78. }
  79.  
  80. forward KickAfter(playerid);
  81. public KickAfter(playerid) Kick(playerid);
  82.  
  83. CMD:ban(playerid,params[])
  84. {
  85. if(sscanf(params,"us[129]",params[0],params[1])) return SCM(playerid,C_B,"USAGE: "W"/ban <id> [reason]");
  86. if(!IsPlayerConnected(params[0])) return SCM(playerid,C_R,"ERROR: "W"Player is not connected!");
  87. if(params[0] == playerid) return SCM(playerid,C_R,"ERROR: "W"Player entered is you!");
  88.  
  89. new Query[256];
  90. format(Query,sizeof(Query),"INSERT INTO `Bans`(`Name`,\
  91. `IP`,\
  92. `BanDate`,\
  93. `byAdmin`,\
  94. `Reason`) VALUES ('%s','%s','%s','%s','%s')",GetName(params[0]),GetIP(params[0]),GetDate(),GetName(playerid),params[1]);
  95. db_query(DB,Query);
  96.  
  97. Kick(params[0]);
  98. return 1;
  99. }
  100.  
  101. CMD:unban(playerid,params[])
  102. {
  103. if(sscanf(params,"s",params[0])) return SCM(playerid,C_B,"USAGE: "W"/unban <name>");
  104.  
  105. new
  106. Query[129],
  107. DBResult:Result;
  108. format(Query,sizeof(Query),"SELECT * FROM `Bans` WHERE `Name` = '%s'",params[0]);
  109. Result = db_query(DB,Query);
  110.  
  111. if(Result)
  112. {
  113. if(db_num_rows(Result))
  114. {
  115. format(Query,sizeof(Query),"DELETE FROM `Bans` WHERE `Name` = '%s'",params[0]);
  116. db_query(DB,Query);
  117.  
  118. SCM(playerid,C_G,"INFO: Name has been unbaned.");
  119. }
  120. else SCM(playerid,C_R,"ERROR: "W"This name is not banned!");
  121. }
  122.  
  123. db_free_result(Result);
  124. return 1;
  125. }
  126.  
  127. GetName(playerid)
  128. {
  129. new szName[MAX_PLAYER_NAME];
  130. GetPlayerName(playerid,szName,sizeof(szName));
  131. return szName;
  132. }
  133.  
  134. GetIP(playerid)
  135. {
  136. new szIP[20];
  137. GetPlayerIp(playerid,szIP,sizeof(szIP));
  138. return szIP;
  139. }
  140.  
  141. GetDate()
  142. {
  143. new
  144. dStr[30],
  145. D[6];
  146.  
  147. getdate(D[0],D[1],D[2]);
  148. gettime(D[3],D[4],D[5]);
  149.  
  150. format(dStr,sizeof(dStr),"%i/%i/%i %i:%i:%i",D[2],D[1],D[0],
  151. D[3],D[4],D[5]);
  152. return dStr;
  153. }
  154.  
  155. GPVSEx(playerid,pvstr[])
  156. {
  157. new pStr[129];
  158. GetPVarString(playerid,pvstr,pStr,sizeof(pStr));
  159. return pStr;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement