Hi, I have problem of timeban. Servers when I use the command so it does not show anything on chat.
PHP код:
#include <YSI\y_ini>
#include <YSI\y_commands>
#define HODINA(%0) 3600*%0
#define DIALOG_ID 874
public OnPlayerConnect(playerid)
{
new strong[100];
if(fexist(strong))
{
new dovod[75],Admin[25],dokedy,string[128],ip[20];
GetPlayerIp(playerid,ip,20);
new INI:Fi = INI_Open(BanPath(playerid));
INI_WriteString(Fi,"%s",ip);
INI_WriteString(Fi,"%s",dovod);
INI_WriteString(Fi,"%s",Admin);
INI_WriteInt(Fi,"%s",strval(string));
dokedy = strval(string);
INI_WriteInt(Fi,"%s",dokedy);
INI_Close(Fi);
if(gettime() > dokedy)
{
SendClientMessage(playerid,0x0000FFFF,"[ TimeBan ] {FF0000}Ban ti vyprљal, dъfam ћe si sa poučil");
fremove(strong);
}else{
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", ip);
strcat(ban,strong);
format(strong, sizeof(strong), "Dфvod: %s \n", dovod);
strcat(ban,strong);
format(strong, sizeof(strong), "Admin: %s \n", 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(dokedy));
strcat(ban,strong);
ShowPlayerDialog(playerid,DIALOG_ID,DIALOG_STYLE_MSGBOX,"{0000FF}TimeBan",ban,"OK","");
Kick(playerid);
}
}
return 1;
}
CMD:timeban(playerid, params[])
{
//if(admin[playerid] == false) return SendClientMessage(playerid,0x0000FFFF,"[Server]: Nie si Administrбtor");
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]: /timeban [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 !");
hodiny = strval(a[1]);
new str2[75];
GetPlayerIp(id,str2,75);
new INI:Fi = INI_Open(BanPath(playerid));
INI_WriteString(Fi,"%s\r\n",str2);
INI_WriteString(Fi,"%s\r\n",a[2]);
INI_WriteString(Fi,"%s\r\n",Jmeno(playerid));
INI_WriteInt(Fi,"%d\r\n",gettime());
INI_WriteInt(Fi,"%d\r\n",HODINA(hodiny)+gettime());
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);
Kick(id);
return true;
}
stock BanPath(playerid)
{
new string[128],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
format(string,sizeof(string),"Timeban/%s.txt",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;
}
You have a problem right off the bat - the "strong" string array is empty, so it will always return false
There are so many flaws that I don't even know where to start.
You declare an empty string "strong". Then you check if a file exists, which name is stored in variable "strong". Since we have just established that "strong" is empty you're checking if, um, nothing exists. Of course this check fails so anything after that automatically becomes useless.
In that block (that doesn't get executed, anyway) you declare an empty variable string and you do pretty much the same thing. You try to get the integer value of string, but since we have established that this variable is empty you will just get 0 all the time.
because you're doing it totally and utterly wrong.