Advertisement
Guest User

kBan

a guest
Aug 31st, 2013
1,554
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.90 KB | None | 0 0
  1. //====[Includes]====//
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <sscanf2>
  5. #include <DOF2>
  6. #include <Losgs>
  7. //====[Defines]====//
  8. //Dialog
  9. #define DialogBan 1 //Troque o numero "1" para não dar conflito com dialogs do GM
  10. //Cores
  11. #define C_CINZA 0xBEBEBEFF
  12. #define C_VERMELHO 0xFF0000FF
  13. #define C_VERDE 0x00FF00FF
  14. //Mensagem Formatada
  15. #define SendFormatMessage(%0,%1,%2,%3) format(String, sizeof(String),%2,%3) && SendClientMessage(%0, %1, String)
  16. #define SendFormatMessageToAll(%1,%2,%3) format(String, sizeof(String),%2,%3) && SendClientMessageToAll(%1, String)
  17. //Kick
  18. #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0) //by paulor
  19. //====[Defines]====//
  20. new String[256];
  21. new Data[20], Tempo[20];
  22. new Hora, Minuto, Segundo;
  23. new Dia, Mes, Ano;
  24. //====[Stocks]====//
  25. stock PegarNome(playerid)
  26. {
  27.     static name[MAX_PLAYER_NAME];
  28.     GetPlayerName(playerid, name, sizeof(name));
  29.     return name;
  30. }
  31. stock PegarIP(playerid)
  32. {
  33.     new ip[15];
  34.     GetPlayerIp(playerid, ip, sizeof(ip));
  35.     return ip;
  36. }
  37. stock kBan(playerid, motivo[])
  38. {
  39.     new arquivo[50];
  40.     getdate(Ano, Mes, Dia);
  41.     format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
  42.     gettime(Hora, Minuto, Segundo);
  43.     format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
  44.     format(arquivo, sizeof(arquivo), "Banidos/%s.ini", PegarNome(playerid));
  45.     DOF2_CreateFile(arquivo);
  46.     DOF2_SetString(arquivo, "Admin", PegarNome(playerid));
  47.     DOF2_SetString(arquivo, "Data", Data);
  48.     DOF2_SetString(arquivo, "Horario", Tempo);
  49.     DOF2_SetString(arquivo, "Motivo", motivo);
  50.     DOF2_SaveFile();
  51.     return 1;
  52. }
  53. stock kBanIP(playerid)
  54. {
  55.     new arquivo[30];
  56.     getdate(Ano, Mes, Dia);
  57.     format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
  58.     gettime(Hora, Minuto, Segundo);
  59.     format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
  60.     format(arquivo, sizeof(arquivo), "IPs Banidos/%s.ini", PegarIP(playerid));
  61.     DOF2_CreateFile(arquivo);
  62.     DOF2_SetString(arquivo, "Nome", PegarNome(playerid));
  63.     DOF2_SetString(arquivo, "Data", Data);
  64.     DOF2_SetString(arquivo, "Horario", Tempo);
  65.     DOF2_SaveFile();
  66.     return 1;
  67. }
  68. //====[Publics]====//
  69. forward Kicka(p);
  70. public Kicka(p)
  71. {
  72.     #undef Kick
  73.     Kick(p);
  74.     #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0)
  75.     return 1;
  76. }
  77.  
  78. public OnFilterScriptInit()
  79. {
  80.     print("\n=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=");
  81.     print("Sistema de Ban Ativado!");
  82.     print("by MatheusKirTz");
  83.     print("=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=\n");
  84.     return 1;
  85. }
  86. public OnFilterScriptExit()
  87. {
  88.     DOF2_Exit();
  89.     return 1;
  90. }
  91. public OnPlayerConnect(playerid)
  92. {
  93.     format(String, sizeof(String), "Banidos/%s.ini", PegarNome(playerid));
  94.     if(DOF2_FileExists(String))
  95.     {
  96.         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"));
  97.         ShowPlayerDialog(playerid, DialogBan,  DIALOG_STYLE_MSGBOX, "{FF0000}Banimento", String, "Sair", "");
  98.         Kick(playerid);
  99.         return 1;
  100.     }
  101.     format(String, sizeof(String), "IPs Banidos/%s.ini", PegarIP(playerid));
  102.     if(DOF2_FileExists(String))
  103.     {
  104.         SendFormatMessage(playerid, C_VERMELHO, "O IP: {FFFFFF}%s {FF0000}está banido do servidor!", PegarIP(playerid));
  105.         Kick(playerid);
  106.         return 1;
  107.     }
  108.     return 1;
  109. }
  110. CMD:ban(playerid, params[])
  111. {
  112.     new id, Motivo[100];
  113.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  114.     if(sscanf(params, "us[100]", id, Motivo)) return SendClientMessage(playerid, C_CINZA, "USE: /ban [ID] [Motivo]");
  115.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, C_CINZA, "Esse jogador não esta conectado!");
  116.     SendFormatMessageToAll(C_VERMELHO, "[Ban] O Admin {FFFFFF}%s{FF0000} baniu {FFFFFF}%s{FF0000}. Motivo: {FFFFFF}%s", PegarNome(playerid), PegarNome(id), Motivo);
  117.     kBan(id, Motivo);
  118.     kBanIP(id);
  119.     Kick(id);
  120.     //Log
  121.     new Log [ ] = "Logs/Ban.log";
  122.     format(String ,sizeof(String),"O administrador %s baniu: %s. Motivo: %s", PegarNome(playerid), PegarNome(id), Motivo);
  123.     WriteLog(Log, String);
  124.     return 1;
  125. }
  126. CMD:desban(playerid, params[])
  127. {
  128.     new Conta[20];
  129.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_VERMELHO, "[Erro] {FFFFFF}Você não pode usar esse comando!");
  130.     if(sscanf(params, "s[20]", Conta)) return SendClientMessage(playerid, C_CINZA, "USE: /desban [Conta]");
  131.     format(String, sizeof(String), "Banidos/%s.ini", Conta);
  132.     if(DOF2_FileExists(String))
  133.     {
  134.         DOF2_RemoveFile(String);
  135.         SendFormatMessage(playerid, C_VERDE, "Você desbaniu a conta de {FFFFFF}%s", Conta);
  136.         //Log
  137.         new Log [ ] = "Logs/Desban.log";
  138.         format(String ,sizeof(String),"O administrador %s desbaniu a conta: %s", PegarNome(playerid), Conta);
  139.         WriteLog(Log, String);
  140.         return 1;
  141.     }
  142.     else SendClientMessage(playerid, C_VERMELHO, "Essa conta não existe ou não está banida");
  143.     return 1;
  144. }
  145. CMD:desbanip(playerid, params[])
  146. {
  147.     new IPBanido[20];
  148.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_CINZA, "[Erro] Você não pode usar esse comando!");
  149.     if(sscanf(params, "s[20]", IPBanido)) return SendClientMessage(playerid, C_CINZA, "USE: /desbanip [IP]");
  150.     format(String, sizeof(String), "IPs Banidos/%s.ini", IPBanido);
  151.     if(DOF2_FileExists(String))
  152.     {
  153.         DOF2_RemoveFile(String);
  154.         SendFormatMessage(playerid, C_VERDE, "Você desbaniu o IP {FFFFFF}%s", IPBanido);
  155.         //Log
  156.         new Log [ ] = "Logs/DesbanIP.log";
  157.         format(String ,sizeof(String),"O administrador %s desbaniu o IP: %s", PegarNome(playerid), IPBanido);
  158.         WriteLog(Log, String);
  159.         return 1;
  160.     }
  161.     else SendClientMessage(playerid, C_VERMELHO, "Esse IP não existe ou não está banido");
  162.     return 1;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement