Advertisement
Guest User

VBan - Bans system - By: ViniBorn

a guest
Nov 2nd, 2011
913
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.91 KB | None | 0 0
  1. /*
  2. Name: VBan
  3. Description: Bans system
  4. Author: ViniBorn
  5. Contact : vini-elite@hotmail.com
  6. Country : Brazil
  7.  
  8.  
  9. *** *** *** ***** *** *** *** *** ***** ******** ****** ***
  10. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  11. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  12. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  13. ****** *** *** ****** *** *** **** ***** *** *** *** ******
  14.  
  15.  
  16.  
  17.  
  18.  
  19. Do not remove the credits.
  20. Your name is valuable, do not mess it.
  21.  
  22.  
  23. Comments:
  24.  
  25. - The default directory for saving bans is: scriptfiles/bans. Create bans folder.
  26.  
  27.  
  28. */
  29.  
  30. #include <Dini>
  31. #include <a_samp>
  32.  
  33. #define BanDir "/bans/%s.ini" // Directory of bans
  34. #define ErrorColor 0xAFAFAFAA
  35. #define BanColor 0xE11D36AA
  36.  
  37. new VIP[32],Vnewban[32],Vstring[128],NICKBAN[20];
  38.  
  39. stock VBanID(playerid,giveid,reason[])
  40. {
  41. format(NICKBAN,20,VBPlayer(giveid));
  42. if(playerid > -1)
  43. {
  44. format(Vstring,128,"'- VBan -' The player %s was banned by %s. Reason: %s",VBPlayer(giveid),VBPlayer(playerid),reason);
  45. SendClientMessageToAll(BanColor,Vstring);
  46. GetPlayerIp(giveid, VIP, sizeof(VIP));
  47. format(Vnewban,32,BanDir,VIP);
  48. dini_Create(Vnewban);
  49. VBanSaveInfo(playerid,Vnewban,reason);
  50. format(Vnewban,32,BanDir,VBPlayer(giveid));
  51. dini_Create(Vnewban);
  52. VBanSaveInfo(playerid,Vnewban,reason);
  53. }
  54. else
  55. {
  56. format(Vstring,128,"'- VBan -' The player %s was banned by VBot Admin. Reason: %s",VBPlayer(giveid),reason);
  57. SendClientMessageToAll(BanColor,Vstring);
  58. format(Vnewban,32,BanDir,VBPlayer(giveid));
  59. dini_Create(Vnewban);
  60. VBanSaveInfo(-1,Vnewban,reason);
  61. }
  62. if(IsPlayerConnected(giveid))
  63. VBanLoadInfo(giveid,Vnewban);
  64.  
  65. Kick(giveid);
  66.  
  67. return 1;
  68. }
  69.  
  70. stock VBanNick(playerid,nick[],reason[])
  71. {
  72. format(Vnewban,32,BanDir,nick);
  73.  
  74. if(dini_Exists(Vnewban))
  75. return SendClientMessage(playerid, ErrorColor,"'- VBan -' This nickname is already banned.");
  76.  
  77. new giveid;
  78. giveid = VBReturnUser(nick);
  79. if(!IsPlayerConnected(giveid))
  80. {
  81. format(NICKBAN,20,nick);
  82. format(Vstring,128,"'- VBan -' The nickname %s was banned by %s. Reason: %s",nick,VBPlayer(playerid),reason);
  83. SendClientMessageToAll(BanColor,Vstring);
  84. dini_Create(Vnewban);
  85. return VBanSaveInfo(playerid,Vnewban,reason);
  86. }
  87. else
  88. return VBanID(playerid,giveid,reason);
  89. }
  90.  
  91. stock VBanIP(playerid,IP2[],reason[])
  92. {
  93. format(Vnewban,32,BanDir,IP2);
  94.  
  95. if(dini_Exists(Vnewban))
  96. return SendClientMessage(playerid, ErrorColor,"'- VBan -' This IP is already banned.");
  97.  
  98. if(playerid > -1)
  99. {
  100. new ban;
  101.  
  102. for(new i=0, j = GetMaxPlayers(); i < j; i++)
  103. if(IsPlayerConnected(i))
  104. {
  105. GetPlayerIp(i, VIP, sizeof(VIP));
  106. if(!strcmp(VIP, IP2))
  107. {
  108. ban++;
  109. VBanID(playerid,i,reason);
  110. }
  111. }
  112.  
  113. if(ban == 0)
  114. {
  115. dini_Create(Vnewban);
  116. format(Vstring,128,"'- VBan -' The IP %s was banned by %s. Reason: %s",IP2,VBPlayer(playerid),reason);
  117. SendClientMessageToAll(BanColor,Vstring);
  118. VBanSaveInfo(playerid,Vnewban,reason);
  119. }
  120. }
  121. else
  122. {
  123. format(Vnewban,32,BanDir,IP2);
  124. dini_Create(Vnewban);
  125. format(Vstring,128,"'- VBan -' The IP %s was banned by VBot Admin. Reason: Ban evade",IP2);
  126. SendClientMessageToAll(BanColor,Vstring);
  127. VBanSaveInfo(-1,Vnewban,"Ban evade");
  128. }
  129. return 1;
  130. }
  131.  
  132. stock VUnBan(playerid,Arq[])
  133. {
  134. format(Vnewban,32,BanDir,Arq);
  135. if(!dini_Exists(Vnewban))
  136. return SendClientMessage(playerid, ErrorColor,"'- VBan -' Ban non-existent.");
  137.  
  138. new BANNEDIP[32];
  139. format(BANNEDIP,32,BanDir,dini_Get(Vnewban,"IP"));
  140. if(dini_Exists(BANNEDIP))
  141. {
  142. new BANNEDACC[32];
  143. if(VBIsIP(Arq))
  144. format(Vstring,128,"'- VBan -' The IP %s(%s) was unbanned by %s.",Arq,dini_Get(Vnewban,"Nick"),VBPlayer(playerid));
  145. else
  146. format(Vstring,128,"'- VBan -' The account %s(%s) was unbanned by %s.",Arq,dini_Get(Vnewban,"IP"),VBPlayer(playerid));
  147.  
  148. format(BANNEDACC,32,BanDir,dini_Get(Vnewban,"Nick"));
  149. dini_Remove(BANNEDACC);
  150. dini_Remove(BANNEDIP);
  151. }
  152. else
  153. format(Vstring,128,"'- VBan -' The account %s was unbanned by %s.",Arq,VBPlayer(playerid));
  154.  
  155. SendClientMessageToAll(0x10B4EEAA,Vstring);
  156. dini_Remove(Vnewban);
  157. return 1;
  158. }
  159.  
  160. stock VBanCheck(playerid)
  161. {
  162. format(Vnewban,32,BanDir,VBPlayer(playerid));
  163. if(dini_Exists(Vnewban))
  164. {
  165. VBanLoadInfo(playerid,Vnewban);
  166. GetPlayerIp(playerid, VIP, sizeof(VIP));
  167. VBanIP(-1,VIP,dini_Get(Vnewban,"Reason"));
  168. return Kick(playerid);
  169. }
  170. GetPlayerIp(playerid, VIP, sizeof(VIP));
  171. format(Vnewban,32,BanDir,VIP);
  172. if(dini_Exists(Vnewban))
  173. {
  174. VBanLoadInfo(playerid,Vnewban);
  175. format(NICKBAN,20,VBPlayer(playerid));
  176. dini_Set(Vnewban,"Nick",NICKBAN);
  177. VBanID(-1,playerid,dini_Get(Vnewban,"Reason"));
  178. return Kick(playerid);
  179. }
  180. return 1;
  181. }
  182. stock VBanLoadInfo(playerid,Varq[])
  183. {
  184. if(!dini_Exists(Varq))
  185. return SendClientMessage(playerid, ErrorColor,"'- VBan -' Ban non-existent.");
  186.  
  187. new InfoString[300];
  188. format(InfoString,300,"\n\t{FFFFFF}Nickname : {E11D36}%s\n\t{FFFFFF}IP : {E11D36}%s\n\t{FFFFFF}Admin : {E11D36}%s\n\t{FFFFFF}Reason : {E11D36}%s\n\t{FFFFFF}Date : {E11D36}%s\n\t{FFFFFF}Hour : {E11D36}%s",dini_Get(Varq,"Nick"),dini_Get(Varq,"IP"),dini_Get(Varq,"Admin"),dini_Get(Varq,"Reason"),dini_Get(Varq,"Date"),dini_Get(Varq,"Hour"));
  189. ShowPlayerDialog(playerid, 231, DIALOG_STYLE_MSGBOX, " {FFFFFF}VBan - BanInfo - By: ViniBorn", InfoString,"Close", "");
  190. return 1;
  191. }
  192.  
  193. stock VBanSaveInfo(playerid,Varq[],reason[])
  194. {
  195. new Vyear, Vmonth, Vday, Vhour, Vminute, Vsecond;
  196. getdate(Vyear, Vmonth, Vday); gettime(Vhour, Vminute, Vsecond);
  197. dini_Set(Varq,"IP",VIP);
  198. dini_Set(Varq,"Nick",NICKBAN);
  199. if(playerid > -1)
  200. dini_Set(Varq,"Admin",VBPlayer(playerid));
  201. else
  202. dini_Set(Varq,"Admin","VBot Admin");
  203. format(Vstring,32,"%02d:%02d:%02d", Vhour, Vminute, Vsecond);
  204. dini_Set(Varq,"Hour",Vstring);
  205. format(Vstring,32,"%02d/%02d/%d", Vday, Vmonth, Vyear);
  206. dini_Set(Varq,"Date",Vstring);
  207. dini_Set(Varq,"Reason",reason);
  208. return 1;
  209. }
  210.  
  211. stock VBPlayer(playerid)
  212. {
  213. new pname[MAX_PLAYER_NAME];
  214. GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
  215. return pname;
  216. }
  217.  
  218. stock VBReturnUser(PlayerName[])
  219. {
  220. if(VBIsNumeric(PlayerName))
  221. return strval(PlayerName);
  222. else
  223. {
  224. new found=0, id;
  225. for(new i=0; i < GetMaxPlayers(); i++)
  226. {
  227. if(IsPlayerConnected(i))
  228. {
  229. new foundname[MAX_PLAYER_NAME];
  230. GetPlayerName(i, foundname, MAX_PLAYER_NAME);
  231. new namelen = strlen(foundname);
  232. new bool:searched=false;
  233. for(new pos=0; pos <= namelen; pos++)
  234. {
  235. if(searched != true)
  236. {
  237. if(strfind(foundname,PlayerName,true) == pos)
  238. {
  239. found++;
  240. id = i;
  241. }
  242. }
  243. }
  244. }
  245. }
  246. if(found == 1)
  247. return id;
  248. else
  249. return INVALID_PLAYER_ID;
  250. }
  251. }
  252.  
  253. stock VBIsIP(const string[])
  254. {
  255. new count;
  256. for (new i = 0, j = strlen(string); i < j; i++)
  257. if(string[i] > 47 && string[i] < 58)
  258. count++;
  259.  
  260. if(count > 5)
  261. return 1;
  262.  
  263. return 0;
  264. }
  265.  
  266. stock VBIsNumeric(const string[])
  267. {
  268. for (new i = 0, j = strlen(string); i < j; i++)
  269. if(string[i] > '9' || string[i] < '0') return 0;
  270.  
  271. return 1;
  272. }
  273.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement