15.11.2017, 18:54
I want to ask if I have this code well done.
Under pawno there is a code but the servers can make mistakes.
Thanks
Under pawno there is a code but the servers can make mistakes.
Thanks
PHP код:
#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[])
{
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;
}