Сегодня Понедельник | Дата: 29.04.2024 | Время: 02:49
                        
Последние новости
Оф. C-HUD GTA-ONE (v. beta 1.0) by Darius Stone для GTA - SA
Добавил: Kronos
Всего комментариев: 0
Новая волна GTA-ONE
Добавил: Ice_Code
Всего комментариев: 3
Трейлер Grand Theft Auto - V
Добавил: Kronos
Всего комментариев: 0
Новые темы форума
Last Empire War Z
Ответил: Kronos
Всего ответов:
Adobe Photoshop Touch
Ответил: Kronos
Всего ответов:
ePSXe for Android
Ответил: Kronos
Всего ответов:
Лучшие пользователи
Kronos
Логин: Kronos
Репутация: 10
Группа: Администраторы
Ice_Code
Логин: Ice_Code
Репутация: 2
Группа: Администраторы
ExT
Логин: ExT
Репутация: 1
Группа: Пользователи
Здравствуй, Гость! Авторизуйся или зарегистрируйся
Цвет фона
Случайные материалы



Последние материалы

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Pawn - скриптинг » Мануалы/уроки » MySQL » [Мануал] Регистрация на MySQL R8 (revision: 20)
[Мануал] Регистрация на MySQL R8 (revision: 20)
KronosДата: Воскресенье, 13.07.2014, 20:25 | Сообщение # 1
Местный мазафака
Сообщений: 117
Награды: 0
Репутация: 10
Добрый день уважаемые пользователи Pawno-Info!

Я видел большое количество просьб написать нормальную регистрацию на MySQL R7, вот я решил это сделать но так сказать обновить регистрацию на актуальную версию MySQL R8 ревизии: 20.

Приступаем:

Для начала добавляем в new.pwn названия Include.
Код
#include a_samp
#include a_mysql


Далее добавляем переменные и #define:
Код
#define opublic%0(%1) forward %0(%1); public %0(%1)

new DATABASE;
new QUERY[512];


Создаём enumeration чуть ниже переменных и директивы #define:
Код
enum Data { Password[32], }; new User[MAX_PLAYERS][Data];


Добавляем public'и ниже мода:
Код
public OnGameModeInit() return DATABASE = mysql_connect("Название хостинга", "Название логина", "Название базы данных", "Пароль");

public OnGameModeExit() return mysql_close(DATABASE);

public OnPlayerRequestClass(playerid, classid) { mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT `Name` FROM `Users` WHERE `Name` = '%e'", USER(playerid)), mysql_function_query(DATABASE, QUERY, true, "Register", "d", playerid);

public OnPlayerSpawn(playerid) return SetPlayerSkin(playerid, GetPVarInt(playerid, "New"));   
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 1:
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, 1, "{FFFFFF}РЕГИСТРАЦИЯ АККАУНТА", "\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы создать аккаунт введите Ваш пароль:", "ОК", "");
return SwitchRegister(playerid, inputtext);
}
case 2:
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, 1, "{FFFFFF}ВХОД В АККАУНТ", "\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы войти в аккаунт введите Ваш пароль:", "ОК", "");
return SwitchLogin(playerid, inputtext);
}
}
return true;
}


Добавляем Stock:
Код
stock USER(i) { static N[24]; GetPlayerName(i, N, 24); return N; }
stock SwitchRegister(i, passkey[])
{
  mysql_format(DATABASE, QUERY, "INSERT INTO `Users` (`Name`, `PassKey`) VALUES ('%e', '%e')", USER(i), passkey);     return mysql_function_query(DATABASE, QUERY, sizeof(QUERY), false, "OnRegister", "d", i);
}

stock SwitchLogin(i, passkey[]) return mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT * FROM `Users` WHERE `Name` = '%e' AND `Key` = '%e'", USER(i), passkey), mysql_function_query(DATABASE, QUERY, true, "OnLogin", "ds", i, passkey);

stock OnSave(i) return mysql_format(DATABASE, QUERY, sizeof(QUERY), "UPDATE `Users` SET `New` = '%d'", GetPVarInt(i, "New")), mysql_format(DATABASE, QUERY, sizeof(QUERY), "%s WHERE `Name` = '%e'", QUERY, User(i)), mysql_function_query(DATABASE, QUERY, false, "", "");  


Добавляем нестандартные Public:
Код
opublic Register(playerid)
{
new r, f;
cache_get_data(r, f);
if(!r)
{ ShowPlayerDialog(playerid, 2, 1, "{FFFFFF}ВХОД В АККАУНТ", "\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы войти в аккаунт введите ваш пароль:", "ОК", "");
}
else
{
ShowPlayerDialog(playerid, 1, 1, "{FFFFFF}РЕГИСТРАЦИЯ АККАУНТА", "'\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы создать аккаунт введите ваш пароль:", "ОК", "");
}
return true;
}

opublic OnRegister(playerid) return 1; // Введите ваши диалоги, данные в окно этот Public.

opublic OnLogin(i, passkey[]) return SpawnPlayer(i), OnSave(i);


База данных:
Код
CREATE TABLE IF NOT EXISTS `Users` (
`Name` varchar(24) COLLATE utf8 NOT NULL,
`PassKey` varchar(30) CHARACTER SET utf8 NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8;


Регистрация будет дорабатываться по мере времени и по желанию пользователей!

К сожалению функции cache_get_row не были использованы т.к не было нужды в этом, регистрация чисто на MySQL без всяких Level'ов и Exp.

В случае обнаружения ошибок пишите, ошибки могут быть т.к у меня глючит клавиатуры и мышка.

Ссылки на MySQL


СообщениеДобрый день уважаемые пользователи Pawno-Info!

Я видел большое количество просьб написать нормальную регистрацию на MySQL R7, вот я решил это сделать но так сказать обновить регистрацию на актуальную версию MySQL R8 ревизии: 20.

Приступаем:

Для начала добавляем в new.pwn названия Include.
Код
#include a_samp
#include a_mysql


Далее добавляем переменные и #define:
Код
#define opublic%0(%1) forward %0(%1); public %0(%1)

new DATABASE;
new QUERY[512];


Создаём enumeration чуть ниже переменных и директивы #define:
Код
enum Data { Password[32], }; new User[MAX_PLAYERS][Data];


Добавляем public'и ниже мода:
Код
public OnGameModeInit() return DATABASE = mysql_connect("Название хостинга", "Название логина", "Название базы данных", "Пароль");

public OnGameModeExit() return mysql_close(DATABASE);

public OnPlayerRequestClass(playerid, classid) { mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT `Name` FROM `Users` WHERE `Name` = '%e'", USER(playerid)), mysql_function_query(DATABASE, QUERY, true, "Register", "d", playerid);

public OnPlayerSpawn(playerid) return SetPlayerSkin(playerid, GetPVarInt(playerid, "New"));   
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 1:
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, 1, "{FFFFFF}РЕГИСТРАЦИЯ АККАУНТА", "\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы создать аккаунт введите Ваш пароль:", "ОК", "");
return SwitchRegister(playerid, inputtext);
}
case 2:
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, 1, "{FFFFFF}ВХОД В АККАУНТ", "\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы войти в аккаунт введите Ваш пароль:", "ОК", "");
return SwitchLogin(playerid, inputtext);
}
}
return true;
}


Добавляем Stock:
Код
stock USER(i) { static N[24]; GetPlayerName(i, N, 24); return N; }
stock SwitchRegister(i, passkey[])
{
  mysql_format(DATABASE, QUERY, "INSERT INTO `Users` (`Name`, `PassKey`) VALUES ('%e', '%e')", USER(i), passkey);     return mysql_function_query(DATABASE, QUERY, sizeof(QUERY), false, "OnRegister", "d", i);
}

stock SwitchLogin(i, passkey[]) return mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT * FROM `Users` WHERE `Name` = '%e' AND `Key` = '%e'", USER(i), passkey), mysql_function_query(DATABASE, QUERY, true, "OnLogin", "ds", i, passkey);

stock OnSave(i) return mysql_format(DATABASE, QUERY, sizeof(QUERY), "UPDATE `Users` SET `New` = '%d'", GetPVarInt(i, "New")), mysql_format(DATABASE, QUERY, sizeof(QUERY), "%s WHERE `Name` = '%e'", QUERY, User(i)), mysql_function_query(DATABASE, QUERY, false, "", "");  


Добавляем нестандартные Public:
Код
opublic Register(playerid)
{
new r, f;
cache_get_data(r, f);
if(!r)
{ ShowPlayerDialog(playerid, 2, 1, "{FFFFFF}ВХОД В АККАУНТ", "\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы войти в аккаунт введите ваш пароль:", "ОК", "");
}
else
{
ShowPlayerDialog(playerid, 1, 1, "{FFFFFF}РЕГИСТРАЦИЯ АККАУНТА", "'\t{FFFFFF}Добро пожаловать на сервер!\n\tДля того чтобы создать аккаунт введите ваш пароль:", "ОК", "");
}
return true;
}

opublic OnRegister(playerid) return 1; // Введите ваши диалоги, данные в окно этот Public.

opublic OnLogin(i, passkey[]) return SpawnPlayer(i), OnSave(i);


База данных:
Код
CREATE TABLE IF NOT EXISTS `Users` (
`Name` varchar(24) COLLATE utf8 NOT NULL,
`PassKey` varchar(30) CHARACTER SET utf8 NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8;


Регистрация будет дорабатываться по мере времени и по желанию пользователей!

К сожалению функции cache_get_row не были использованы т.к не было нужды в этом, регистрация чисто на MySQL без всяких Level'ов и Exp.

В случае обнаружения ошибок пишите, ошибки могут быть т.к у меня глючит клавиатуры и мышка.

Ссылки на MySQL

Автор - Kronos
Дата добавления - 13.07.2014 в 20:25
Форум » Pawn - скриптинг » Мануалы/уроки » MySQL » [Мануал] Регистрация на MySQL R8 (revision: 20)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Revision by www.GTA-ONE.ru
Copyright © 2024 |