Advertisement
Guest User

kBan v2.0

a guest
Feb 16th, 2014
829
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.29 KB | None | 0 0
  1. //====[Includes]====//
  2. #include <a_samp>
  3. #include <icmd>
  4. #include <sscanf2>
  5. #include <DOF2>
  6. #include <Losgs>
  7. #include <ConvertDays>
  8. //====[Defines]====//
  9. //Dialog
  10. #define DialogBan 1 //Troque o numero "1" para não dar conflito com dialogs do GM
  11. //Cores
  12. #define C_CINZA 0xBEBEBEFF
  13. #define C_VERMELHO 0xFF0000FF
  14. #define C_VERDE 0x00FF00FF
  15. //Mensagem Formatada
  16. #define SendFormatMessage(%0,%1,%2,%3) format(String, sizeof(String),%2,%3) && SendClientMessage(%0, %1, String)
  17. #define SendFormatMessageToAll(%1,%2,%3) format(String, sizeof(String),%2,%3) && SendClientMessageToAll(%1, String)
  18. //Kick
  19. #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0) //by paulor
  20. //====[Defines]====//
  21. new String[256];
  22. new Data[20], Tempo[20];
  23. new Hora, Minuto, Segundo;
  24. new Dia, Mes, Ano;
  25. new BanTemp[MAX_PLAYERS];
  26. //====[Stocks]====//
  27. stock PegarNome(playerid)
  28. {
  29.     static name[MAX_PLAYER_NAME];
  30.     GetPlayerName(playerid, name, sizeof(name));
  31.     return name;
  32. }
  33. stock PegarIP(playerid)
  34. {
  35.     static ip[15];
  36.     GetPlayerIp(playerid, ip, sizeof(ip));
  37.     return ip;
  38. }
  39. stock kBan(playerid, motivo[])
  40. {
  41.     new arquivo[50];
  42.     getdate(Ano, Mes, Dia);
  43.     format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
  44.     gettime(Hora, Minuto, Segundo);
  45.     format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
  46.     format(arquivo, sizeof(arquivo), "Banidos/%s.ini", PegarNome(playerid));
  47.     DOF2_CreateFile(arquivo);
  48.     DOF2_SetString(arquivo, "Admin", PegarNome(playerid));
  49.     DOF2_SetString(arquivo, "Data", Data);
  50.     DOF2_SetString(arquivo, "Horario", Tempo);
  51.     DOF2_SetString(arquivo, "Motivo", motivo);
  52.     DOF2_SaveFile();
  53.     return 1;
  54. }
  55. stock kBanIP(playerid)
  56. {
  57.     new arquivo[30];
  58.     getdate(Ano, Mes, Dia);
  59.     format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
  60.     gettime(Hora, Minuto, Segundo);
  61.     format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
  62.     format(arquivo, sizeof(arquivo), "IPs Banidos/%s.ini", PegarIP(playerid));
  63.     DOF2_CreateFile(arquivo);
  64.     DOF2_SetString(arquivo, "Nome", PegarNome(playerid));
  65.     DOF2_SetString(arquivo, "Data", Data);
  66.     DOF2_SetString(arquivo, "Horario", Tempo);
  67.     DOF2_SaveFile();
  68.     return 1;
  69. }
  70. stock kBanTemp(playerid, dias, motivo[])
  71. {
  72.     new arquivo[50];
  73.     BanTemp[playerid] = ConvertDays(dias);
  74.     format(arquivo, sizeof(arquivo), "Banidos Temp/%s.ini", PegarNome(playerid));
  75.     DOF2_CreateFile(arquivo);
  76.     DOF2_SetInt(arquivo, "Dias", BanTemp[playerid]);
  77.     DOF2_SetString(arquivo, "Motivo", motivo);
  78.     DOF2_SaveFile();
  79.     return 1;
  80. }
  81. //====[Publics]====//
  82. forward Kicka(p);
  83. public Kicka(p)
  84. {
  85.     #undef Kick
  86.     Kick(p);
  87.     #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0)
  88.     return 1;
  89. }
  90.  
  91. public OnFilterScriptInit()
  92. {
  93.     print("\n=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=");
  94.     print("Sistema de Ban v2.0 Ativado!");
  95.     print("by Vegas");
  96.     print("=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=\n");
  97.     return 1;
  98. }
  99. public OnFilterScriptExit()
  100. {
  101.     DOF2_Exit();
  102.     return 1;
  103. }
  104. public OnPlayerConnect(playerid)
  105. {
  106.     BanTemp[playerid] = 0;
  107.     format(String, sizeof(String), "Banidos Temp/%s.ini", PegarNome(playerid));
  108.     if(DOF2_FileExists(String))
  109.     {
  110.         BanTemp[playerid] = DOF2_GetInt(String, "Dias");
  111.         if(VerifyExpiredDays(BanTemp[playerid]))
  112.         {
  113.             SendClientMessage(playerid, -1, "Seu tempo de Banimento acabou!");
  114.             BanTemp[playerid] = 0;
  115.             format(String, sizeof(String), "IPs Banidos/%s.ini", PegarIP(playerid));
  116.             if(DOF2_FileExists(String))
  117.             {
  118.                 DOF2_RemoveFile(String);
  119.             }
  120.         }
  121.         else
  122.         {
  123.             SendFormatMessage(playerid, C_VERMELHO, "Você ainda está banido! Faltam %s dias", ConvertToDays(BanTemp[playerid]));
  124.             Kick(playerid);
  125.             return 1;
  126.         }
  127.         return 1;
  128.     }
  129.     format(String, sizeof(String), "Banidos/%s.ini", PegarNome(playerid));
  130.     if(DOF2_FileExists(String))
  131.     {
  132.         format(String, sizeof(String), "{FFFFFF}Você foi {FF0000}banido\nAdmin: {FFFFFF}%s\n{FF0000}Motivo: {FFFFFF}%s\n{FF0000}Dia: {FFFFFF}%s\n{FF0000}Horario: {FFFFFF}%s\n{FF0000}Tire SS para revisão no Forum!", DOF2_GetString(String, "Admin"), DOF2_GetString(String, "Motivo"), DOF2_GetString(String, "Data"), DOF2_GetString(String, "Horario"));
  133.         ShowPlayerDialog(playerid, DialogBan,  DIALOG_STYLE_MSGBOX, "{FF0000}Banimento", String, "Sair", "");
  134.         Kick(playerid);
  135.         return 1;
  136.     }
  137.     format(String, sizeof(String), "IPs Banidos/%s.ini", PegarIP(playerid));
  138.     if(DOF2_FileExists(String))
  139.     {
  140.         SendFormatMessage(playerid, C_VERMELHO, "O IP: {FFFFFF}%s {FF0000}está banido do servidor!", PegarIP(playerid));
  141.         Kick(playerid);
  142.         return 1;
  143.     }
  144.     return 1;
  145. }
  146. public OnPlayerCommandText(playerid, commandid, params[])
  147. {
  148.     switch(commandid)
  149.     {
  150.         case iscmd("b,a,n"):
  151.         {
  152.             new id, Motivo[100];
  153.             if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  154.             if(sscanf(params, "us[100]", id, Motivo)) return SendClientMessage(playerid, C_CINZA, "USE: /ban [ID] [Motivo]");
  155.             if(!IsPlayerConnected(id)) return SendClientMessage(playerid, C_CINZA, "Esse jogador não esta conectado!");
  156.             SendFormatMessageToAll(C_VERMELHO, "[Ban] O Admin {FFFFFF}%s{FF0000} baniu {FFFFFF}%s{FF0000}. Motivo: {FFFFFF}%s", PegarNome(playerid), PegarNome(id), Motivo);
  157.             kBan(id, Motivo);
  158.             kBanIP(id);
  159.             Kick(id);
  160.             //Log
  161.             new Log [ ] = "Logs/Ban.log";
  162.             format(String ,sizeof(String),"O administrador %s baniu: %s. Motivo: %s", PegarNome(playerid), PegarNome(id), Motivo);
  163.             WriteLog(Log, String);
  164.             return 1;
  165.         }
  166.         case iscmd("b,a,n,t,e,m,p"):
  167.         {
  168.             new id, Dias, Motivo[100];
  169.             if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  170.             if(sscanf(params, "uds[100]", id, Dias, Motivo)) return SendClientMessage(playerid, C_CINZA, "USE: /bantemp [ID] [Dias] [Motivo]");
  171.             if(Dias < 0) return SendClientMessage(playerid, C_CINZA, "Digite um numero de dias validos!");
  172.             if(!IsPlayerConnected(id)) return SendClientMessage(playerid, C_CINZA, "Esse jogador não esta conectado!");
  173.             SendFormatMessageToAll(C_VERMELHO, "[Ban] O Admin {FFFFFF}%s{FF0000} baniu {FFFFFF}%s{FF0000} por: {FFFFFF}%d {FF0000}dias. Motivo: {FFFFFF}%s", PegarNome(playerid), PegarNome(id), Dias, Motivo);
  174.             kBanTemp(id, Dias, Motivo);
  175.             kBanIP(id);
  176.             Kick(id);
  177.             //Log
  178.             new Log [ ] = "Logs/BanTemp.log";
  179.             format(String ,sizeof(String),"O administrador %s baniu %s por: %d dias. Motivo: %s", PegarNome(playerid), PegarNome(id), Dias, Motivo);
  180.             WriteLog(Log, String);
  181.             return 1;
  182.         }
  183.         case iscmd("d,e,s,b,a,n"):
  184.         {
  185.             new Conta[20];
  186.             if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  187.             if(sscanf(params, "s[20]", Conta)) return SendClientMessage(playerid, C_CINZA, "USE: /desban [Conta]");
  188.             format(String, sizeof(String), "Banidos/%s.ini", Conta);
  189.             if(DOF2_FileExists(String))
  190.             {
  191.                 DOF2_RemoveFile(String);
  192.                 SendFormatMessage(playerid, C_VERDE, "Você desbaniu a conta de {FFFFFF}%s", Conta);
  193.                 //Log
  194.                 new Log [ ] = "Logs/Desban.log";
  195.                 format(String ,sizeof(String),"O administrador %s desbaniu a conta: %s", PegarNome(playerid), Conta);
  196.                 WriteLog(Log, String);
  197.                 return 1;
  198.             }
  199.             else SendClientMessage(playerid, C_VERMELHO, "Essa conta não existe ou não está banida");
  200.             return 1;
  201.         }
  202.         case iscmd("d,e,s,b,a,n,i,p"):
  203.         {
  204.             new IPBanido[20];
  205.             if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_CINZA, "[Erro] Você não pode usar esse comando!");
  206.             if(sscanf(params, "s[20]", IPBanido)) return SendClientMessage(playerid, C_CINZA, "USE: /desbanip [IP]");
  207.             format(String, sizeof(String), "IPs Banidos/%s.ini", IPBanido);
  208.             if(DOF2_FileExists(String))
  209.             {
  210.                 DOF2_RemoveFile(String);
  211.                 SendFormatMessage(playerid, C_VERDE, "Você desbaniu o IP {FFFFFF}%s", IPBanido);
  212.                 //Log
  213.                 new Log [ ] = "Logs/DesbanIP.log";
  214.                 format(String ,sizeof(String),"O administrador %s desbaniu o IP: %s", PegarNome(playerid), IPBanido);
  215.                 WriteLog(Log, String);
  216.                 return 1;
  217.             }
  218.             else SendClientMessage(playerid, C_VERMELHO, "Esse IP não existe ou não está banido");
  219.             return 1;
  220.         }
  221.     }
  222.     return SendClientMessage(playerid,-1, "Comando desconhecido");
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement