4ybak
Умник
Здравствуйте,у меня такая проблема,баг с сохранением,больше 2 аккаунтов не сохраняет,дальше в БД идут тупо ник и пустые значения.
Всё что связано с сохранением:
Так же загрузка аккаунта:
Всё что связано с сохранением:
HTML:
stock UpdatePlayerAccount(playerid)
{
new mysql_string[247];
format(mysql_string, sizeof(mysql_string), "UPDATE `accounts` SET `Age` = '%d', `Nation` = '%d', `Level` = '%d', `Roct` = '%d', `Cash` = '%d', `Skin` = '%d', `Sex` = '%d', `AdminLvl` = '%d', `pAdminPassword` = '%d', `MuteTime` = '%d' WHERE `Name` = '%s'",
PlayerInfo[playerid][pAge],
PlayerInfo[playerid][pNation],
PlayerInfo[playerid][pLevel],
PlayerInfo[playerid][pRoct],
PlayerInfo[playerid][pCash],
PlayerInfo[playerid][pSkin],
PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pAdminPassword],
PlayerInfo[playerid][pMuteTime],
PlayerInfo[playerid][pExp],
PlayerInfo[playerid][pName]);
mysql_function_query(connect, mysql_string, true, "", "", playerid);
UpdateLevel();
printf(mysql_string);
return true;
}
stock UpdateAccount(playerid)
{
GetPlayerIp(playerid, PlayerInfo[playerid][pRegIp], 16);
new mysql_string[212];
format(mysql_string, sizeof(mysql_string), "UPDATE `accounts` SET `Age` = '%d', `Nation` = '%d', `Level` = '%d', `Roct` = '%d', `RegIp` = '%s', `Cash` = '%d', `Skin` = '%d', `Sex` = '%d' WHERE `Name` = '%s'",
PlayerInfo[playerid][pAge],
PlayerInfo[playerid][pNation],
PlayerInfo[playerid][pLevel],
PlayerInfo[playerid][pRoct],
PlayerInfo[playerid][pRegIp],
PlayerInfo[playerid][pCash],
PlayerInfo[playerid][pSkin],
PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pName]);
mysql_function_query(connect, mysql_string, true, "", "", playerid);
UpdateLevel();
printf(mysql_string);
return true;
}
HTML:
publics LoadAccount(playerid, password[])
{
new rows, fields;
new temp[128];
cache_get_data(rows,fields);
if(!rows)
{
if(GetPVarInt(playerid,"NeTotParol") == 3)
{
SendClientMessage(playerid, COLOR_SERVER, "[Информация] Вы исчерпали все попытки ввода пароля.");
SendClientMessage(playerid, COLOR_SERVER, "[Информация]{FFFFFF} Введите /(q)uit для того чтобы выйти из игры.");
KickJ(playerid);
}
SetPVarInt(playerid, "NeTotParol", GetPVarInt(playerid, "NeTotParol")+1);
SendClientMessage(playerid, COLOR_SERVER, "[Информация]{FFFFFF} Вы ввели не верный пароль!");
format(stringer, sizeof(stringer), "{FFFFFF}Добро пожаловать на {BF2F2F}"SERVERNAME".{FFFFFF}\n\
Данный аккаунт {00CC00}зарегистрирован.{FFFFFF}\n\
Для начала игры авторизуйтесь введя пароль в окошко ввода.\n\n\
Введён не верный пароль. Осталось попыток:{BF2F2F} [%d/3]", GetPVarInt(playerid, "NeTotParol"));
ShowPlayerDialog(playerid, 6, DIALOG_STYLE_PASSWORD, "{BF2F2F}RRP:{FFFFFF} Авторизация", stringer, "Далее", "Выход");
return true;
}
cache_get_field_content(0, "Level", temp), PlayerInfo[playerid][pLevel] = strval(temp);
cache_get_field_content(0, "Exp", temp), PlayerInfo[playerid][pExp] = strval(temp);
cache_get_field_content(0, "Sex", temp), PlayerInfo[playerid][pSex] = strval(temp);
cache_get_field_content(0, "Skin", temp), PlayerInfo[playerid][pSkin] = strval(temp);
cache_get_field_content(0, "Cash", temp), PlayerInfo[playerid][pCash] = strval(temp);
cache_get_field_content(0, "Roct", temp), PlayerInfo[playerid][pRoct] = strval(temp);
cache_get_field_content(0, "Nation", temp), PlayerInfo[playerid][pNation] = strval(temp);
cache_get_field_content(0, "AdminLvl", temp), PlayerInfo[playerid][pAdmin] = strval(temp);
cache_get_field_content(0, "pAdminPassword", temp), PlayerInfo[playerid][pAdminPassword] = strval(temp);
cache_get_field_content(0, "Age", temp), PlayerInfo[playerid][pAge] = strval(temp);
cache_get_field_content(0, "RegIp", temp), strmid(PlayerInfo[playerid][pRegIp], temp, 0, strlen(temp), 17);
SendClientMessage(playerid, COLOR_SERVER, "[Информация]{FFFFFF} Вы успешно авторизовались!");
SpawnPlayer(playerid);
if(PlayerInfo[playerid][pAdmin] >= 1)
{
SetPVarInt(playerid, "AdmLogin", 0);
SetPVarInt(playerid, "AdminKakIgrok", 0);
ShowPlayerDialog(playerid,8, DIALOG_STYLE_INPUT, "{BF2F2F}Админ-авторизация", "{FFFFFF}Введите ваш админ пароль для начала администратирования.\n\n\
{BF2F2F}Примичание:\n\
-{FFFFFF} Если вы хотите играть как игрок нажмите кнопку 'Игрок'.", "Войти", "Игрок");
}
return true;
}
