Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Nombre: VBan
- Descripción: Sistema de Bans
- Autor: ViniBorn
- Contacto : vini-elite@hotmail.com
- País : Brasil
- *** *** *** ***** *** *** *** *** ***** ******** ****** ***
- *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
- *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
- *** *** *** *** *** *** *** *** ** *** *** *** *** *** *** ***
- ****** *** *** ****** *** *** **** ***** *** *** *** ******
- No remover los créditos.
- Su nombre es valioso, no lo desperdicie.
- Comentarios:
- - El directorio por "default" para guardar los Bans es: scriptfiles/bans. Crear carpeta llamada "bans" en scriptfiles.
- */
- #include <a_samp>
- #include <DOF2>
- #define BanDir "/bans/%s.ini" // Directorio de los bans
- #define ErrorColor 0xAFAFAFAA
- #define BanColor 0xE11D36AA
- new VIP[32],Vnuevoban[32],Vstring[128],NICKBAN[20],DiasBaneado;
- stock VBanID(playerid,giveid,razon[])
- {
- format(NICKBAN,20,VBanJugador(giveid));
- if(playerid > -1)
- {
- format(Vstring,128,"'- VBan -' El jugador %s ha sido baneado por %s. Razon: %s",VBanJugador(giveid),VBanJugador(playerid),razon);
- SendClientMessageToAll(BanColor,Vstring);
- GetPlayerIp(giveid, VIP, sizeof(VIP));
- format(Vnuevoban,32,BanDir,VIP);
- DOF2_CreateFile(Vnuevoban);
- VBanSaveInfo(playerid,Vnuevoban,razon,false);
- format(Vnuevoban,32,BanDir,VBanJugador(giveid));
- DOF2_CreateFile(Vnuevoban);
- VBanSaveInfo(playerid,Vnuevoban,razon,false);
- }
- else
- {
- format(Vnuevoban,32,BanDir,VBanJugador(giveid));
- format(Vstring,128,"'- VBan -' El jugador %s ha sido baneado por VBot Admin(%s). Razon: %s",VBanJugador(giveid),DOF2_GetString(Vnuevoban,"Admin"),razon);
- SendClientMessageToAll(BanColor,Vstring);
- DOF2_CreateFile(Vnuevoban);
- VBanSaveInfo(-1,Vnuevoban,razon,false);
- }
- if(IsPlayerConnected(giveid))
- VBanLoadInfo(giveid,Vnuevoban);
- Kick(giveid);
- return 1;
- }
- stock VTempBan(playerid,giveid,tiempo,razon[])
- {
- DiasBaneado = time;
- format(NICKBAN,20,VBanJugador(giveid));
- format(Vstring,128,"'- VBan -' El jugador %s ha sido baneado temporalmente por %s. Tiempo: %d días. Razon: %s",VBanJugador(giveid),VBanJugador(playerid),tiempo,razon);
- SendClientMessageToAll(BanColor,Vstring);
- GetPlayerIp(giveid, VIP, sizeof(VIP));
- format(Vnuevoban,32,BanDir,VIP);
- DOF2_CreateFile(Vnuevoban);
- VBanSaveInfo(playerid,Vnuevoban,razon,true);
- format(Vnuevoban,32,BanDir,VBanJugador(giveid));
- DOF2_CreateFile(Vnuevoban);
- VBanSaveInfo(playerid,Vnuevoban,razon,true);
- Kick(giveid);
- }
- stock VBanNick(playerid,nick[],razon[])
- {
- format(Vnuevoban,32,BanDir,nick);
- if(DOF2_FileExists(Vnuevoban))
- return SendClientMessage(playerid, ErrorColor,"'- VBan -' Este nick ya esta baneado.");
- new giveid;
- giveid = VBReturnUser(nick);
- if(!IsPlayerConnected(giveid))
- {
- format(NICKBAN,20,nick);
- format(Vstring,128,"'- VBan -' El nick %s ha sido baneado por %s. Razon: %s",nick,VBanJugador(playerid),razon);
- SendClientMessageToAll(BanColor,Vstring);
- DOF2_CreateFile(Vnuevoban);
- return VBanSaveInfo(playerid,Vnuevoban,razon,false);
- }
- else
- return VBanID(playerid,giveid,razon);
- }
- stock VBanIP(playerid,IP2[],razon[])
- {
- format(Vnuevoban,32,BanDir,IP2);
- if(DOF2_FileExists(Vnuevoban))
- return SendClientMessage(playerid, ErrorColor,"'- VBan -' Esta IP ya esta baneada.");
- if(playerid > -1)
- {
- new ban;
- for(new i, j = GetMaxPlayers(); i < j; i++)
- if(IsPlayerConnected(i))
- {
- GetPlayerIp(i, VIP, sizeof(VIP));
- if(!strcmp(VIP, IP2))
- {
- ban++;
- VBanID(playerid,i,razon);
- }
- }
- if(ban == 0)
- {
- DOF2_CreateFile(Vnuevoban);
- format(Vstring,128,"'- VBan -' La IP s ha sido baneada por %s. Razon: %s",IP2,VBanJugador(playerid),razon);
- SendClientMessageToAll(BanColor,Vstring);
- VBanSaveInfo(playerid,Vnuevoban,razon,false);
- }
- }
- else
- {
- format(Vnuevoban,32,BanDir,IP2);
- DOF2_CreateFile(Vnuevoban);
- VBanSaveInfo(-1,Vnuevoban,DOF2_GetString(Vnuevoban,"Razon"),false);
- format(Vstring,128,"'- VBan -' La IP %s ha sido baneada por VBot Admin(%s). Razon: Evadir Ban",IP2,DOF2_GetString(Vnuevoban,"Nick"));
- SendClientMessageToAll(BanColor,Vstring);
- }
- return 1;
- }
- stock VUnBan(playerid,Arq[])
- {
- format(Vnuevoban,32,BanDir,Arq);
- if(!DOF2_FileExists(Vnuevoban))
- return SendClientMessage(playerid, ErrorColor,"'- VBan -' Ban no existente.");
- new IPBANEADA[32];
- format(IPBANEADA,32,BanDir,DOF2_GetString(Vnuevoban,"IP"));
- if(DOF2_FileExists(IPBANEADA))
- {
- new CUENTABANEADA[32];
- if(VBIsIP(Arq))
- {
- if(playerid > -1)
- format(Vstring,128,"'- VBan -' La IP %s(%s) ha sido desbaneada por %s.",Arq,DOF2_GetString(Vnuevoban,"Nick"),VBanJugador(playerid));
- else
- format(Vstring,128,"'- VBan -' La IP %s(%s) ha sido desbaneada por VBot Admin.",Arq,DOF2_GetString(Vnuevoban,"Nick"));
- }
- else
- {
- if(playerid > -1)
- format(Vstring,128,"'- VBan -' La cuenta %s(%s) was unbanned by %s.",Arq,DOF2_GetString(Vnuevoban,"IP"),VBanJugador(playerid));
- else
- format(Vstring,128,"'- VBan -' La cuenta %s(%s) was unbanned by VBot Admin.",Arq,DOF2_GetString(Vnuevoban,"IP"));
- }
- format(CUENTABANEADA,32,BanDir,DOF2_GetString(Vnuevoban,"Nick"));
- DOF2_RemoveFile(CUENTABANEADA);
- DOF2_RemoveFile(IPBANEADA);
- }
- else
- format(Vstring,128,"'- VBan -' La cuenta %s ha sido desbaneada por %s.",Arq,VBanJugador(playerid));
- SendClientMessageToAll(0xF7A26FFF,Vstring);
- DOF2_RemoveFile(Vnuevoban);
- return 1;
- }
- stock VBanCheck(playerid) //aqui
- {
- format(Vnuevoban,32,BanDir,VBanJugador(playerid));
- if(DOF2_FileExists(Vnuevoban) && DOF2_GetInt(Vnuevoban,"DiaBaneado") != 0)
- {
- new Vvano, Vvmes, Vvdia;
- getdate(Vvano, Vvmes, Vvdia);
- new diaban = DOF2_GetInt(Vnuevoban,"DiaBaneado");
- new tempban = DOF2_GetInt(Vnuevoban,"TempBan");
- if(DOF2_GetInt(Vnuevoban,"MesBaneado") != Vvmes)
- {
- new UltMes = VBDiasMes(Vvmes)-diaban;
- if((Vvdia+UltMes) < tempban)
- {
- format(Vstring,128,"Aún baneado. Espera %d día(s)",tempban-(Vvdia+Vvdia));
- SendClientMessage(playerid,0x10B4EEAA,Vstring);
- }
- else
- {
- VUnBan(-1,VBanJugador(playerid));
- return SendClientMessage(playerid,0x10B4EEAA,"Tu ban temporal ha terminado.");
- }
- }
- else
- {
- if(Vvdia-diaban < tempban)
- {
- format(Vstring,128,"Aún baneado. Espera %d día(s)",tempban-(Vvdia));
- SendClientMessage(playerid,0x10B4EEAA,Vstring);
- }
- else
- {
- VUnBan(-1,VBanJugador(playerid));
- return SendClientMessage(playerid,0x10B4EEAA,"Tu ban temporal ha terminado.");
- }
- }
- }
- if(DOF2_FileExists(Vnuevoban))
- {
- VBanLoadInfo(playerid,Vnuevoban);
- GetPlayerIp(playerid, VIP, sizeof(VIP));
- VBanIP(-1,VIP,DOF2_GetString(Vnuevoban,"Razon"));
- return Kick(playerid);
- }
- GetPlayerIp(playerid, VIP, sizeof(VIP));
- format(Vnuevoban,32,BanDir,VIP);
- if(DOF2_FileExists(Vnuevoban))
- {
- VBanLoadInfo(playerid,Vnuevoban);
- format(NICKBAN,20,VBanJugador(playerid));
- DOF2_SetString(Vnuevoban,"Nick",NICKBAN);
- DOF2_SaveFile();
- VBanID(-1,playerid,DOF2_GetString(Vnuevoban,"Razon"));
- return Kick(playerid);
- }
- return 1;
- }
- stock VBanLoadInfo(playerid,Varq[])
- {
- if(!DOF2_FileExists(Varq))
- return SendClientMessage(playerid, ErrorColor,"'- 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}Razon : {E11D36}%s\n\t{FFFFFF}Fecha : {E11D36}%s\n\t{FFFFFF}Hora : {E11D36}%s",DOF2_GetString(Varq,"Nick"),DOF2_GetString(Varq,"IP"),DOF2_GetString(Varq,"Admin"),DOF2_GetString(Varq,"Razon"),DOF2_GetString(Varq,"Fecha"),DOF2_GetString(Varq,"Hora"));
- ShowPlayerDialog(playerid, 231, DIALOG_STYLE_MSGBOX, " {FFFFFF}VBan - BanInfo - By: ViniBorn",InfoString,"Cerrar", "");
- return 1;
- }
- stock VBanSaveInfo(playerid,Varq[],razon[],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",VBanJugador(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,"Fecha",Vstring);
- DOF2_SetString(Varq,"Razon",razon);
- if(BanType == true)
- {
- DOF2_SetInt(Varq,"TempBan",DiasBaneado);
- DOF2_SetInt(Varq,"DiaBaneado",Vdia);
- DOF2_SetInt(Varq,"MesBaneado",Vmes);
- }
- DOF2_SaveFile();
- return 1;
- }
- stock VBanJugador(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(Mes)
- {
- switch(Mes-1)
- {
- case 0:
- Mes = 31;
- case 1:
- Mes = 31;
- case 2:
- Mes = 28;
- case 3:
- Mes = 31;
- case 4:
- Mes = 30;
- case 5:
- Mes = 31;
- case 6:
- Mes = 30;
- case 7:
- Mes = 31;
- case 8:
- Mes = 31;
- case 9:
- Mes = 30;
- case 10:
- Mes = 31;
- case 11:
- Mes = 30;
- }
- return Mes;
- }
- 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