Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
Статус
В этой теме нельзя размещать новые ответы.

Alex_Jemison

Умник
При вводе текста в диалог авторизации он закрывается. В логах вылезает такая ошибка:

PHP:
[18:20:46] [ERROR] cache_get_value_name: field 'Password' not found
Скрин базы данных :


А теперь перейдем к коду:

public OnPlayerConnect :
PHP:
public OnPlayerConnect(playerid)
{
	GetPlayerName(playerid,PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
	TogglePlayerSpectating(playerid, 1);

	static const fmt_query[] = "SELECT `id` FROM `accounts` WHERE `Name` ='%s'";
	new query[sizeof(fmt_query) +(-2+MAX_PLAYER_NAME)];
	format(query, sizeof(query), fmt_query, PlayerInfo[playerid][pName]);
	mysql_tquery(mysql, query, "CheckRegistration", "i", playerid);

	WrongPassword[playerid] = 3;
	return 1;
}
CheckRegistration:
PHP:
forward CheckRegistration(playerid);
public CheckRegistration(playerid)
{
    new rows;
    cache_get_row_count(rows);
    if(rows)
    {
    	cache_get_value_name(0,"Password",PlayerInfo[playerid][pPassword],64);
    	ShowLogin(playerid);
    }
    else ShowRegistration(playerid);
}
Диалог авторизации :
PHP:
		case 6:
		{
			if(response)
			{
				if(!strlen(inputtext))
				{
					SendClientMessage(playerid, COLOR_GOLD, ">> {FFFFFF}Для авторизации введите пароль");
					ShowLogin(playerid);
					return 1;
				}
				if(!strcmp(PlayerInfo[playerid][pPassword], inputtext))
				{
    				static const fmt_query[] = "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' ";
					new query[sizeof(fmt_query) +(-2+MAX_PLAYER_NAME)+(-2+30)];
					format(query, sizeof(query), fmt_query, PlayerInfo[playerid][pName],PlayerInfo[playerid][pPassword]);
					mysql_tquery(mysql, query, "PlayerLogin", "i", playerid);
				}
				else
				{
    				new string[70];
    				WrongPassword[playerid]--;
    				if(WrongPassword[playerid] > 0) 
    				{
    					format(string, sizeof(string), ">> {FFFFFF}Вы ввели неправильный пароль. У вас осталось %d попыток !", GetPVarInt(playerid, "WrongPassword"));
    					SendClientMessage(playerid, COLOR_GOLD, string);
    				}
    				if(WrongPassword[playerid] == 0)
    				{
    					SendClientMessage(playerid, COLOR_RED, ">> {FFFFFF}Вы использовали все попытки для входа");
    				}
    				ShowLogin(playerid);
				}
			}
			else   
			{
				SendClientMessage(playerid, COLOR_RED, ">> Для выхода из игры используйте /quit");
				return Kick(playerid);
			}
		}
Загрузка аккаунта:
( Хотя сюда код не доходит )
PHP:
forward PlayerLogin(playerid);
public PlayerLogin(playerid)
{
	new rows;
    cache_get_row_count(rows);
    if(rows)
    {
    	cache_get_value_name_int(0, "ID", PlayerInfo[playerid][pID]);
   		cache_get_value_name(0, "Email", PlayerInfo[playerid][pEmail], 64);
   		cache_get_value_name(0,"Password",PlayerInfo[playerid][pPassword],64);
    	cache_get_value_name_int(0, "Skin", PlayerInfo[playerid][pSkin]);
    	cache_get_value_name_int(0, "Sex", PlayerInfo[playerid][pSex]);
    	cache_get_value_name_int(0, "Race", PlayerInfo[playerid][pRace]);
    	cache_get_value_name_int(0, "Referal", PlayerInfo[playerid][pReferal]);
    	cache_get_value_name(0, "RegIP", PlayerInfo[playerid][pRegIP], 12);
    	cache_get_value_name(0, "RegData", PlayerInfo[playerid][pRegData], 15);

    	TogglePlayerSpectating(playerid, 0);
   	 	SetPVarInt(playerid, "Logged", 1);
   	 	SendClientMessage(playerid, COLOR_GOLD, ">> {FFFFFF}Вы успешно авторизовались !");
    	SpawnPlayer(playerid);

	}
    return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу