Advertisement
ViniBorn

VBan - Bans System - DOF2- By: ViniBorn

Dec 22nd, 2011
774
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.13 KB | None | 0 0
  1. /*
  2.     Name: VBan
  3.     Description: Bans system
  4.     Author: ViniBorn
  5.     Contact : [email protected]
  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 <DOF2>
  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.         DOF2_CreateFile(Vnewban);
  49.         VBanSaveInfo(playerid,Vnewban,reason);
  50.         format(Vnewban,32,BanDir,VBPlayer(giveid));
  51.         DOF2_CreateFile(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.         DOF2_CreateFile(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(DOF2_FileExists(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.         DOF2_CreateFile(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(DOF2_FileExists(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.             DOF2_CreateFile(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.         DOF2_CreateFile(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(!DOF2_FileExists(Vnewban))
  136.         return SendClientMessage(playerid, ErrorColor,"'- VBan -' Ban non-existent.");
  137.  
  138.     new BANNEDIP[32];
  139.     format(BANNEDIP,32,BanDir,DOF2_GetString(Vnewban,"IP"));
  140.     if(DOF2_FileExists(BANNEDIP))
  141.     {
  142.         new BANNEDACC[32];
  143.         if(VBIsIP(Arq))
  144.             format(Vstring,128,"'- VBan -' The IP %s(%s) was unbanned by %s.",Arq,DOF2_GetString(Vnewban,"Nick"),VBPlayer(playerid));
  145.         else
  146.             format(Vstring,128,"'- VBan -' The account %s(%s) was unbanned by %s.",Arq,DOF2_GetString(Vnewban,"IP"),VBPlayer(playerid));
  147.  
  148.         format(BANNEDACC,32,BanDir,DOF2_GetString(Vnewban,"Nick"));
  149.         DOF2_RemoveFile(BANNEDACC);
  150.         DOF2_RemoveFile(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.     DOF2_RemoveFile(Vnewban);
  157.     return 1;
  158. }
  159.  
  160. stock VBanCheck(playerid)
  161. {
  162.     format(Vnewban,32,BanDir,VBPlayer(playerid));
  163.     if(DOF2_FileExists(Vnewban))
  164.     {
  165.         VBanLoadInfo(playerid,Vnewban);
  166.         GetPlayerIp(playerid, VIP, sizeof(VIP));
  167.         VBanIP(-1,VIP,DOF2_GetString(Vnewban,"Reason"));
  168.         return Kick(playerid);
  169.     }
  170.     GetPlayerIp(playerid, VIP, sizeof(VIP));
  171.     format(Vnewban,32,BanDir,VIP);
  172.     if(DOF2_FileExists(Vnewban))
  173.     {
  174.         VBanLoadInfo(playerid,Vnewban);
  175.         format(NICKBAN,20,VBPlayer(playerid));
  176.         DOF2_SetString(Vnewban,"Nick",NICKBAN);
  177.         DOF2_SaveFile();
  178.         VBanID(-1,playerid,DOF2_GetString(Vnewban,"Reason"));
  179.         return Kick(playerid);
  180.     }
  181.     return 1;
  182. }
  183. stock VBanLoadInfo(playerid,Varq[])
  184. {
  185.     if(!DOF2_FileExists(Varq))
  186.         return SendClientMessage(playerid, ErrorColor,"'- VBan -' Ban non-existent.");
  187.  
  188.     new InfoString[300];
  189.     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",DOF2_GetString(Varq,"Nick"),DOF2_GetString(Varq,"IP"),DOF2_GetString(Varq,"Admin"),DOF2_GetString(Varq,"Reason"),DOF2_GetString(Varq,"Date"),DOF2_GetString(Varq,"Hour"));
  190.     ShowPlayerDialog(playerid, 231, DIALOG_STYLE_MSGBOX, "        {FFFFFF}VBan - BanInfo -       By: ViniBorn", InfoString,"Close", "");
  191.     return 1;
  192. }
  193.  
  194. stock VBanSaveInfo(playerid,Varq[],reason[])
  195. {
  196.     new Vyear, Vmonth, Vday, Vhour, Vminute, Vsecond;
  197.     getdate(Vyear, Vmonth, Vday); gettime(Vhour, Vminute, Vsecond);
  198.     DOF2_SetString(Varq,"IP",VIP);
  199.     DOF2_SetString(Varq,"Nick",NICKBAN);
  200.     if(playerid > -1)
  201.         DOF2_SetString(Varq,"Admin",VBPlayer(playerid));
  202.     else
  203.         DOF2_SetString(Varq,"Admin","VBot Admin");
  204.     format(Vstring,32,"%02d:%02d:%02d", Vhour, Vminute, Vsecond);
  205.     DOF2_SetString(Varq,"Hour",Vstring);
  206.     format(Vstring,32,"%02d/%02d/%d", Vday, Vmonth, Vyear);
  207.     DOF2_SetString(Varq,"Date",Vstring);
  208.     DOF2_SetString(Varq,"Reason",reason);
  209.     DOF2_SaveFile();
  210.     return 1;
  211. }
  212.  
  213. stock VBPlayer(playerid)
  214. {
  215.     new pname[MAX_PLAYER_NAME];
  216.     GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
  217.     return pname;
  218. }
  219.  
  220. stock VBReturnUser(PlayerName[])
  221. {
  222.     if(VBIsNumeric(PlayerName))
  223.         return strval(PlayerName);
  224.     else
  225.     {
  226.         new found=0, id;
  227.         for(new i=0; i < GetMaxPlayers(); i++)
  228.         {
  229.             if(IsPlayerConnected(i))
  230.             {
  231.                 new foundname[MAX_PLAYER_NAME];
  232.                 GetPlayerName(i, foundname, MAX_PLAYER_NAME);
  233.                 new namelen = strlen(foundname);
  234.                 new bool:searched=false;
  235.                 for(new pos=0; pos <= namelen; pos++)
  236.                 {
  237.                     if(searched != true)
  238.                     {
  239.                         if(strfind(foundname,PlayerName,true) == pos)
  240.                         {
  241.                             found++;
  242.                             id = i;
  243.                         }
  244.                     }
  245.                 }
  246.             }
  247.         }
  248.         if(found == 1)
  249.             return id;
  250.         else
  251.             return INVALID_PLAYER_ID;
  252.     }
  253. }
  254.  
  255. stock VBIsIP(const string[])
  256. {
  257.     new count;
  258.     for (new i = 0, j = strlen(string); i < j; i++)
  259.         if(string[i] > 47 && string[i] < 58)
  260.             count++;
  261.  
  262.     if(count > 5)
  263.         return 1;
  264.  
  265.     return 0;
  266. }
  267.  
  268. stock VBIsNumeric(const string[])
  269. {
  270.     for (new i = 0, j = strlen(string); i < j; i++)
  271.         if(string[i] > '9' || string[i] < '0') return 0;
  272.  
  273.     return 1;
  274. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement