Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <YSI\y_ini>
- #include <YSI\y_commands>
- #define HODINA(%0) 3600*%0
- #define DIALOG_ID 874
- #define BANPATH "Timeban/%s.txt"
- enum bInfo
- {
- bIP,
- bDATE,
- bHODINY,
- bNAME,
- }
- enum pInfo
- {
- Admin
- }
- new PlayerBan[MAX_PLAYERS][bInfo];
- new PlayerInfo[MAX_PLAYERS][pInfo];
- forward LoadBan_data(playerid,name[],value[]);
- public LoadBan_data(playerid,name[],value[])
- {
- INI_Int("Ip",PlayerBan[playerid][bIP]);
- INI_Int("Date",PlayerBan[playerid][bDATE]);
- INI_Int("Hodiny",PlayerBan[playerid][bHODINY]);
- INI_Int("Name",PlayerBan[playerid][bNAME]);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(fexist(BanPath(playerid)))
- {
- INI_ParseFile(BanPath(playerid), "LoadBan_%s", .bExtra = true, .extra = playerid);
- new dovod[75],string[128],ip[20];
- GetPlayerIp(playerid,ip,20);
- if(gettime() > strval(string))
- {
- SendClientMessage(playerid,0x0000FFFF,"[TimeBan] {FF0000}Ban ti vypršal, dúfam že si sa poučil");
- fremove(BanPath(playerid));
- }else{
- new strong[100];
- new ban[128];
- strcat(ban,"Tvoj ešte stále nevypršal !\n");
- format(strong, sizeof(strong),"Nick: %s \n", Jmeno(playerid));
- strcat(ban,strong);
- format(strong, sizeof(strong),"IP: %s \n", PlayerBan[playerid][bIP]);
- strcat(ban,strong);
- format(strong, sizeof(strong), "Dôvod: %s \n", dovod);
- strcat(ban,strong);
- format(strong, sizeof(strong), "Admin: %s \n", PlayerInfo[playerid][Admin]);
- strcat(ban,strong);
- format(strong, sizeof(strong), "Kedy: %s \n", date(strval(string)));
- strcat(ban,strong);
- format(strong, sizeof(strong), "Platnosť %s \n", date(strval(string)));
- strcat(ban,strong);
- ShowPlayerDialog(playerid,DIALOG_ID,DIALOG_STYLE_MSGBOX,"{0000FF}TimeBan",ban,"OK","");
- SetTimerEx("KickPublic", 1500, 0, "d", playerid);
- }
- }
- return 1;
- }
- CMD:ban(playerid, params[], help[])
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_WASTED) return SendClientMessage(playerid,0x0000FFFF,"[Server]: Nemôžeš byť vo výbere postáv !");
- new a[3][60],id,hodiny;
- if(UnFormat(params,a,' ',3) != 3) return SendClientMessage(playerid,0x0000FFFF,"[Server]: /ban [id] [hodinky] [dovod]");
- id = strval(a[0]);
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0x0000FFFF,"[Server]: Hráč není na servery !");
- if(IsPlayerAdmin(id)) return SendClientMessage(playerid,0x0000FFFF,"[Server]: Nemôžeš zabanovať hlavného admina !");
- new plrIP[64],name[32];
- hodiny = strval(a[1]);
- new INI:Fi = INI_Open(BanPath(playerid));
- INI_SetTag(Fi,"BAN Data");
- INI_WriteInt(Fi,"Ip", GetPlayerIp(playerid, plrIP, 64));
- INI_WriteInt(Fi,"Date", gettime());
- INI_WriteInt(Fi,"Hodiny", HODINA(hodiny)+gettime());
- INI_WriteInt(Fi,"Name", GetPlayerName(playerid,name,sizeof(name)));
- INI_WriteString(Fi,"Hrac",a[2]);
- INI_Close(Fi);
- new strong[128];
- format(strong, sizeof(strong),"[TimeBan] {FF0000}Admin {FFFFFF}%s{FF0000} dal hráčovy {FFFFFF}%s {FF0000}ban na %d hodín Dôvod: %s",Jmeno(playerid),Jmeno(id),hodiny,a[2]);
- SendClientMessageToAll(-1,strong);
- SetTimerEx("KickPublic", 1500, 0, "d", id);
- return true;
- }
- forward KickPublic(playerid);
- public KickPublic(playerid)
- {
- Kick(playerid);
- return 1;
- }
- stock BanPath(playerid)
- {
- new string[128],playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string),BANPATH,playername);
- return string;
- }
- stock Jmeno(playerid)
- {
- new n[MAX_PLAYER_NAME];
- GetPlayerName(playerid,n,MAX_PLAYER_NAME);
- return n;
- }
- stock UnFormat(str[],variables[][],cha,m=0)
- {
- new len = strlen(str),chcount,i,start,varcount;
- while(i < len+1)
- {
- if(i == len && chcount != 0)
- {
- strmid(variables[varcount],str,start+1,strlen(str),128);
- chcount++;
- }
- if(str[i] == cha)
- {
- if((m == 0) || (chcount != m-1))
- {
- strmid(variables[varcount],str,start + ((start == 0) ? 0 : 1),i,128);
- start = i;
- chcount++;
- varcount++;
- }
- }
- i++;
- }
- return chcount;
- }
- stock date( timestamp, _form=1 )
- {
- new year=1970, day=0, month=0, hour=0, mins=0, sec=0;
- new days_of_month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
- new names_of_month[12][10] = {"Januar","Februar","Marec","April","Maj","Jun","Jul","August","September","Oktober","November","December"};
- new returnstring[32];
- while(timestamp>31622400)
- {
- timestamp -= 31536000;
- if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp -= 86400;
- year++;
- }
- if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
- days_of_month[1] = 29;
- else
- days_of_month[1] = 28;
- while(timestamp>86400)
- {
- timestamp -= 86400, day++;
- if(day==days_of_month[month]) day=0, month++;
- }
- while(timestamp>60)
- {
- timestamp -= 60, mins++;
- if( mins == 60) mins=0, hour++;
- }
- sec=timestamp;
- switch( _form )
- {
- case 1: format(returnstring, 31, "%02d/%02d/%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);
- case 2: format(returnstring, 31, "%s %02d, %d, %02d:%02d:%02d", names_of_month[month],day+1,year, hour, mins, sec);
- case 3: format(returnstring, 31, "%d %c%c%c %d, %02d:%02d", day+1,names_of_month[month][0],names_of_month[month][1],names_of_month[month][2], year,hour,mins);
- default: format(returnstring, 31, "%02d.%02d.%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);
- }
- return returnstring;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement