Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Nome: VBan
- Descrição: Sistema de bans
- Autor: ViniBorn
- Contato : vini-elite@hotmail.com
- *** *** *** ***** *** *** *** *** ***** ******** ****** ***
- *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
- *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
- *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
- ****** *** *** ****** *** *** **** ***** *** *** *** ******
- Não retire os créditos.
- Seu nome é valioso, não suje-o.
- Observações :
- - O diretório padrão para salvar os bans é : scriptfiles/bans. Crie a pasta bans.
- */
- #include <a_samp>
- #include <DOF2>
- #define BanDir "Bans/%s.ini" // Diretório dos bans
- #define CorErro 0xAFAFAFAA
- #define CorBan 0xE11D36AA
- new VIP[32],Vnewban[32],Vstring[128],NICKBAN[20],DiasBan;
- stock VBanID(playerid,giveid,motivo[])
- {
- format(NICKBAN,20,VBanPlayer(giveid));
- if(playerid > -1)
- {
- format(Vstring,128,"'- VBan -' O jogador %s foi banido por %s. Motivo:
- %s",VBanPlayer(giveid),VBanPlayer(playerid),motivo);
- SendClientMessageToAll(CorBan,Vstring);
- GetPlayerIp(giveid, VIP, sizeof(VIP));
- format(Vnewban,32,BanDir,VIP);
- DOF2_CreateFile(Vnewban);
- VBanSaveInfo(playerid,Vnewban,motivo,false);
- format(Vnewban,32,BanDir,VBanPlayer(giveid));
- DOF2_CreateFile(Vnewban);
- VBanSaveInfo(playerid,Vnewban,motivo,false);
- }
- else
- {
- format(Vnewban,32,BanDir,VBanPlayer(giveid));
- format(Vstring,128,"'- VBan -' O jogador %s foi banido por VBot Admin(%s). Motivo:
- %s",VBanPlayer(giveid),DOF2_GetString(Vnewban,"Admin"),motivo);
- SendClientMessageToAll(CorBan,Vstring);
- DOF2_CreateFile(Vnewban);
- VBanSaveInfo(-1,Vnewban,motivo,false);
- }
- if(IsPlayerConnected(giveid))
- VBanLoadInfo(giveid,Vnewban);
- SetTimerEx("VBKick",300, false, "i", giveid);
- return 1;
- }
- stock VTempBan(playerid,giveid,tempo,motivo[])
- {
- DiasBan = tempo;
- format(NICKBAN,20,VBanPlayer(giveid));
- format(Vstring,128,"'- VBan -' O jogador %s foi temporariamente banido por %s. Tempo: %d dias.
- Motivo: %s",VBanPlayer(giveid),VBanPlayer(playerid),tempo,motivo);
- SendClientMessageToAll(CorBan,Vstring);
- GetPlayerIp(giveid, VIP, sizeof(VIP));
- format(Vnewban,32,BanDir,VIP);
- DOF2_CreateFile(Vnewban);
- VBanSaveInfo(playerid,Vnewban,motivo,true);
- format(Vnewban,32,BanDir,VBanPlayer(giveid));
- DOF2_CreateFile(Vnewban);
- VBanSaveInfo(playerid,Vnewban,motivo,true);
- SetTimerEx("VBKick",300, false, "i", giveid);
- }
- stock VBanNick(playerid,nick[],motivo[])
- {
- format(Vnewban,32,BanDir,nick);
- if(DOF2_FileExists(Vnewban))
- return SendClientMessage(playerid, CorErro,"'- VBan -' Este nick já está banido.");
- new giveid;
- giveid = VBReturnUser(nick);
- if(!IsPlayerConnected(giveid))
- {
- format(NICKBAN,20,nick);
- format(Vstring,128,"'- VBan -' O nick %s foi banido por %s. Motivo:
- %s",nick,VBanPlayer(playerid),motivo);
- SendClientMessageToAll(CorBan,Vstring);
- DOF2_CreateFile(Vnewban);
- return VBanSaveInfo(playerid,Vnewban,motivo,false);
- }
- else
- return VBanID(playerid,giveid,motivo);
- }
- stock VBanIP(playerid,IP2[],motivo[])
- {
- format(Vnewban,32,BanDir,IP2);
- if(DOF2_FileExists(Vnewban))
- return SendClientMessage(playerid, CorErro,"'- VBan -' Este IP já está banido");
- if(playerid > -1)
- {
- new ban;
- for(new i=0, j = GetMaxPlayers(); i < j; i++)
- if(IsPlayerConnected(i))
- {
- GetPlayerIp(i, VIP, sizeof(VIP));
- if(!strcmp(VIP, IP2))
- {
- ban++;
- VBanID(playerid,i,motivo);
- }
- }
- if(ban == 0)
- {
- DOF2_CreateFile(Vnewban);
- format(Vstring,128,"'- VBan -' O IP %s foi banido por %s. Motivo:
- %s",IP2,VBanPlayer(playerid),motivo);
- SendClientMessageToAll(CorBan,Vstring);
- VBanSaveInfo(playerid,Vnewban,motivo,false);
- }
- }
- else
- {
- format(Vnewban,32,BanDir,IP2);
- DOF2_CreateFile(Vnewban);
- VBanSaveInfo(-1,Vnewban,"Ban evade",false);
- format(Vstring,128,"'- VBan -' O IP %s foi banido por VBot Admin(%s). Motivo: Ban
- evade",IP2,DOF2_GetString(Vnewban,"Nick"));
- SendClientMessageToAll(CorBan,Vstring);
- }
- return 1;
- }
- stock VUnBan(playerid,Arq[])
- {
- format(Vnewban,32,BanDir,Arq);
- if(!DOF2_FileExists(Vnewban))
- return SendClientMessage(playerid, CorErro,"'- VBan -' Ban inexistente.");
- new BANNEDIP[32];
- format(BANNEDIP,32,BanDir,DOF2_GetString(Vnewban,"IP"));
- if(DOF2_FileExists(BANNEDIP))
- {
- new BANNEDACC[32];
- if(VBIsIP(Arq))
- {
- if(playerid > -1)
- format(Vstring,128,"'- VBan -' O IP %s(%s) foi desbanido por
- %s.",Arq,DOF2_GetString(Vnewban,"Nick"),VBanPlayer(playerid));
- else
- format(Vstring,128,"'- VBan -' O IP %s(%s) foi desbanido por VBot
- Admin.",Arq,DOF2_GetString(Vnewban,"Nick"));
- }
- else
- {
- if(playerid > -1)
- format(Vstring,128,"'- VBan -' A conta %s(%s) foi desbanida por
- %s.",Arq,DOF2_GetString(Vnewban,"IP"),VBanPlayer(playerid));
- else
- format(Vstring,128,"'- VBan -' A conta %s(%s) foi desbanida por VBot
- Admin.",Arq,DOF2_GetString(Vnewban,"IP"));
- }
- format(BANNEDACC,32,BanDir,DOF2_GetString(Vnewban,"Nick"));
- DOF2_RemoveFile(BANNEDACC);
- DOF2_RemoveFile(BANNEDIP);
- }
- else
- format(Vstring,128,"'- VBan -' A conta %s foi desbanida por
- %s.",Arq,VBanPlayer(playerid));
- //SendClientMessageToAll(0x10B4EEAA,Vstring);
- SendClientMessageToAll(0xF7A26FFF,Vstring);
- DOF2_RemoveFile(Vnewban);
- return 1;
- }
- stock VBanCheck(playerid)
- {
- format(Vnewban,32,BanDir,VBanPlayer(playerid));
- if(DOF2_FileExists(Vnewban) && DOF2_GetInt(Vnewban,"DiaBan") != 0)
- {
- new Vvano, Vvmes, Vvdia;
- getdate(Vvano, Vvmes, Vvdia);
- new diaban = DOF2_GetInt(Vnewban,"DiaBan");
- new tempban = DOF2_GetInt(Vnewban,"TempBan");
- if(DOF2_GetInt(Vnewban,"MesBan") != Vvmes)
- {
- new LastMonth = VBDiasMes(Vvmes)-diaban;
- if((Vvdia+LastMonth) < tempban)
- {
- format(Vstring,128,"Ainda banido. Aguarde %d
- dia(s)",tempban-(Vvdia+LastMonth));
- SendClientMessage(playerid,0x10B4EEAA,Vstring);
- }
- else
- {
- VUnBan(-1,VBanPlayer(playerid));
- return SendClientMessage(playerid,0x10B4EEAA,"Seu ban temporário acabou");
- }
- }
- else
- {
- if(Vvdia-diaban < tempban)
- {
- format(Vstring,128,"Ainda banido. Aguarde %d dia(s)",tempban-(Vvdia));
- SendClientMessage(playerid,0x10B4EEAA,Vstring);
- }
- else
- {
- VUnBan(-1,VBanPlayer(playerid));
- return SendClientMessage(playerid,0x10B4EEAA,"Seu ban temporário acabou");
- }
- }
- }
- if(DOF2_FileExists(Vnewban))
- {
- VBanLoadInfo(playerid,Vnewban);
- GetPlayerIp(playerid, VIP, sizeof(VIP));
- VBanIP(-1,VIP,DOF2_GetString(Vnewban,"Motivo"));
- SetTimerEx("VBKick",300, false, "i", playerid);
- return true;
- }
- GetPlayerIp(playerid, VIP, sizeof(VIP));
- format(Vnewban,32,BanDir,VIP);
- if(DOF2_FileExists(Vnewban))
- {
- VBanLoadInfo(playerid,Vnewban);
- format(NICKBAN,20,VBanPlayer(playerid));
- DOF2_SetString(Vnewban,"Nick",NICKBAN);
- DOF2_SaveFile();
- VBanID(-1,playerid,DOF2_GetString(Vnewban,"Motivo"));
- SetTimerEx("VBKick",300, false, "i", playerid);
- }
- return 1;
- }
- forward VBKick(playerid);public VBKick(playerid) Kick(playerid);
- stock VBanLoadInfo(playerid,Varq[])
- {
- if(!DOF2_FileExists(Varq))
- return SendClientMessage(playerid, CorErro,"'- VBan -' Ban inexistente.");
- new InfoString[300];
- format(InfoString,300,"\n\t{FFFFFF}Nick : {E11D36}%s\n\t{FFFFFF}IP :
- {E11D36}%s\n\t{FFFFFF}Admin : {E11D36}%s\n\t{FFFFFF}Motivo : {E11D36}%s\n\t{FFFFFF}Data :
- {E11D36}%s\n\t{FFFFFF}Horário :
- {E11D36}%s",DOF2_GetString(Varq,"Nick"),DOF2_GetString(Varq,"IP"),DOF2_GetString(Varq,"Admin"),DOF2_Get
- String(Varq,"Motivo"),DOF2_GetString(Varq,"Data"),DOF2_GetString(Varq,"Hora"));
- ShowPlayerDialog(playerid, 231, DIALOG_STYLE_MSGBOX, " {FFFFFF}VBan - BanInfo - By:
- ViniBorn",InfoString,"Fechar", "");
- return 1;
- }
- stock VBanSaveInfo(playerid,Varq[],motivo[],bool:BanType)
- {
- new Vano, Vmes, Vdia, Vhora, Vminuto, Vsegundo;
- getdate(Vano, Vmes, Vdia); gettime(Vhora, Vminuto, Vsegundo);
- DOF2_SetString(Varq,"IP",VIP);
- DOF2_SetString(Varq,"Nick",NICKBAN);
- if(playerid > -1)
- DOF2_SetString(Varq,"Admin",VBanPlayer(playerid));
- else
- DOF2_SetString(Varq,"Admin","VBot Admin");
- format(Vstring,32,"%02d:%02d:%02d", Vhora, Vminuto, Vsegundo);
- DOF2_SetString(Varq,"Hora",Vstring);
- format(Vstring,32,"%02d/%02d/%d", Vdia, Vmes, Vano);
- DOF2_SetString(Varq,"Data",Vstring);
- DOF2_SetString(Varq,"Motivo",motivo);
- if(BanType == true)
- {
- DOF2_SetInt(Varq,"TempBan",DiasBan);
- DOF2_SetInt(Varq,"DiaBan",Vdia);
- DOF2_SetInt(Varq,"MesBan",Vmes);
- }
- DOF2_SaveFile();
- return 1;
- }
- stock VBanPlayer(playerid)
- {
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
- return pname;
- }
- stock VBReturnUser(PlayerName[])
- {
- if(VBIsNumeric(PlayerName))
- return strval(PlayerName);
- else
- {
- new found=0, id;
- for(new i=0; i < GetMaxPlayers(); i++)
- {
- if(IsPlayerConnected(i))
- {
- new foundname[MAX_PLAYER_NAME];
- GetPlayerName(i, foundname, MAX_PLAYER_NAME);
- new namelen = strlen(foundname);
- new bool:searched=false;
- for(new pos=0; pos <= namelen; pos++)
- {
- if(searched != true)
- {
- if(strfind(foundname,PlayerName,true) == pos)
- {
- found++;
- id = i;
- }
- }
- }
- }
- }
- if(found == 1)
- return id;
- else
- return INVALID_PLAYER_ID;
- }
- }
- stock VBDiasMes(Month)
- {
- switch(Month-1)
- {
- case 0:
- Month = 31;
- case 1:
- Month = 31;
- case 2:
- Month = 28;
- case 3:
- Month = 31;
- case 4:
- Month = 30;
- case 5:
- Month = 31;
- case 6:
- Month = 30;
- case 7:
- Month = 31;
- case 8:
- Month = 31;
- case 9:
- Month = 30;
- case 10:
- Month = 31;
- case 11:
- Month = 30;
- }
- return Month;
- }
- stock VBIsIP(const string[])
- {
- new count;
- for (new i = 0, j = strlen(string); i < j; i++)
- if(string[i] > 47 && string[i] < 58)
- count++;
- if(count > 5)
- return 1;
- return 0;
- }
- stock VBIsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- if(string[i] > '9' || string[i] < '0') return 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement