Egor45
Умник
Вопрос таков, где и как прописать сохранение переменных игрока в саму БД. В самом коде я незнаю где, и незнаю как. Вот паблики с сохранениями, помогите разобраться...Спасибкой не обижу.
Таблицу в бд создать могу, а прописать сохранение в павно неумею...Подскажите на примере как сделать сохранение админки допустим..
PHP:
public OnPlayerConnect(playerid)
{
new str[128];
mysql_real_escape_string(Name(playerid), Name(playerid));
format(str, sizeof(str),"SELECT `Name` FROM `Accounts` WHERE `Name` = '%s'", Name(playerid));
mysql_function_query(connectionHandle, str, true, "OnPlayerRegCheck","d", playerid);
return 1;
}
stock SavePlayer(p)
{
if(GetPVarInt(p,"Logged") > 0)
{
new str[128];
format(str,sizeof(str),"UPDATE `Accounts` SET `Key`, `Level` = '%d'",
PlayerInfo[p][Key], PlayerInfo[p][Level]);
format(str, sizeof(str),"%s WHERE `Name` = '%s'", str, Name(p));
mysql_query(str, -1, 0, connectionHandle);
}
return 1;
}
forward LoginCallback(i, password[]);
public LoginCallback(i, password[])
{
new rows, fields, string[144], maximum[128];
cache_get_data(rows, fields);
if(!rows)
{
if(GetPVarInt(i, "wrongPass") == 2) return SendClientMessage(i,-1,"Вы ввели пороль неправильно 3 раза, и были автоматически кикнуты сервером."), Kick(i);
SetPVarInt(i, "wrongPass", GetPVarInt(i, "wrongPass")+1);
format(string, sizeof(string), "Неверный пороль(осталось %i/3)\nВведите пороль:", 3 - GetPVarInt(i, "wrongPass"));
ShowPlayerDialog(i, 2, DIALOG_STYLE_PASSWORD, "Авторизация", string, "Вход", "Отмена");
return 1;
}
cache_get_field_content(0, "Level", maximum), PlayerInfo[i][Level] = strval(maximum);
SetPVarInt(i, "Logged", 1);
SendClientMessage(i,-1, "Добро пожаловать на сервер!");
SpawnPlayer(i), SavePlayer(i);
return 1;
}
stock OnPlayerLogin(i, password[])
{
new str[128];
format(str, sizeof(str),"SELECT * FROM `Accounts` WHERE `Name` = '%s' AND `Key` = '%s'", Name(i), password);
mysql_function_query(connectionHandle, str, true, "LoginCallback","ds", i, password);
return 1;
}
Последнее редактирование:
