Advertisement
Guest User

kBan v2.0

a guest
Feb 16th, 2014
1,756
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.06 KB | None | 0 0
  1. //====[Includes]====//
  2. #include <a_samp>
  3. #include <zcmd>
  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. CMD:ban(playerid, params[])
  147. {
  148.     new id, Motivo[100];
  149.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  150.     if(sscanf(params, "us[100]", id, Motivo)) return SendClientMessage(playerid, C_CINZA, "USE: /ban [ID] [Motivo]");
  151.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, C_CINZA, "Esse jogador não esta conectado!");
  152.     SendFormatMessageToAll(C_VERMELHO, "[Ban] O Admin {FFFFFF}%s{FF0000} baniu {FFFFFF}%s{FF0000}. Motivo: {FFFFFF}%s", PegarNome(playerid), PegarNome(id), Motivo);
  153.     kBan(id, Motivo);
  154.     kBanIP(id);
  155.     Kick(id);
  156.     //Log
  157.     new Log [ ] = "Logs/Ban.log";
  158.     format(String ,sizeof(String),"O administrador %s baniu: %s. Motivo: %s", PegarNome(playerid), PegarNome(id), Motivo);
  159.     WriteLog(Log, String);
  160.     return 1;
  161. }
  162. CMD:bantemp(playerid, params[])
  163. {
  164.     new id, Dias, Motivo[100];
  165.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  166.     if(sscanf(params, "uds[100]", id, Dias, Motivo)) return SendClientMessage(playerid, C_CINZA, "USE: /bantemp [ID] [Dias] [Motivo]");
  167.     if(Dias < 0) return SendClientMessage(playerid, C_CINZA, "Digite um numero de dias validos!");
  168.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, C_CINZA, "Esse jogador não esta conectado!");
  169.     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);
  170.     kBanTemp(id, Dias, Motivo);
  171.     kBanIP(id);
  172.     Kick(id);
  173.     //Log
  174.     new Log [ ] = "Logs/BanTemp.log";
  175.     format(String ,sizeof(String),"O administrador %s baniu %s por: %d dias. Motivo: %s", PegarNome(playerid), PegarNome(id), Dias, Motivo);
  176.     WriteLog(Log, String);
  177.     return 1;
  178. }
  179. CMD:desban(playerid, params[])
  180. {
  181.     new Conta[20];
  182.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  183.     if(sscanf(params, "s[20]", Conta)) return SendClientMessage(playerid, C_CINZA, "USE: /desban [Conta]");
  184.     format(String, sizeof(String), "Banidos/%s.ini", Conta);
  185.     if(DOF2_FileExists(String))
  186.     {
  187.         DOF2_RemoveFile(String);
  188.         SendFormatMessage(playerid, C_VERDE, "Você desbaniu a conta de {FFFFFF}%s", Conta);
  189.         //Log
  190.         new Log [ ] = "Logs/Desban.log";
  191.         format(String ,sizeof(String),"O administrador %s desbaniu a conta: %s", PegarNome(playerid), Conta);
  192.         WriteLog(Log, String);
  193.         return 1;
  194.     }
  195.     else SendClientMessage(playerid, C_VERMELHO, "Essa conta não existe ou não está banida");
  196.     return 1;
  197. }
  198. CMD:desbanip(playerid, params[])
  199. {
  200.     new IPBanido[20];
  201.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_CINZA, "[Erro] Você não pode usar esse comando!");
  202.     if(sscanf(params, "s[20]", IPBanido)) return SendClientMessage(playerid, C_CINZA, "USE: /desbanip [IP]");
  203.     format(String, sizeof(String), "IPs Banidos/%s.ini", IPBanido);
  204.     if(DOF2_FileExists(String))
  205.     {
  206.         DOF2_RemoveFile(String);
  207.         SendFormatMessage(playerid, C_VERDE, "Você desbaniu o IP {FFFFFF}%s", IPBanido);
  208.         //Log
  209.         new Log [ ] = "Logs/DesbanIP.log";
  210.         format(String ,sizeof(String),"O administrador %s desbaniu o IP: %s", PegarNome(playerid), IPBanido);
  211.         WriteLog(Log, String);
  212.         return 1;
  213.     }
  214.     else SendClientMessage(playerid, C_VERMELHO, "Esse IP não existe ou não está banido");
  215.     return 1;
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement