Evgesha2021
Умник
При "Бане" игрока, выдаёт неверную "Дату Разбана"! У кого есть какие-либо варианты решения данной проблемы?
Код команды /ban:
Код стоков Даты:
Код окна при входе:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
PHP:
CMD:ban(playerid, params[])
{
if(User[playerid][pAdmin] < 2 || !GetPVarInt(playerid, "Dostup")) return true;
if(User[playerid][pVzlom] == 1) return SCM(playerid, COLOR_LIGHTBLUE, "[Информация]: {AFAFAF}Вам не доступна данная функция т.к. ваш аккаунт подозреваеться во взломе!");
if(Spectate[playerid]) StopSpectate(playerid);
if(sscanf(params, "u[128]ds[60]",params[0],params[1],params[2])) return SendClientMessage(playerid, COLOR_GREY, "Используйте: /ban [id/ник] [кол-во дней] [причина]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Игрок оффлайн!");
if(params[1] < 1 || params[1] > 3001) return SendClientMessage(playerid, COLOR_GREY, "Кол-во дней от 1 до 3000");
User[params[0]][pBan] = getdate()+params[1];
new ip[15];
new day, month, year;
new null = params[1];
getdate(year, month, day);
if(User[params[0]][pAdmin] && User[playerid][pAdmin] < 6) return BanAdmin(playerid);
format(YCMDstr, sizeof(YCMDstr), "Администратор: %s забанил %s на %i дней. Причина: %s ",User[playerid][pName],User[params[0]][pName],params[1],params[2]);
SendClientMessageToAll(COLOR_LIGHTRED,YCMDstr);
GetPlayerIp(params[0],ip,sizeof(ip));
format(YCMDstr, sizeof(YCMDstr), "Ник [%s] R-IP [%s] L-IP [%s] IP [%s]",User[params[0]][pName],User[params[0]][pIpReg],User[params[0]][pvIp],ip);
ABroadCast(COLOR_LIGHTRED,YCMDstr,2);
mysql_format(dbHandle,QUERY, 300, "INSERT INTO `ban` (`Text`, `Name`, `NameAdmin`, `Date`, `Unban`) VALUES ('%s', '%s', '%s', '%i/%02i/%02i', '%i')",params[2],User[params[0]][pName],User[playerid][pName],day,month,year, mktime(5,0,0,day+null,month,year));
mysql_tquery(dbHandle,QUERY,"","");
KickEx(params[0], "Ban Admin");
AdminInfo[playerid][admBaned]++;
YCMDstr[0] = EOS;
format(YCMDstr, 200, "UPDATE admin SET baned = %i WHERE admid = %i LIMIT 1", AdminInfo[playerid][admBaned], AdminInfo[playerid][admID]);
mysql_tquery(dbHandle, YCMDstr, "", "");
return true;
}
Код:
stock mktime(hour,minute,second,day,month,year)
{
new timestamp2;
timestamp2 = second + (minute * 60) + (hour * 3600);
static days_of_month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) days_of_month[1] = 29;
else days_of_month[1] = 28;
new days_this_year = day;
if(month)
{
for(new i=0; i<month-1;i++)
{
days_this_year += days_of_month[i];
}
}
timestamp2 += (days_this_year) * 86400;
for(new j=1970;j<year;j++) {
timestamp2 += 31536000;
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400;
}
return timestamp2;
}
stock Now() {
new hour,minute,second;
new year, month,day;
gettime(hour, minute, second);
getdate(year, month, day);
return mktime(hour,minute,second,day,month,year);
}
Код:
case 25:
{
if(r)
{
new ban;
cache_get_value_name_int(0,"Unban", ban);
new year, month, day,hour,minute,second;
timestamp_to_date(ban,year,month,day,hour,minute,second);
format(YCMDstr, sizeof(YCMDstr), "{D95A41}Этот аккаунт заблокирован\nДата разбана: %02i/%02i/%02i в %02i:%02i\nВведите \"/q\" чтобы выйти\n",day,month,year,hour,minute);
ShowPlayerDialogEx(playerid,78,0,"{c22000}Внимание",YCMDstr,"Закрыть","");
return KickEx(playerid, "Ban");
}
else
{
gMysqlRaceCheck[playerid] ++;
new t_stra[256];
mysql_format(dbHandle, t_stra, sizeof t_stra, "SELECT * FROM accounts WHERE Name = '%s' LIMIT 1", User[playerid][pName]);
mysql_tquery(dbHandle, t_stra, "CheckPlayerRegistered", "ii", playerid, gMysqlRaceCheck[playerid]);
}
return 1;
}
case 26:
{
new null[2] = 0;
if(r)
{
for(x = 1; x <= r; x++)
{
new unban;
cache_get_value_name_int(x-1, "Unban", unban);
cache_get_value_name(x-1, "Name", QUERY, MAX_PLAYER_NAME);
if(unban < Now())
{
mysql_format(dbHandle,QUERY,128, "DELETE FROM `ban` WHERE `Name` = '%e'",QUERY);
mysql_tquery(dbHandle,QUERY,"","");
null[0]++;
}
null[1]++;
}
}
printf("[Загрузка ...] Забаненых аккаунтов %i. Разбанено %i аккаунтов",null[1],null[0]);
}
