Просмотр полной версии : [Вопрос] Опять же регистрация...
Приветствую, уважаемый. У меня вот такая проблема. Не получается показать диалог с показом ввода Emaila игроку
Вот код, вроде бы все правильно сделал (наверное):
Добавил Email
enum pInfo
{
Key[128],
Level,
Email
}
Далее добавил сам диалог:
case 3:
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"{ffffff}Email","{ffffff}Введите Email","Далее","Отмена");
OnPlayerRegister(playerid,inputtext);
return 1;
}
Далее добавил сохранение введенной информации при регистрации (думаю правильно сказал):
OnPlayerRegister(p, password[])
{
new str[128];
format(str, sizeof(str), "INSERT INTO `Accounts` (`Name`, `Key`, `Email`) VALUES ('%s', '%s', '%s')", Name(p), password, Email);
mysql_function_query(mysql_variable, str, false, "RegisterCallback","d", p);
return 1;
}
А ты вообще вызываешь этот диалог?
А ты вообще вызываешь этот диалог?
Вто то и проблема, я не знаю как. Вот и написал сюды
- - - Добавлено - - -
Вот*
Кидай полностью диалоги регистрации
Кидай полностью диалоги регистрации
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 1://Регистрация
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{ffffff}Регистрация","{ffffff}Добро пожаловать на сервер Antlantic RolePlay!\nВаш аккаунт не зарегистрирован!\n\nВведите пароль:","Далее","Отмена");
OnPlayerRegister(playerid,inputtext);
return 1;
}
case 2://Авторизация
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"{ffffff}Авторизация","{ffffff}Здравствуйте!\n\nВы зарегистрированы!\nВведите пароль:","Вход","Отмена");
OnPlayerLogin(playerid,inputtext);
return 1;
}
case 3:
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"{ffffff}Email","{ffffff}Введите Email","Далее","Отмена");
OnPlayerRegister(playerid,inputtext);
return 1;
}
}
return 1;
}
enum pInfo
{
Key[32],
Level,
Email[128]
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 1://Регистрация
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{ffffff}Регистрация","{ffffff}Добро пожаловать на сервер Antlantic RolePlay!\nВаш аккаунт не зарегистрирован!\n\nВведите пароль:","Далее","Отмена");
strmid(PlayerInfo[playerid][pKey], inputtext, 0, strlen(inputtext), 32);
ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"{ffffff}Email","{ffffff}Введите Email","Далее","Отмена");
// OnPlayerRegister(playerid,inputtext);
return 1;
}
case 2://Авторизация
{
if(!strlen(inputtext))return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"{ffffff}Авторизация","{ffffff}Здравствуйте!\n\nВы зарегистрированы!\nВведите пароль:","Вход","Отмена");
OnPlayerLogin(playerid,inputtext);
return 1;
}
case 3:
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"{ffffff}Email","{ffffff}Введите Email","Далее","Отмена");
strmid(PlayerInfo[playerid][pEmail], inputtext, 0, strlen(inputtext), 128);
OnPlayerRegister(playerid);
return 1;
}
}
return 1;
}
OnPlayerRegister(p)
{
new str[MAX_PLAYER_NAME+32+128];
format(str, sizeof(str), "INSERT INTO `Accounts` (`Name`, `Key`, `Email`) VALUES ('%s', '%s', '%s')", Name(p), PlayerInfo[playerid][pKey], PlayerInfo[playerid][pEmail]);
mysql_function_query(mysql_variable, str, false, "RegisterCallback","d", p);
return 1;
}
Отпишись если что.
- - - Добавлено - - -
new str[78+MAX_PLAYER_NAME+32+128];
C:\Users\Âëàäèìèð\Desktop\v 0.0.1\gamemodes\new.pwn(81) : error 017: undefined symbol "pKey"
C:\Users\Âëàäèìèð\Desktop\v 0.0.1\gamemodes\new.pwn(95) : error 017: undefined symbol "pEmail"
C:\Users\Âëàäèìèð\Desktop\v 0.0.1\gamemodes\new.pwn(130) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
C:\Users\Âëàäèìèð\Desktop\v 0.0.1\gamemodes\new.pwn(81) : error 017: undefined symbol "pKey"
C:\Users\Âëàäèìèð\Desktop\v 0.0.1\gamemodes\new.pwn(95) : error 017: undefined symbol "pEmail"
C:\Users\Âëàäèìèð\Desktop\v 0.0.1\gamemodes\new.pwn(130) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
Протупил, pEmail убери у них в начале букву "p".
Если это в OnplayerRegister... то playerid замени на p
Протупил, pEmail убери у них в начале букву "p".
Если это в OnplayerRegister... то playerid замени на p
Все вышло, сейчас попробую затестить :)
- - - Добавлено - - -
Email не сохраняется в БД, что делать?
Все вышло, сейчас попробую затестить :)
- - - Добавлено - - -
Email не сохраняется в БД, что делать?
Только email ? ты заменил переменную в стоке регистрации ?
Если нет, то new str[78+MAX_PLAYER_NAME+32+128];
Только email ? ты заменил переменную в стоке регистрации ?
Если нет, то new str[78+MAX_PLAYER_NAME+32+128];
Ой, Он сохраняется, но только в таблицу Name
mysql_function_query(mysql_variable, str, false, "RegisterCallback","d", p);
Зачем? что там ? дай его сюда..
OnPlayerRegister(p)
{
new str[78+MAX_PLAYER_NAME+32+128];
mysql_format(mysql_variable,str, sizeof(str), "INSERT INTO `Accounts` (`Name`, `Key`, `Email`) VALUE ('%s', '%s', '%s')", Name(p), PlayerInfo[p][Key], PlayerInfo[p][Email]);
mysql_function_query(mysql_variable, str, false, "", "");
return 1;
}
Да, я все сделал. Но так и не сохраняется
- - - Добавлено - - -
mysql_function_query(mysql_variable, str, false, "RegisterCallback","d", p);
Зачем? что там ? дай его сюда..
OnPlayerRegister(p)
{
new str[78+MAX_PLAYER_NAME+32+128];
mysql_format(mysql_variable,str, sizeof(str), "INSERT INTO `Accounts` (`Name`, `Key`, `Email`) VALUE ('%s', '%s', '%s')", Name(p), PlayerInfo[p][Key], PlayerInfo[p][Email]);
mysql_function_query(mysql_variable, str, false, "", "");
return 1;
}
public RegisterCallback(playerid);
public RegisterCallback(playerid)
{
SendClientMessage(playerid, -1, "Ðåãèñòðàöèÿ ïðîøëà óñïåøíî!");
SetPVarInt(playerid,"Logged", 1);
SpawnPlayer(playerid);
return 1;
}
Ой.
public RegisterCallback(playerid);
public RegisterCallback(playerid)
{
SendClientMessage(playerid, -1, "Регистрация прошла успешно!");
SetPVarInt(playerid,"Logged", 1);
SpawnPlayer(playerid);
return 1;
}
- - - Добавлено - - -
логи mysql дай
[15:49:45] [ERROR] CMySQLQuery::Execute - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' `Level` = '0' WHERE `Name` = 'Marcus_Grace'' at line 1
[13:26:40] [ERROR] CMySQLQuery::Execute - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' `Level` = '0' WHERE `Name` = 'Test_Bomj'' at line 1
public RegisterCallback(playerid);
public RegisterCallback(playerid)
Что за ?...
forward RegisterCallback(playerid);
public RegisterCallback(playerid)
public RegisterCallback(playerid);
public RegisterCallback(playerid)
Что за ?...
forward RegisterCallback(playerid);
public RegisterCallback(playerid)
:crazy:
У тебя ячейка в бд Email, хоть тип не int ?
У тебя ячейка в бд Email, хоть тип не int ?
=) Не понял, что ты сказал
- - - Добавлено - - -
Ой ступил, ща...
- - - Добавлено - - -
varchar(64
- - - Добавлено - - -
А может кодировка таблицы быть "виновата"? Например у меня cp1251_bin, а заменить к примеру на utf8_general_ci
Такс...
OnPlayerRegister(p)
{
new str[78+MAX_PLAYER_NAME+32+128];
mysql_format(mysql_variable,str, sizeof(str), "INSERT INTO `Accounts` (`Name`, `Key`, `Email`) VALUE ('%s', '%s', '%s')", Name(p), PlayerInfo[p][Key], PlayerInfo[p][Email]);
printf("Email - %s",PlayerInfo[p][Email]);
mysql_function_query(mysql_variable, str, false, "", "");
return 1;
}
И добавь
public OnQueryError(errorid, error[], callback[], query[], connectionHandle) return print(error);
- - - Добавлено - - -
Потом покажешь что выдаст. utf8_general_ci ,да замени
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3z-R4, (C)2005-2014 SA-MP Team
[11:43:39] filterscripts = "" (string)
[11:43:39]
[11:43:39] Server Plugins
[11:43:39] --------------
[11:43:39] Loading plugin: sscanf
[11:43:39] Failed.
[11:43:39] Loading plugin: mysql
[11:43:39] >> plugin.mysql: R39-2 successfully loaded.
[11:43:39] Loaded.
[11:43:39] Loading plugin: streamer
[11:43:39] Loaded.
[11:43:39] Loading plugin: dc_cmd
[11:43:39] Daniel's CMD plugin v2.8
[11:43:39] (c) 2014 Daniel_Cortez
[11:43:39] www.pro-pawn.ru
[11:43:39] Loaded.
[11:43:39] Loaded 3 plugins.
[11:43:40]
[11:43:40] Filterscripts
[11:43:40] ---------------
[11:43:40] Loaded 0 filterscripts.
[11:43:40] Подключение к базе `gamebase` успешно
[11:43:40] Number of vehicle models: 0
[11:44:07] Incoming connection: 127.0.0.1:65411
[11:44:07] [join] ASVd has joined the server (0:127.0.0.1)
[11:44:13] [part] ASVd has left the server (0:1)
[11:44:51] Incoming connection: 127.0.0.1:65418
[11:44:51] [join] ASVD has joined the server (0:127.0.0.1)
[11:44:58] Email -
[email protected]
[11:45:03] [part] ASVD has left the server (0:1)
- - - Добавлено - - -
Все сохранять стало. Но теперь регистрация обрывает, после регистрации камера так и стоит. Нажимая на кнопку "sapwn" Ты выкидыват. И сервер предупреждает, что я не зарегистрирован и все
да.. это засунь в onplayerregister ....
SendClientMessage(playerid, -1, "Регистрация прошла успешно!");
SetPVarInt(playerid,"Logged", 1);
SpawnPlayer(playerid);
да.. это засунь в onplayerregister ....
SendClientMessage(playerid, -1, "Регистрация прошла успешно!");
SetPVarInt(playerid,"Logged", 1);
SpawnPlayer(playerid);
У меня эта же фигня стоит в RegisterCallback
Мы убрали вызов с onplayerregister... Или ты вернул ?
- - - Добавлено - - -
модераторы опупеют от нашего флуда :D
Мы убрали вызов с onplayerregister... Или ты вернул ?
- - - Добавлено - - -
модераторы опупеют от нашего флуда :D
OnPlayerRegister(p)
{
new str[78+MAX_PLAYER_NAME+32+128];
mysql_format(mysql_variable,str, sizeof(str), "INSERT INTO `Accounts` (`Name`, `Key`, `Email`) VALUE ('%s', '%s', '%s')", Name(p), PlayerInfo[p][Key], PlayerInfo[p][Email]);
printf("Email - %s",PlayerInfo[p][Email]);
mysql_function_query(mysql_variable, str, false, "", "");
SendClientMessage(playerid, -1, "Ðåãèñòðàöèÿ ïðîøëà óñïåøíî!");
SetPVarInt(playerid,"Logged", 1);
SpawnPlayer(playerid);
return 1;
}
:В
Дак у тебя что то с плагином [11:43:39] Loading plugin: sscanf
[11:43:39] Failed.
:( Ща скачаю другой.
- - - Добавлено - - -
xD У меня плаигн был, а инклуда небыло. Ошибка все еще осталась
- - - Добавлено - - -
Может как нибудь обратно в RegisterCallback ?
- - - Добавлено - - -
Добавил переменную
new playerid;
Только не знаю, можно ли так делать?
- - - Добавлено - - -
Р Е Ш Е Н О
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot