PDA

Просмотр полной версии : [Вопрос] Система бана [MySQL R8]



Gressie
05.08.2014, 10:47
Приветствую! Взял систему бана для сервера: Клик (http://pro-pawn.ru/showthread.php?9710-Система-бана-MySQL-R8)
Хотелось бы узнать как сделать блокировку до 2038 года. Ибо дела с Unix не совсем имел.

OKStyle
05.08.2014, 10:58
GetTickCount() + (60 * 60 * 24 * 365) * 24
Без учёта високосных лет.

Gressie
05.08.2014, 11:14
GetTickCount() + (60 * 60 * 24 * 365) * 24
Без учёта високосных лет.

То есть заместо этого:

unbandate2 = gettime() + days*86400;
?

- - - Добавлено - - -

Ещё один вопрос имеется команда /delete, для удаления аккаунта игрока, как сделать чтобы и его дом тоже продался?

CMD:delete(playerid, params[])
{
if(PlayerInfo[playerid][pLogin] == 0) return true;
if(!IsPlayerConnected(playerid)) return true;
if(PlayerInfo[playerid][pAdmin] < 1) return true;
if(PlayerInfo[playerid][pAdmin] < 7) return SCM(playerid, COLOR_WHITE, YouCanNot);
if(dostup[playerid] != 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_PASSWORD,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\nразмером от 4 до 15 символов","Вход","Отмена");
if(sscanf(params,"s[64]", params[0])) return SCM(playerid,COLOR_WHITE," Введите: /delete [name_akkaunt]");
mysql_format(dbHandle, strings, 100, "SELECT * FROM `accounts` WHERE name = '%e' Limit 1", params[0]);
mysql_function_query(dbHandle, strings, true, "OnPlayerSelectDelete", "is", playerid, params[0]);
return true;
}

forward OnPlayerSelectDelete(playerid, name[]);
public OnPlayerSelectDelete(playerid, name[])
{
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
new query[128];
mysql_format(dbHandle, query, sizeof(query), "DELETE FROM `accounts` WHERE name = '%s'", name);
mysql_query(query, -1, -1, dbHandle);
SendMes(playerid,COLOR_WHITE,"Аккаунт с именем %s был успешно удален", name);
}
else SendClientMessage(playerid, COLOR_WHITE,"Ошибка: Не найдено совпадений.");
return true;
}

- - - Добавлено - - -

LoadProperty если надо:

stock LoadProperty()
{
mysql_function_query(dbHandle, "SELECT * FROM `house` ORDER BY `house`.`hid` ASC", true, "OnHousesLoad","");
return true;
}

OKStyle
05.08.2014, 11:27
Со временем накосячил, там не процессорные тики же нужны...

Если в команде надо указать год разбана, тогда в ней

days = год разбана

и затем

new Year, Month, Day;
getdate(Year, Month, Day);
unbandate2 = gettime() + (60 * 60 * 24 * 365) * (days - Year);

Gressie
05.08.2014, 11:27
Со временем накосячил, там не процессорные тики же нужны...

Если в команде надо указать год разбана, тогда в ней

days = год разбана

и затем

new Year, Month, Day;
getdate(Year, Month, Day);
unbandate2 = gettime() + (60 * 60 * 24 * 365) * (days - Year);

Спасибо, а что насчет второго вопроса?

Gressie
06.08.2014, 23:36
Никто не знает? xD