Advertisement
Guest User

VBan - Sistema de bans - By: ViniBorn

a guest
Oct 30th, 2011
1,968
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.84 KB | None | 0 0
  1. /*
  2. Nome: VBan
  3. Descrição: Sistema de bans
  4. Autor: ViniBorn
  5. Contato : vini-elite@hotmail.com
  6.  
  7.  
  8. *** *** *** ***** *** *** *** *** ***** ******** ****** ***
  9. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  10. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  11. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  12. ****** *** *** ****** *** *** **** ***** *** *** *** ******
  13.  
  14.  
  15.  
  16.  
  17.  
  18. Não retire os créditos.
  19. Seu nome é valioso, não suje-o.
  20.  
  21.  
  22. Observações :
  23.  
  24. - O diretório padrão para salvar os bans é : scriptfiles/bans. Crie a pasta bans.
  25.  
  26.  
  27. */
  28.  
  29. #include <Dini>
  30.  
  31. #define BanDir "/bans/%s.ini" // Diretório dos bans
  32. #define CorErro 0xAFAFAFAA
  33. #define CorBan 0xE11D36AA
  34.  
  35. new VIP[32],Vnewban[32],Vstring[128],NICKBAN[20];
  36.  
  37. stock VBanID(playerid,giveid,motivo[])
  38. {
  39. format(NICKBAN,20,VBPlayer(giveid));
  40. if(playerid > -1)
  41. {
  42. format(Vstring,128,"'- VBan -' O jogador %s foi banido por %s. Motivo: %s",VBPlayer(giveid),VBPlayer(playerid),motivo);
  43. SendClientMessageToAll(CorBan,Vstring);
  44. GetPlayerIp(giveid, VIP, sizeof(VIP));
  45. format(Vnewban,32,BanDir,VIP);
  46. dini_Create(Vnewban);
  47. VBanSaveInfo(playerid,Vnewban,motivo);
  48. format(Vnewban,32,BanDir,VBPlayer(giveid));
  49. dini_Create(Vnewban);
  50. VBanSaveInfo(playerid,Vnewban,motivo);
  51. }
  52. else
  53. {
  54. format(Vstring,128,"'- VBan -' O jogador %s foi banido por VBot Admin. Motivo: %s",VBPlayer(giveid),motivo);
  55. SendClientMessageToAll(CorBan,Vstring);
  56. format(Vnewban,32,BanDir,VBPlayer(giveid));
  57. dini_Create(Vnewban);
  58. VBanSaveInfo(-1,Vnewban,motivo);
  59. }
  60. if(IsPlayerConnected(giveid))
  61. VBanLoadInfo(giveid,Vnewban);
  62.  
  63. Kick(giveid);
  64.  
  65. return 1;
  66. }
  67.  
  68. stock VBanNick(playerid,nick[],motivo[])
  69. {
  70. format(Vnewban,32,BanDir,nick);
  71.  
  72. if(dini_Exists(Vnewban))
  73. return SendClientMessage(playerid, CorErro,"'- VBan -' Este nick já está banido.");
  74.  
  75. new giveid;
  76. giveid = VBReturnUser(nick);
  77. if(!IsPlayerConnected(giveid))
  78. {
  79. format(NICKBAN,20,nick);
  80. format(Vstring,128,"'- VBan -' O nick %s foi banido por %s. Motivo: %s",nick,VBPlayer(playerid),motivo);
  81. SendClientMessageToAll(CorBan,Vstring);
  82. dini_Create(Vnewban);
  83. return VBanSaveInfo(playerid,Vnewban,motivo);
  84. }
  85. else
  86. return VBanID(playerid,giveid,motivo);
  87. }
  88.  
  89. stock VBanIP(playerid,IP2[],motivo[])
  90. {
  91. format(Vnewban,32,BanDir,IP2);
  92.  
  93. if(dini_Exists(Vnewban))
  94. return SendClientMessage(playerid, CorErro,"'- VBan -' Este IP já está banido");
  95.  
  96. if(playerid > -1)
  97. {
  98. new ban;
  99.  
  100. for(new i=0, j = GetMaxPlayers(); i < j; i++)
  101. if(IsPlayerConnected(i))
  102. {
  103. GetPlayerIp(i, VIP, sizeof(VIP));
  104. if(!strcmp(VIP, IP2))
  105. {
  106. ban++;
  107. VBanID(playerid,i,motivo);
  108. }
  109. }
  110.  
  111. if(ban == 0)
  112. {
  113. dini_Create(Vnewban);
  114. format(Vstring,128,"'- VBan -' O IP %s foi banido por %s. Motivo: %s",IP2,VBPlayer(playerid),motivo);
  115. SendClientMessageToAll(CorBan,Vstring);
  116. VBanSaveInfo(playerid,Vnewban,motivo);
  117. }
  118. }
  119. else
  120. {
  121. format(Vnewban,32,BanDir,IP2);
  122. dini_Create(Vnewban);
  123. format(Vstring,128,"'- VBan -' O IP %s foi banido por VBot Admin. Motivo: Ban evade",IP2);
  124. SendClientMessageToAll(CorBan,Vstring);
  125. VBanSaveInfo(-1,Vnewban,"Ban evade");
  126. }
  127. return 1;
  128. }
  129.  
  130. stock VUnBan(playerid,Arq[])
  131. {
  132. format(Vnewban,32,BanDir,Arq);
  133. if(!dini_Exists(Vnewban))
  134. return SendClientMessage(playerid, CorErro,"'- VBan -' Ban inexistente.");
  135.  
  136. new BANNEDIP[32];
  137. format(BANNEDIP,32,BanDir,dini_Get(Vnewban,"IP"));
  138. if(dini_Exists(BANNEDIP))
  139. {
  140. new BANNEDACC[32];
  141. if(VBIsIP(Arq))
  142. format(Vstring,128,"'- VBan -' O IP %s(%s) foi desbanido por %s.",Arq,dini_Get(Vnewban,"Nick"),VBPlayer(playerid));
  143. else
  144. format(Vstring,128,"'- VBan -' A conta %s(%s) foi desbanida por %s.",Arq,dini_Get(Vnewban,"IP"),VBPlayer(playerid));
  145.  
  146. format(BANNEDACC,32,BanDir,dini_Get(Vnewban,"Nick"));
  147. dini_Remove(BANNEDACC);
  148. dini_Remove(BANNEDIP);
  149. }
  150. else
  151. format(Vstring,128,"'- VBan -' A conta %s foi desbanida por %s.",Arq,VBPlayer(playerid));
  152.  
  153. SendClientMessageToAll(0x10B4EEAA,Vstring);
  154. dini_Remove(Vnewban);
  155. return 1;
  156. }
  157.  
  158. stock VBanCheck(playerid)
  159. {
  160. format(Vnewban,32,BanDir,VBPlayer(playerid));
  161. if(dini_Exists(Vnewban))
  162. {
  163. VBanLoadInfo(playerid,Vnewban);
  164. GetPlayerIp(playerid, VIP, sizeof(VIP));
  165. VBanIP(-1,VIP,dini_Get(Vnewban,"Motivo"));
  166. return Kick(playerid);
  167. }
  168. GetPlayerIp(playerid, VIP, sizeof(VIP));
  169. format(Vnewban,32,BanDir,VIP);
  170. if(dini_Exists(Vnewban))
  171. {
  172. VBanLoadInfo(playerid,Vnewban);
  173. format(NICKBAN,20,VBPlayer(playerid));
  174. dini_Set(Vnewban,"Nick",NICKBAN);
  175. VBanID(-1,playerid,dini_Get(Vnewban,"Motivo"));
  176. return Kick(playerid);
  177. }
  178. return 1;
  179. }
  180. stock VBanLoadInfo(playerid,Varq[])
  181. {
  182. if(!dini_Exists(Varq))
  183. return SendClientMessage(playerid, CorErro,"'- VBan -' Ban inexistente.");
  184.  
  185. new InfoString[300];
  186. format(InfoString,300,"\n\t{FFFFFF}Nick : {E11D36}%s\n\t{FFFFFF}IP : {E11D36}%s\n\t{FFFFFF}Admin : {E11D36}%s\n\t{FFFFFF}Motivo : {E11D36}%s\n\t{FFFFFF}Data : {E11D36}%s\n\t{FFFFFF}Horário : {E11D36}%s",dini_Get(Varq,"Nick"),dini_Get(Varq,"IP"),dini_Get(Varq,"Admin"),dini_Get(Varq,"Motivo"),dini_Get(Varq,"Data"),dini_Get(Varq,"Hora"));
  187. ShowPlayerDialog(playerid, 231, DIALOG_STYLE_MSGBOX, " {FFFFFF}VBan - BanInfo - By: ViniBorn", InfoString,"Fechar", "");
  188. return 1;
  189. }
  190.  
  191. stock VBanSaveInfo(playerid,Varq[],motivo[])
  192. {
  193. new Vano, Vmes, Vdia, Vhora, Vminuto, Vsegundo;
  194. getdate(Vano, Vmes, Vdia); gettime(Vhora, Vminuto, Vsegundo);
  195. dini_Set(Varq,"IP",VIP);
  196. dini_Set(Varq,"Nick",NICKBAN);
  197. if(playerid > -1)
  198. dini_Set(Varq,"Admin",VBPlayer(playerid));
  199. else
  200. dini_Set(Varq,"Admin","VBot Admin");
  201. format(Vstring,32,"%02d:%02d:%02d", Vhora, Vminuto, Vsegundo);
  202. dini_Set(Varq,"Hora",Vstring);
  203. format(Vstring,32,"%02d/%02d/%d", Vdia, Vmes, Vano);
  204. dini_Set(Varq,"Data",Vstring);
  205. dini_Set(Varq,"Motivo",motivo);
  206. return 1;
  207. }
  208.  
  209. stock VBPlayer(playerid)
  210. {
  211. new pname[MAX_PLAYER_NAME];
  212. GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
  213. return pname;
  214. }
  215.  
  216. stock VBReturnUser(PlayerName[])
  217. {
  218. if(VBIsNumeric(PlayerName))
  219. return strval(PlayerName);
  220. else
  221. {
  222. new found=0, id;
  223. for(new i=0; i < GetMaxPlayers(); i++)
  224. {
  225. if(IsPlayerConnected(i))
  226. {
  227. new foundname[MAX_PLAYER_NAME];
  228. GetPlayerName(i, foundname, MAX_PLAYER_NAME);
  229. new namelen = strlen(foundname);
  230. new bool:searched=false;
  231. for(new pos=0; pos <= namelen; pos++)
  232. {
  233. if(searched != true)
  234. {
  235. if(strfind(foundname,PlayerName,true) == pos)
  236. {
  237. found++;
  238. id = i;
  239. }
  240. }
  241. }
  242. }
  243. }
  244. if(found == 1)
  245. return id;
  246. else
  247. return INVALID_PLAYER_ID;
  248. }
  249. }
  250.  
  251. stock VBIsIP(const string[])
  252. {
  253. new count;
  254. for (new i = 0, j = strlen(string); i < j; i++)
  255. if(string[i] > 47 && string[i] < 58)
  256. count++;
  257.  
  258. if(count > 5)
  259. return 1;
  260.  
  261. return 0;
  262. }
  263.  
  264. stock VBIsNumeric(const string[])
  265. {
  266. for (new i = 0, j = strlen(string); i < j; i++)
  267. if(string[i] > '9' || string[i] < '0') return 0;
  268.  
  269. return 1;
  270. }
  271.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement