На каждой этой функции столько ошибок.Код HTML:error 017: undefined symbol "GetDeclensionWord" warning 202: number of arguments does not match definition warning 202: number of arguments does not match definition warning 202: number of arguments does not match definition warning 202: number of arguments does not match definition warning 202: number of arguments does not match definition
PHP код:
GetDeclensionWord(days_string, sizeof(days_string), days, "день", "дня", "дней");
Последний раз редактировалось Skyline; 29.08.2016 в 22:26.
В OnPlayerConnect, где идёт проверка на наличие аккаунта, делай проверку перед диалогом авторизации.
Переписать систему авторизации придётся немного, если всё по уму сделать хочешь.
Должно быть так:
PHP код:
public OnPlayerConnect(...)
{
if(игрок зарегистрирован?)
{//Нет
Регистрация
}
else
{//Да
Запрос в таблицу "banlist" (ищешь игрока в списке забаненных
}
return 1;
}
PHP код:
коллбэк_вызываемый_запросом
{
if(забанен)
{
Игрок забанен => кик
}
else
{
Авторизация
}
return 1;
}
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Как ты получаешь значение пароля из таблицы с банами? Я конечно все понимаю, но думать хоть чуть-чуть нужно. Получай значение пароля в FindPlayerInTable (там ведь запрос в таблицу аккаунтов?) или дублируй запрос в таблицу аккаунтов из OnPlayerConnect (желательно конечно первое, что бы не дублировать одинаковые запросы).
Вообщем, если выше я написал слишком сложно, то скопируй это с заменой -
PHP код:
public FindPlayerInTable(playerid)
{
new rows, fields, string[300];
cache_get_data(rows, fields);
if(!rows)
{
SendClientMessage(playerid, COLOR_WHITE, "Этот ник не {FF0000}зарегистрирован {FFFFFF}на этом сервере! Зарегистрируйся, пожалуйста.");
format(string,sizeof(string),"{FFDEAD}Здравствуй, %s \n\n- Ты зашел на сервер AscarY(0.3.7)[RUS/UA]\n- Игровой Режим: AscarY: LS/SF/LV\n- На сервере: \n- Бизнесов: \n- Сбизнесов: \n- Сайт Сервера: \n\nИспользуемый тобой ник свободен.\nЗарегистрируйся чтобы продолжить.\n\nЗадай пароль от аккаунта:",PlayerInfo[playerid][pName]);
ShowPlayerDialog(playerid, 1 ,DIALOG_STYLE_INPUT,!"Регистрация",string,"Далее","Отмена");
}
else
{
cache_get_field_content(0, "password", PlayerInfo[playerid][pPassword], mysql_connect_id, 25);
static const auto_query_string[] = "SELECT * FROM `banlist` WHERE `Name` = '%s'";
new query_string[sizeof(auto_query_string) - 2 + MAX_PLAYER_NAME + 1];
format(query_string, sizeof(query_string), auto_query_string, PlayerInfo[playerid][pName]);
mysql_function_query(mysql_connect_id, query_string, true, "OnPlayerFindInBanlist", "d", playerid);
}
return 1;
}
PHP код:
public OnPlayerFindInBanlist(playerid)
{
new rows, fields, unbanunixtime, string[250+ MAX_PLAYER_NAME + 1];
cache_get_data(rows, fields);
if(rows)
{
unbanunixtime = cache_get_field_content_int(0, !"UnbanUNIXTime", 1);
new playerid_name[MAX_PLAYER_NAME + 1], admin_name[MAX_PLAYER_NAME + 1];
GetPlayerName(playerid, playerid_name, MAX_PLAYER_NAME);
if(gettime() >= unbanunixtime)
{
static const auto_query_string[] = "DELETE FROM `banlist` WHERE `Name` = '%s'";
new query_string[sizeof(auto_query_string) - 2 + MAX_PLAYER_NAME + 1];
format(query_string, sizeof(query_string), auto_query_string, playerid_name);
mysql_function_query(mysql_connect_id, query_string, false, "", "");
return 1;
}
new days_string[4+1],
word_string[8+1],
reason[32+1],
days = (unbanunixtime - gettime()) / 86400 + 1;
cache_get_field_content(0, !"Admin", admin_name);
cache_get_field_content(0, !"Reason", reason);
GetDeclensionWord(word_string, sizeof(word_string), days, "Остался", "Осталось", "Осталось");
GetDeclensionWord(days_string, sizeof(days_string), days, "день", "дня", "дней");
format(string,sizeof(string),"Аккаунт {FF6347}%s{ffffff} временно {FF6347}заблокирован.{ffffff}",playerid_name);
SendClientMessage(playerid, -1, string);
format(string,sizeof(string),"Причина: {FF6347}%s{ffffff}. Забанил: {FF6347}%s.",reason, admin_name);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "%s: {ff6347}%d %s {ffffff}до {FF6347}разблокировки.", word_string, days, days_string);
SendClientMessage(playerid, -1, string);
Kick(playerid);
}
else
{
format(string,sizeof(string),"{FFDEAD}Здравствуй, %s \n\n- Ты зашел на сервер AscarY (0.3.7)[RUS/UA]\n- Игровой режим: AscarY: LS/SF/LV(RPG)\n- На сервере:\n- Бизнесов: \n- Сбизнесов: \n- Сайт Сервера: \n\nЭтот аккаунт уже зарегистрирован\n\nВведи пароль от аккаунта:",PlayerInfo[playerid][pName]);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,!"Авторизация",string,"Вход","Отмена");
}
return 1;
}
Последний раз редактировалось 123; 30.08.2016 в 05:49.
Спасибо большое.
Скиньте таблицу у кого есть
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)