Modesto
Умник
Это Снова я Modesto,это мой 4 урок
PHP:
#include <a_mysql>
#include <sscanf2>
// Database
#define SQL_HOST "Хост"
#define SQL_USER "Имя"
#define SQL_DB "БД Имя"
#define SQL_PASS "Пароль"
//---------------------------------
enum aPassport
{
aID,
aName[MAX_PLAYER_NAME],
aAge,
gPassport
};
new UCPassport[100][aPassport];
new apassportns;
//--------------------------------------
main()
{
if(mysql_ping() == 1) printf(" Подключение к базе `%s` успешно", SQL_DB);
else printf(" Подключение к базе `%s` не успешно", SQL_DB);
}
stock GetAccountID(playerid)
{
new query[128];
format(query, sizeof(query),"SELECT `ID` FROM `Passport` WHERE `Nickname` = '%s'", UCPassport[playerid][aName]);
mysql_query(query); // Отправляем запрос.
mysql_store_result(); // Видим
if(mysql_num_rows() == 1)
{ // Если у нас в результате выбрало 1 запись, т.е. аккаунт игрока.
UCPassport[playerid][aID] = mysql_fetch_int(); // ИД игрока равен номеру записи.
mysql_free_result(); // Очищаем память.
return UCPassport[playerid][aID]; // Возвращаем ИД игрока.
}
return 0;
}
// в ongamemodeinit
apassportns = CreatePickup(1239,24,360.8000,176.3166,1008.3828,-1); // пример мэрия пикап
// public OnPlayerPickUpPickup(playerid, pickupid)
if(pickupid == apassportns)
{
if(UCPassport[playerid][gPassport] == 1) return SendClientMessage(playerid, COLOR_GRAD1, "У Вас уже есть пасспорт!");
ShowPlayerDialog(playerid, 8183, 1, "Age", "Сколько вам лет ?", "Принять", "Отмена");
return 1;
}
// Понятно куда вставлять
case 8183:
{
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,8183,DIALOG_STYLE_INPUT,"Дата рождения","Работник паспортного стола говорит:\n- Сколько Вам лет?","Ок","Отмена");
return true;
}
new age = strval(inputtext);
if(age > 83)
{
format(string,sizeof(string)," Работник паспортного стола говорит: Чё то ты не выглядишь на %d лет! Не ври мне!", age);
SendClientMessage(playerid,COLOR_WHITE,string);
return false;
}
UCPassport[playerid][gPassport] = 1;
new query[2500];
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(query, sizeof(query), "INSERT INTO `Passport` (`Nickname`, `Age`,`Passport`) VALUE ('%s', '%d','%d')", PlayerName, age,UCPassport[playerid][gPassport]); // Добавляем в таблицу запись.
// INSERT - добавление записи в таблицу, 1. () - поля. 2. VALUE - значения этих полей.
mysql_query(query); // Отправляем запрос.
GetAccountID(playerid); // Узнаём ИД аккаунта, будет использоваться для сохранения и прочих операций.
// ShowPlayerDialog(playerid,16,DIALOG_STYLE_LIST,"- Где вы проживаете?","Los Santos\nSan Fierro\nLas Venturas","Ок","Отмена");
}
return true;
}
forward LoadAccounts(playerid);
public LoadAccounts(playerid)
{
new
query[128],
result[5+24+64];
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(query, sizeof(query), "SELECT * FROM `Passport` WHERE `ID` = '%i'", UCPassport[playerid][aID]);
// SELECT * - выбрать, FROM - с таблицы, WHERE - где, пароль равен введенному паролю и ID равен иду ника человека.
mysql_query(query); // Отправляем запрос.
mysql_store_result(); // Смотрим записи, которые мы выбрали запросом выше.
if(mysql_num_rows() == 1) { // Если выбрало только 1 аккаунт с таким паролем и ИД - успех, пароль введен верно, загружаем данные в массив.
mysql_fetch_row_format(result, "|"); // split, данные в результате записываются типо "
sscanf(result, "p<|>is[24]ii", // i - ид (int), s[размер] - string, ник и пароль.
UCPassport[playerid][aID],
UCPassport[playerid][aName],
UCPassport[playerid][aAge],
UCPassport[playerid][gPassport]);
}
printf("LoadAccounts Start ");
mysql_free_result();
return 1;
}
Также LoadAccounts(playerid); можно вставить для тех у кого RLS мод в OnPlayerLogin а на других модах сами все поймете
Работы Modesto
[Мануал] - Донат сервис на системе A1pay
[Мануал] - Система Бара и меню ( Уроки От Modesto )
[Мануал] - Вызывание меню с помощью чекпоинта. ( Уроки От Modesto )
[Мануал] - Донат сервис на системе A1pay
[Мануал] - Система Бара и меню ( Уроки От Modesto )
[Мануал] - Вызывание меню с помощью чекпоинта. ( Уроки От Modesto )
