PDA

Просмотр полной версии : [Вопрос] Проблема с кодом



YukiLANE
19.07.2018, 17:14
Суть в том что мод компилируется, но при входе на сервер что бы проверить свою работу диологовое окно не показывается.
База данных подключается
Код ниже


enum player
{
ID,
NAME[MAX_PLAYER_NAME],
PASSWORD[32],
}
new player_info[MAX_PLAYERS][player];

enum dialogs
{
DLG_NONE,
DLG_REG,
DLG_LOG,
}

public OnGameModeInit()
{
ConnectMySQL();
return 1;
}

stock ConnectMySQL()
{
dbHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_BASE );
switch(mysql_errno())
{
case 0: print("Подключение к MySQL прошло успешно");
default: print ("MYSQL Не запущен, либо некорректно работает");
}
mysql_log(ERROR | WARNING);
mysql_set_charset("cp1251");
}
public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
return 1;
}

public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, player_info[playerid][NAME], MAX_PLAYER_NAME);
static const fmt_query[] = "SELECT `id` FROM `user` WHERE `name` = `%s`";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME]);
mysql_tquery(dbHandle, query, "CheckRegistration", "i", playerid);
return 1;
}

forward CheckRegistration(playerid);
public CheckRegistration(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows) ShowLogin(playerid);
else ShowRegistration(playerid);
}

stock ShowLogin(playerid)
{
SCM(playerid, COLOR_WHITE,"Игрок зарегистрирован");
}

stock ShowRegistration(playerid)
{
new dialog[400+(-2+MAX_PLAYER_NAME)];
format(dialog, sizeof(dialog),
"{FFFFFF}Уважаемый {0089ff}%s,{FFFFFF}, мы рады видеть вас на {0089ff}Oregon Role Play{FFFFFF}\n\
Аккаунт с таким ником не зарегистрирован\n\
Для игры на сервере Вы должны пройти регистрацию\n\n\
Придумайте надежный пароль для вашего будущего аккаунта и нажмите \"Далее\"\n\
{ffd100}\t*Пароль должен быть от 6-ти до 32-ух символов\n\
\t*Пароль должен состоять только из цифр и латинских символов",
player_info[playerid][NAME]
);
SPD(playerid, DLG_REG, DIALOG_STYLE_INPUT, "{ffd100}Регистрация{FFFFFF} = Ввод пароля", dialog, "Далее", "Выход");
}

h3ckphy
28.07.2020, 14:45
Приведи код в порядок. Никто не хочет рыться в твоем дерьме и искать ошибку.
У тебя диалог должен показаться после получения ответа от БД. Значит, дело в MySQL. Посмотри его логи. И лучше писать в этот (https://pro-pawn.ru/forumdisplay.php?7-%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BF%D0%BE-Pawn-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3%D1%83) раздел. По таким вопросам туда надо.