Advertisement
Guest User

vban_-_bans_system___by__viniborn__Traslated_by_TiNcH010

a guest
Apr 10th, 2012
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.04 KB | None | 0 0
  1. /*
  2. Nombre: VBan
  3. Descripción: Sistema de Bans
  4. Autor: ViniBorn
  5. Contacto : vini-elite@hotmail.com
  6. País : Brasil
  7.  
  8.  
  9. *** *** *** ***** *** *** *** *** ***** ******** ****** ***
  10. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  11. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  12. *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
  13. ****** *** *** ****** *** *** **** ***** *** *** *** ******
  14.  
  15.  
  16.  
  17.  
  18.  
  19. No remover los créditos.
  20. Su nombre es valioso, no lo desperdicie.
  21.  
  22.  
  23. Comentarios:
  24.  
  25. - El directorio por "default" para guardar los Bans es: scriptfiles/bans. Crear carpeta llamada "bans" en scriptfiles.
  26.  
  27.  
  28. */
  29.  
  30.  
  31. #include <a_samp>
  32. #include <DOF2>
  33.  
  34. #define BanDir "/bans/%s.ini" // Directorio de los bans
  35. #define ErrorColor 0xAFAFAFAA
  36. #define BanColor 0xE11D36AA
  37.  
  38. new VIP[32],Vnuevoban[32],Vstring[128],NICKBAN[20],DiasBaneado;
  39.  
  40. stock VBanID(playerid,giveid,razon[])
  41. {
  42. format(NICKBAN,20,VBanJugador(giveid));
  43. if(playerid > -1)
  44. {
  45. format(Vstring,128,"'- VBan -' El jugador %s ha sido baneado por %s. Razon: %s",VBanJugador(giveid),VBanJugador(playerid),razon);
  46. SendClientMessageToAll(BanColor,Vstring);
  47. GetPlayerIp(giveid, VIP, sizeof(VIP));
  48. format(Vnuevoban,32,BanDir,VIP);
  49. DOF2_CreateFile(Vnuevoban);
  50. VBanSaveInfo(playerid,Vnuevoban,razon,false);
  51. format(Vnuevoban,32,BanDir,VBanJugador(giveid));
  52. DOF2_CreateFile(Vnuevoban);
  53. VBanSaveInfo(playerid,Vnuevoban,razon,false);
  54. }
  55. else
  56. {
  57. format(Vnuevoban,32,BanDir,VBanJugador(giveid));
  58. format(Vstring,128,"'- VBan -' El jugador %s ha sido baneado por VBot Admin(%s). Razon: %s",VBanJugador(giveid),DOF2_GetString(Vnuevoban,"Admin"),razon);
  59. SendClientMessageToAll(BanColor,Vstring);
  60.  
  61. DOF2_CreateFile(Vnuevoban);
  62. VBanSaveInfo(-1,Vnuevoban,razon,false);
  63. }
  64. if(IsPlayerConnected(giveid))
  65. VBanLoadInfo(giveid,Vnuevoban);
  66.  
  67. Kick(giveid);
  68. return 1;
  69. }
  70.  
  71. stock VTempBan(playerid,giveid,tiempo,razon[])
  72. {
  73. DiasBaneado = time;
  74. format(NICKBAN,20,VBanJugador(giveid));
  75. format(Vstring,128,"'- VBan -' El jugador %s ha sido baneado temporalmente por %s. Tiempo: %d días. Razon: %s",VBanJugador(giveid),VBanJugador(playerid),tiempo,razon);
  76. SendClientMessageToAll(BanColor,Vstring);
  77. GetPlayerIp(giveid, VIP, sizeof(VIP));
  78. format(Vnuevoban,32,BanDir,VIP);
  79. DOF2_CreateFile(Vnuevoban);
  80. VBanSaveInfo(playerid,Vnuevoban,razon,true);
  81. format(Vnuevoban,32,BanDir,VBanJugador(giveid));
  82. DOF2_CreateFile(Vnuevoban);
  83. VBanSaveInfo(playerid,Vnuevoban,razon,true);
  84. Kick(giveid);
  85. }
  86.  
  87. stock VBanNick(playerid,nick[],razon[])
  88. {
  89. format(Vnuevoban,32,BanDir,nick);
  90.  
  91. if(DOF2_FileExists(Vnuevoban))
  92. return SendClientMessage(playerid, ErrorColor,"'- VBan -' Este nick ya esta baneado.");
  93.  
  94. new giveid;
  95. giveid = VBReturnUser(nick);
  96. if(!IsPlayerConnected(giveid))
  97. {
  98. format(NICKBAN,20,nick);
  99. format(Vstring,128,"'- VBan -' El nick %s ha sido baneado por %s. Razon: %s",nick,VBanJugador(playerid),razon);
  100. SendClientMessageToAll(BanColor,Vstring);
  101. DOF2_CreateFile(Vnuevoban);
  102. return VBanSaveInfo(playerid,Vnuevoban,razon,false);
  103. }
  104. else
  105. return VBanID(playerid,giveid,razon);
  106. }
  107.  
  108. stock VBanIP(playerid,IP2[],razon[])
  109. {
  110. format(Vnuevoban,32,BanDir,IP2);
  111.  
  112. if(DOF2_FileExists(Vnuevoban))
  113. return SendClientMessage(playerid, ErrorColor,"'- VBan -' Esta IP ya esta baneada.");
  114.  
  115. if(playerid > -1)
  116. {
  117. new ban;
  118. for(new i, j = GetMaxPlayers(); i < j; i++)
  119. if(IsPlayerConnected(i))
  120. {
  121. GetPlayerIp(i, VIP, sizeof(VIP));
  122. if(!strcmp(VIP, IP2))
  123. {
  124. ban++;
  125. VBanID(playerid,i,razon);
  126. }
  127. }
  128.  
  129. if(ban == 0)
  130. {
  131. DOF2_CreateFile(Vnuevoban);
  132. format(Vstring,128,"'- VBan -' La IP s ha sido baneada por %s. Razon: %s",IP2,VBanJugador(playerid),razon);
  133. SendClientMessageToAll(BanColor,Vstring);
  134. VBanSaveInfo(playerid,Vnuevoban,razon,false);
  135. }
  136. }
  137. else
  138. {
  139. format(Vnuevoban,32,BanDir,IP2);
  140. DOF2_CreateFile(Vnuevoban);
  141. VBanSaveInfo(-1,Vnuevoban,DOF2_GetString(Vnuevoban,"Razon"),false);
  142. format(Vstring,128,"'- VBan -' La IP %s ha sido baneada por VBot Admin(%s). Razon: Evadir Ban",IP2,DOF2_GetString(Vnuevoban,"Nick"));
  143. SendClientMessageToAll(BanColor,Vstring);
  144. }
  145. return 1;
  146. }
  147.  
  148. stock VUnBan(playerid,Arq[])
  149. {
  150. format(Vnuevoban,32,BanDir,Arq);
  151. if(!DOF2_FileExists(Vnuevoban))
  152. return SendClientMessage(playerid, ErrorColor,"'- VBan -' Ban no existente.");
  153.  
  154. new IPBANEADA[32];
  155. format(IPBANEADA,32,BanDir,DOF2_GetString(Vnuevoban,"IP"));
  156. if(DOF2_FileExists(IPBANEADA))
  157. {
  158. new CUENTABANEADA[32];
  159. if(VBIsIP(Arq))
  160. {
  161. if(playerid > -1)
  162. format(Vstring,128,"'- VBan -' La IP %s(%s) ha sido desbaneada por %s.",Arq,DOF2_GetString(Vnuevoban,"Nick"),VBanJugador(playerid));
  163. else
  164. format(Vstring,128,"'- VBan -' La IP %s(%s) ha sido desbaneada por VBot Admin.",Arq,DOF2_GetString(Vnuevoban,"Nick"));
  165. }
  166. else
  167. {
  168. if(playerid > -1)
  169. format(Vstring,128,"'- VBan -' La cuenta %s(%s) was unbanned by %s.",Arq,DOF2_GetString(Vnuevoban,"IP"),VBanJugador(playerid));
  170. else
  171. format(Vstring,128,"'- VBan -' La cuenta %s(%s) was unbanned by VBot Admin.",Arq,DOF2_GetString(Vnuevoban,"IP"));
  172. }
  173.  
  174. format(CUENTABANEADA,32,BanDir,DOF2_GetString(Vnuevoban,"Nick"));
  175. DOF2_RemoveFile(CUENTABANEADA);
  176. DOF2_RemoveFile(IPBANEADA);
  177. }
  178. else
  179. format(Vstring,128,"'- VBan -' La cuenta %s ha sido desbaneada por %s.",Arq,VBanJugador(playerid));
  180.  
  181. SendClientMessageToAll(0xF7A26FFF,Vstring);
  182. DOF2_RemoveFile(Vnuevoban);
  183. return 1;
  184. }
  185.  
  186. stock VBanCheck(playerid) //aqui
  187. {
  188. format(Vnuevoban,32,BanDir,VBanJugador(playerid));
  189. if(DOF2_FileExists(Vnuevoban) && DOF2_GetInt(Vnuevoban,"DiaBaneado") != 0)
  190. {
  191. new Vvano, Vvmes, Vvdia;
  192. getdate(Vvano, Vvmes, Vvdia);
  193. new diaban = DOF2_GetInt(Vnuevoban,"DiaBaneado");
  194. new tempban = DOF2_GetInt(Vnuevoban,"TempBan");
  195.  
  196. if(DOF2_GetInt(Vnuevoban,"MesBaneado") != Vvmes)
  197. {
  198. new UltMes = VBDiasMes(Vvmes)-diaban;
  199. if((Vvdia+UltMes) < tempban)
  200. {
  201. format(Vstring,128,"Aún baneado. Espera %d día(s)",tempban-(Vvdia+Vvdia));
  202. SendClientMessage(playerid,0x10B4EEAA,Vstring);
  203. }
  204. else
  205. {
  206. VUnBan(-1,VBanJugador(playerid));
  207. return SendClientMessage(playerid,0x10B4EEAA,"Tu ban temporal ha terminado.");
  208. }
  209. }
  210. else
  211. {
  212. if(Vvdia-diaban < tempban)
  213. {
  214. format(Vstring,128,"Aún baneado. Espera %d día(s)",tempban-(Vvdia));
  215. SendClientMessage(playerid,0x10B4EEAA,Vstring);
  216. }
  217. else
  218. {
  219. VUnBan(-1,VBanJugador(playerid));
  220. return SendClientMessage(playerid,0x10B4EEAA,"Tu ban temporal ha terminado.");
  221. }
  222. }
  223. }
  224.  
  225. if(DOF2_FileExists(Vnuevoban))
  226. {
  227. VBanLoadInfo(playerid,Vnuevoban);
  228. GetPlayerIp(playerid, VIP, sizeof(VIP));
  229. VBanIP(-1,VIP,DOF2_GetString(Vnuevoban,"Razon"));
  230. return Kick(playerid);
  231. }
  232. GetPlayerIp(playerid, VIP, sizeof(VIP));
  233. format(Vnuevoban,32,BanDir,VIP);
  234. if(DOF2_FileExists(Vnuevoban))
  235. {
  236. VBanLoadInfo(playerid,Vnuevoban);
  237. format(NICKBAN,20,VBanJugador(playerid));
  238. DOF2_SetString(Vnuevoban,"Nick",NICKBAN);
  239. DOF2_SaveFile();
  240. VBanID(-1,playerid,DOF2_GetString(Vnuevoban,"Razon"));
  241. return Kick(playerid);
  242. }
  243. return 1;
  244. }
  245. stock VBanLoadInfo(playerid,Varq[])
  246. {
  247. if(!DOF2_FileExists(Varq))
  248. return SendClientMessage(playerid, ErrorColor,"'- VBan -' Ban Inexistente.");
  249.  
  250. new InfoString[300];
  251. format(InfoString,300,"\n\t{FFFFFF}Nick : {E11D36}%s\n\t{FFFFFF}IP : {E11D36}%s\n\t{FFFFFF}Admin : {E11D36}%s\n\t{FFFFFF}Razon : {E11D36}%s\n\t{FFFFFF}Fecha : {E11D36}%s\n\t{FFFFFF}Hora : {E11D36}%s",DOF2_GetString(Varq,"Nick"),DOF2_GetString(Varq,"IP"),DOF2_GetString(Varq,"Admin"),DOF2_GetString(Varq,"Razon"),DOF2_GetString(Varq,"Fecha"),DOF2_GetString(Varq,"Hora"));
  252. ShowPlayerDialog(playerid, 231, DIALOG_STYLE_MSGBOX, " {FFFFFF}VBan - BanInfo - By: ViniBorn",InfoString,"Cerrar", "");
  253. return 1;
  254. }
  255.  
  256. stock VBanSaveInfo(playerid,Varq[],razon[],bool:BanType)
  257. {
  258. new Vano, Vmes, Vdia, Vhora, Vminuto, Vsegundo;
  259. getdate(Vano, Vmes, Vdia); gettime(Vhora, Vminuto, Vsegundo);
  260. DOF2_SetString(Varq,"IP",VIP);
  261. DOF2_SetString(Varq,"Nick",NICKBAN);
  262. if(playerid > -1)
  263. DOF2_SetString(Varq,"Admin",VBanJugador(playerid));
  264. else
  265. DOF2_SetString(Varq,"Admin","VBot Admin");
  266. format(Vstring,32,"%02d:%02d:%02d", Vhora, Vminuto, Vsegundo);
  267. DOF2_SetString(Varq,"Hora",Vstring);
  268. format(Vstring,32,"%02d/%02d/%d", Vdia, Vmes, Vano);
  269. DOF2_SetString(Varq,"Fecha",Vstring);
  270. DOF2_SetString(Varq,"Razon",razon);
  271. if(BanType == true)
  272. {
  273. DOF2_SetInt(Varq,"TempBan",DiasBaneado);
  274. DOF2_SetInt(Varq,"DiaBaneado",Vdia);
  275. DOF2_SetInt(Varq,"MesBaneado",Vmes);
  276. }
  277. DOF2_SaveFile();
  278. return 1;
  279. }
  280.  
  281. stock VBanJugador(playerid)
  282. {
  283. new pname[MAX_PLAYER_NAME];
  284. GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
  285. return pname;
  286. }
  287.  
  288. stock VBReturnUser(PlayerName[])
  289. {
  290. if(VBIsNumeric(PlayerName))
  291. return strval(PlayerName);
  292. else
  293. {
  294. new found=0, id;
  295. for(new i=0; i < GetMaxPlayers(); i++)
  296. {
  297. if(IsPlayerConnected(i))
  298. {
  299. new foundname[MAX_PLAYER_NAME];
  300. GetPlayerName(i, foundname, MAX_PLAYER_NAME);
  301. new namelen = strlen(foundname);
  302. new bool:searched=false;
  303. for(new pos=0; pos <= namelen; pos++)
  304. {
  305. if(searched != true)
  306. {
  307. if(strfind(foundname,PlayerName,true) == pos)
  308. {
  309. found++;
  310. id = i;
  311. }
  312. }
  313. }
  314. }
  315. }
  316. if(found == 1)
  317. return id;
  318. else
  319. return INVALID_PLAYER_ID;
  320. }
  321. }
  322.  
  323. stock VBDiasMes(Mes)
  324. {
  325. switch(Mes-1)
  326. {
  327. case 0:
  328. Mes = 31;
  329. case 1:
  330. Mes = 31;
  331. case 2:
  332. Mes = 28;
  333. case 3:
  334. Mes = 31;
  335. case 4:
  336. Mes = 30;
  337. case 5:
  338. Mes = 31;
  339. case 6:
  340. Mes = 30;
  341. case 7:
  342. Mes = 31;
  343. case 8:
  344. Mes = 31;
  345. case 9:
  346. Mes = 30;
  347. case 10:
  348. Mes = 31;
  349. case 11:
  350. Mes = 30;
  351. }
  352. return Mes;
  353. }
  354.  
  355. stock VBIsIP(const string[])
  356. {
  357. new count;
  358. for (new i = 0, j = strlen(string); i < j; i++)
  359. if(string[i] > 47 && string[i] < 58)
  360. count++;
  361.  
  362. if(count > 5)
  363. return 1;
  364.  
  365. return 0;
  366. }
  367.  
  368. stock VBIsNumeric(const string[])
  369. {
  370. for (new i = 0, j = strlen(string); i < j; i++)
  371. if(string[i] > '9' || string[i] < '0') return 0;
  372.  
  373. return 1;
  374. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement