Перейти к содержанию
PawnerTopoviy

Ошибка при регистрации

Рекомендуемые сообщения

PawnerTopoviy

Ну вообщем то всем привет, вот давно не было в крмп, решил создать заного сервер, ну не важно. Выбивает ошибку при регистрации(mysql подключено) Все диалоги с регистрацией работают, перед выбором скина выбивает. Вот сам код:

 

stock ShowPlayerRegDialog(playerid, step)
{
	if(GetPlayerData(playerid, P_ACCOUNT_STATE) != ACCOUNT_STATE_REGISTER) return 0;

	switch(step)
	{
		case REGISTER_STATE_PASSWORD:
		{
			Dialog
			(
				playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,
				"{66CCFF}Регистрация",
				"{FFFFFF}Добро пожаловать на сервер "SERVER_NAME" RolePlay\n"\
				"Чтобы начать игру сначала необходимо зарегистрироваться\n\n"\
				"Пожалуйста укажите пароль для Вашего аккаунта\n"\
				"Он будет запрашиваться каждый раз, когда вы заходите на сервер\n\n"\
				"\t{66CC66}Примечания:\n"\
				"\t- Пароль может состоять из русских и латинских символов\n"\
				"\t- Пароль чувствителен к регистру\n"\
				"\t- Длина пароля от 6-ти до 15-ти символов",
				"Далее", ""
			);
		}
		case REGISTER_STATE_EMAIL:
		{
			Dialog
			(
				playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,
				"{66CCFF}Email",
				"{FFFFFF}Введите адрес Вашей электронной почты\n"\
				"Используя его, вы сможете восстановить доступ к аккаунту\n"\
				"в случае взлома или если забудете пароль.\n\n"\
				"На email мы вышлем ссылку. В течение 14 дней Вы можете\n"\
				"перейти по ней для подтверждения почты.\n\n"\
				"Убедитесь в правильности ввода и нажмите \"Далее\"",
				"Далее", ""
			);
		}
		case REGISTER_STATE_REFER:
		{
			Dialog
			(
				playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,
				"{66CCFF}Ник пригласившего игрока",
				"{FFFFFF}Если Вы узнали о нашем сервере от своего друга\n"\
				"который тут играет, укажите его ник в поле ниже\n\n"\
				"{66CC66}При достижении вами 4-го уровня он получит вознаграждение",
				"Ввести", "Пропустить"
			);
		}
		case REGISTER_STATE_SEX:
		{
			Dialog
			(
				playerid, DIALOG_REGISTER, DIALOG_STYLE_MSGBOX,
				"{66CCFF}Пол",
				"{FFFFFF}Выберите пол вашего персонажа",
				"Мужской", "Женский"
			);
		}
		case REGISTER_STATE_RULES:
		{
			ShowServerRules(playerid, true);
		}
			 case REGISTER_STATE_CREATE_ACC:
		{
			if(CreatePlayerAccount(playerid))
			{
				SetPlayerData(playerid, P_ACCOUNT_STATE, ACCOUNT_STATE_REG_SKIN);

				SetSpawnInfo(playerid, 0, 0, 332.2033, -174.1066, 999.6743, 1.0, 0, 0, 0, 0, 0, 0);
				SpawnPlayer(playerid);

				SendClientMessage(playerid, 0xFFFFFFFF, " ");
				SendClientMessage(playerid, 0xFFFFFFFF, "Регистрация завершена!");
				SendClientMessage(playerid, 0x66CC00FF, "Теперь выберите внешность Вашего персонажа");
				SendClientMessage(playerid, 0xCECECEFF, "Подсказка: Используйте {FF6600}курсор мышки {CECECE}для выбора внешности");
			}
			else
			{
				SendClientMessage(playerid, 0xFF6600FF, "Ошибка создания аккаунта, перезайдите и повторите попытку");
				Kick:(playerid);
			}
		}
		default:
			return 1;
	}

	SetPlayerData(playerid, P_ACCOUNT_STEP_STATE, step);
	return 1;
}

Ошибку выбивает эту -     
            {
                SendClientMessage(playerid, 0xFF6600FF, "Ошибка создания аккаунта, перезайдите и повторите попытку");
                Kick:(playerid);
            }

Если еще какой-то код нужен, пишите, ибо давно не было, уже не помню что скидывать, что нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

CreatePlayerAccount покажите (можно не весь, а строчки с return). И большой код лучше вставлять под спойлер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PawnerTopoviy
10 минут назад, 16Shadows сказал:

CreatePlayerAccount покажите (можно не весь, а строчки с return). И большой код лучше вставлять под спойлер.

stock CreatePlayerAccount(playerid)
{
	new query[256];
	new Cache: result;

	new time = gettime();

	SetPlayerData(playerid, P_REG_TIME, time);
	SetPlayerData(playerid, P_LAST_LOGIN_TIME, time);

	format(g_player[playerid][P_REG_IP], 16, "%s", GetPlayerIpEx(playerid));
	format(g_player[playerid][P_LAST_IP], 16, "%s", GetPlayerIpEx(playerid));

	mysql_format
	(
		mysql, query, sizeof query,
		"INSERT INTO accounts "\
			"(name,password,email,refer,sex,reg_time,reg_ip,last_ip,last_login) "\
			"VALUES "\
			"('%e','%e','%e',%d,%d,%d,'%e','%e',%d)",
		GetPlayerNameEx(playerid),
		GetPlayerData(playerid, P_PASSWORD),
		GetPlayerData(playerid, P_EMAIL),
		GetPlayerData(playerid, P_REFER),
		GetPlayerData(playerid, P_SEX),
		GetPlayerData(playerid, P_REG_TIME),
		GetPlayerData(playerid, P_REG_IP),
		GetPlayerData(playerid, P_LAST_IP),
		GetPlayerData(playerid, P_LAST_LOGIN_TIME)
	);
	result = mysql_query(mysql, query);

	SetPlayerData(playerid, P_ACCOUNT_ID, cache_insert_id());
	cache_delete(result);

	return GetPlayerAccountID(playerid);
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Тогда GetPlayerAccountID

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.