В принципе в некоторых функциях разобрался
но..
что главное то, что так и не могу разобраться до конца в том,как узнать находится ли аккаунт в базе данных или нет или верен ли введенный пароль игрока в диалог или нет
В принципе в некоторых функциях разобрался
но..
что главное то, что так и не могу разобраться до конца в том,как узнать находится ли аккаунт в базе данных или нет или верен ли введенный пароль игрока в диалог или нет
PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..
25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/
#FIXSAMP
вот пример моей функции
рекомендую посмотретьPHP код:
stock bool:IsAFexistAccount(name[])
{
new query[70];
format(query, sizeof query, "select id from table where name = '%s'", name); // запрос надо переделать под себя
new Cache:result = mysql_query(_, query);
new rows = cache_num_rows();
cache_delete(result);
return rows ? (true) : (false);
}
http://wiki.sa-mp.com/wiki/MySQL/R33
Ну в OnPlayerConnect что-то типа
И в колбэкеPHP код:
new string[50+MAX_PLAYER_NAME];
format(string, sizeof(string),"SELECT * FROM `Account` WHERE `NickName` = '%s' LIMIT 0,1", pNick(playerid));
mysql_function_query(iMySQL, string, true, "FindPlayerInTable", "i", playerid);//true - включаем кэширование запроса и тем самым мы сможем работать с данными, которые вернёт таблица
Пароль точно так же проверяется. Только можно прямо в диалоге выше занести пароль от аккаунта в переменную и потом уже проверять значение той самой переменной, а не посылать каждый раз запрос в БДPHP код:
forward FindPlayerInTable(playerid);
public FindPlayerInTable(playerid)
{
new rows, fields;
cache_get_data(rows, fields);// Проверяем сколько столбцов и строк "откликнулось" на запрос и можно регистрировать игрока
if(!rows)//Если нуль - значит аккаунт не найден
{
print("Аккаунт не найден");
}
else//Иначе хоть 1 столбец подходит под условие запроса и игрок зарегистрирован уже
{
}
return 1;
}
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
С паролем нормально или что-то не так?
PHP код:
case 2:
{
if(!response) return SendClientMessage(playerid,COLOR_GREEN,"Вы вышли");
if(!strlen(inputtext))
{
format(Dialog_Enter,sizeof(Dialog_Enter),"\t%s добро пожаловать на сервер!\n\n\nВведите пароль:",PlayerInfo[playerid][pName]);
ShowPlayerDialog(playerid,2, DIALOG_STYLE_PASSWORD,"\tАвторизация",Dialog_Enter,"Ок","Отмена");
}
else
{
mysql_format(MySQL_ID,MySQL_Data,78+MAX_PLAYER_NAME,"SELECT * FROM "Base" WHERE `Name` = '%e' AND `password` = '%e'", PlayerInfo[playerid][pName], pPassword);
mysql_function_query(MySQL_ID,MySQL_Data, true, "OnPlayerLogin","s", playerid);
}
}
}
return 1;
}
void OnPlayerLogin(playerid)
{
new rows,fields;
cache_get_data(rows, fields);
if(!rows)
{
format(Dialog_Enter,sizeof(Dialog_Enter),"Ваш ник зарегистрирован\n\nЛогин: %s\nВы ввели неверный пароль!\nПопробуйте еще раз:",PlayerInfo[playerid][pName]);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD,"Авторизация",Dialog_Enter,"Вход","Отмена");
return 1;
}
PlayerLogged{playerid} = true;
SpawnPlayer(playerid);
return 1;
}
Последний раз редактировалось [ForD]; 04.06.2014 в 12:59.
PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..
25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/
#FIXSAMP
а?PHP код:
WHERE BINARY
PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..
25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/
#FIXSAMP
Ну так а что говорит проверка кода в боевых условиях?
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..
25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/
#FIXSAMP
Ну запусти сервер и проверь, работает код или нет
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..
25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/
#FIXSAMP
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)