Mathian
Мастер
Всем Хай!
Вступление:
Я заметил, что практически нет уроков и игровых режимов на SQLite.
Вот решил написать достойную регистрацию и сохранение аккаунтов на SQLite.
-Если кому не нравится - просто: "Ctrl + W"
Регистрация/Авторизация и Сохранение Аккаунтов на SQLite
Ну и начинаем работать((Мануал)):
В начало мода, после:
Ставим:
В public OnGameModeInit() ((Лучше сразу заменить на это)):
В public OnGameModeExit():
В public OnPlayerConnect(playerid):
В public OnPlayerDisconnect(playerid, reason):
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
В Самый Конец Мода:
И так, что у нас вышло, не считая пустых пабликов:
Компилируйте((F5))
И если получаете как у меня:
То всё отлично!
По поводу SetGravity(0.009); - http://pawno-info.ru/showthread.php?t=215447
Всем Спасибо За Внимание!
Автор Данного Урока - Я ((Lev_Popov))
Вступление:
Я заметил, что практически нет уроков и игровых режимов на SQLite.
Вот решил написать достойную регистрацию и сохранение аккаунтов на SQLite.
-Если кому не нравится - просто: "Ctrl + W"
Регистрация/Авторизация и Сохранение Аккаунтов на SQLite
Для того, что б начать писать мод нам нужен Windows или Linux сервер.
Их вы можете скачать здесь:
Советую брать Linux т.к. хостингов на Windows очень мало, практически все на Linux.
Так же нам нужна программа Pawno и соответственно компилятор, он идёт с программой. ((В папке с сервером))
Скачайте Сервер -> Разархивируйте -> Можете удалить всё из папок "Filterscripts" и "Gamemodes" -> Откройте папку "pawno" -> Откройте "pawno.exe" -> Нажмите "File" -> "New"((Ctrl+N))
Удаляем:
Удаляем:
И удаляем:
Должно остаться:
Их вы можете скачать здесь:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
((Если есть зелёные модеры - ссылка на офф. сайт не является рекламой))Советую брать Linux т.к. хостингов на Windows очень мало, практически все на Linux.
Так же нам нужна программа Pawno и соответственно компилятор, он идёт с программой. ((В папке с сервером))
Скачайте Сервер -> Разархивируйте -> Можете удалить всё из папок "Filterscripts" и "Gamemodes" -> Откройте папку "pawno" -> Откройте "pawno.exe" -> Нажмите "File" -> "New"((Ctrl+N))
Удаляем:
PHP:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
PHP:
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
PHP:
#endif
PHP:
#include <a_samp>
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
Качаем SQLite Database Browser -
Пароль - lev
Открываем, можно просто файл с форматом .db перенести туда и всё.
Если нужно подробней, то ищите мануалы/уроки по использованию.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Пароль - lev
Открываем, можно просто файл с форматом .db перенести туда и всё.
Если нужно подробней, то ищите мануалы/уроки по использованию.
В начало мода, после:
PHP:
#include <a_samp>
PHP:
enum pInfo
{
pID,//ID Аккаунта. Для лёгкого поиска игрока в БД, по ID его аккаунта.
pName[MAX_PLAYER_NAME],//Имя Игрока.
pPassword[16],//Пароль игрока.
pAdmin,//Админка.
pVIP,//Vip'ка.
pCash,//Деньги.
pLevel,//Уровень.
pKills,//Убийства.
pDeaths,//Смерти.
pMember,//Организация.
pSytost,//Сытость.
pJajda,//Жажда.
pNujda,//Нужда.
bool: USER_LOGGED_IN//Авторизирован ли игрок.
};
new PlayerInfo[MAX_PLAYERS][pInfo];
new DB: Database;
PHP:
SetGameModeText("SQLite");//Название GM
SetGravity(0.009);//Описание Внизу
AllowInteriorWeapons(0);
DisableInteriorEnterExits();//Убираем Стандартные Интерьеры
EnableStuntBonusForAll(0);//Убираем Стант Бонусы
Database = db_open("Players.db");
db_query(Database, "CREATE TABLE IF NOT EXISTS users (ID Int PRIMARY KEY AUTOINCREMENT, Username VARCHAR(24), Password VARCHAR(16), Admin Int, Vip Int, Money Int, Level Int, Kills Int, Deaths Int, Member Int, Sytost Int, Jajda Int, Nujda Int)");
AddPlayerClass(1, 2528.9143,-1667.7504,15.1689,91.2860,0,0,0,0,0,0);
PHP:
db_close(Database);
PHP:
for(new i; i < _: pInfo; ++i) PlayerInfo[playerid][pInfo: i] = 0;
new Query[71], DBResult: Result;
format(Query, sizeof(Query), "SELECT Password FROM users WHERE Username = '%s' LIMIT 0, 1", PlayerName(playerid));
Result = db_query(Database, Query);
if(db_num_rows(Result))
{
db_get_field_assoc(Result, "Password", PlayerInfo[playerid][pPassword], 16);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "{34c924}Авторизация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {34c924}зарегистрирован\n{ffffff}Чтобы начать игру нужно Авторизоваться\n\n{ffffff}Введите свой пароль:", "Вход", "Выход");
}
else ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{34c924}Регистрация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {FF0000}не зарегистрирован\n{ffffff}Чтобы начать игру нужно пройти Регистрацию\n\n\t{FF0000}•{FFFFFF}Пароль должен состоять из Латинских букв\n\t{FF0000}•{FFFFFF}Длина пароль от {FF0000}6 {FFFFFF}до {FF0000}16 {FFFFFF}символов\n\n{FFFFFF}Придумайте свой пароль:", "Готово", "Выход");
db_free_result(Result);
PHP:
if(PlayerInfo[playerid][USER_LOGGED_IN] == true)
{
new Query[128];
format(Query, sizeof(Query), "UPDATE users SET Admin = %d, Money = %d, Level = %d, Kills = %d, Deaths = %d, Sytost = %d, Jajda = %d, Nujda = %d, Member = %d WHERE Username = '%s'",PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pCash],PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pSytost],PlayerInfo[playerid][pJajda],PlayerInfo[playerid][pNujda],PlayerInfo[playerid][pMember],PlayerName(playerid));
db_query(Database, Query);
}
for(new i; i < _: pInfo; ++i) PlayerInfo[playerid][pInfo: i] = 0;
PHP:
if(dialogid == 0)
{
if(response)
{
if(!inputtext[0]) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "{34c924}Авторизация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {34c924}зарегистрирован\n{ffffff}Чтобы начать игру нужно Авторизоваться\n\n{ffffff}Введите свой пароль:", "Вход", "Выход");
new buf[16];
if(!strcmp(buf, PlayerInfo[playerid][pPassword], false))
{
new Query[75], DBResult: Result;
format(Query, sizeof(Query), "SELECT * FROM users WHERE username = '%s' LIMIT 0, 1", PlayerName(playerid));
Result = db_query(Database, Query);
if(db_num_rows(Result))
{
db_get_field_assoc(Result, "ID", Query, 7);
PlayerInfo[playerid][pID] = strval(Query);
db_get_field_assoc(Result, "Admin", Query, 2);
PlayerInfo[playerid][pAdmin] = strval(Query);
db_get_field_assoc(Result, "Vip", Query, 3);
PlayerInfo[playerid][pVIP] = strval(Query);
db_get_field_assoc(Result, "Money", Query, 9);
PlayerInfo[playerid][pCash] = strval(Query);
db_get_field_assoc(Result, "Level", Query, 3);
PlayerInfo[playerid][pLevel] = strval(Query);
db_get_field_assoc(Result, "Kills", Query, 9);
PlayerInfo[playerid][pKills] = strval(Query);
db_get_field_assoc(Result, "Deaths", Query, 9);
PlayerInfo[playerid][pDeaths] = strval(Query);
db_get_field_assoc(Result, "Member", Query, 2);
PlayerInfo[playerid][pMember] = strval(Query);
db_get_field_assoc(Result, "Sytost", Query, 3);
PlayerInfo[playerid][pSytost] = strval(Query);
db_get_field_assoc(Result, "Jajda", Query, 3);
PlayerInfo[playerid][pJajda] = strval(Query);
db_get_field_assoc(Result, "Nujda", Query, 3);
PlayerInfo[playerid][pNujda] = strval(Query);
PlayerInfo[playerid][USER_LOGGED_IN] = true;
GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
}
db_free_result(Result);
}
else ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "{34c924}Авторизация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {34c924}зарегистрирован\n{ffffff}Чтобы начать игру нужно Авторизоваться\n\n{ffffff}Введите свой пароль:", "Вход", "Выход");
}
else Kick(playerid);
return true;
}
if(dialogid == 1)
{
if(response)
{
if(!IsValidPassword(inputtext))
{
SendClientMessage(playerid, -1, "{ffffff}Недопустимые символы в проле. Доступны: от {FF0000}A {ffffff}до {FF0000}Z, {ffffff}от {FF0000}a {ffffff}до {FF0000}z, {ffffff}от {FF0000}0 {ffffff}до {FF0000}9");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{34c924}Регистрация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {FF0000}не зарегистрирован\n{ffffff}Чтобы начать игру нужно пройти Регистрацию\n\n\t{FF0000}•{FFFFFF}Пароль должен состоять из Латинских букв\n\t{FF0000}•{FFFFFF}Длина пароль от {FF0000}6 {FFFFFF}до {FF0000}16 {FFFFFF}символов\n\n{FFFFFF}Придумайте свой пароль:", "Готово", "Выход");
return true;
}
if(strlen(inputtext) < 6 || strlen(inputtext) > 16)
{
SendClientMessage(playerid, -1, "{ffffff}В пароле должно быть от {FF0000}6 {ffffff}до {FF0000}16 {ffffff}символов.");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{34c924}Регистрация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {FF0000}не зарегистрирован\n{ffffff}Чтобы начать игру нужно пройти Регистрацию\n\n\t{FF0000}•{FFFFFF}Пароль должен состоять из Латинских букв\n\t{FF0000}•{FFFFFF}Длина пароль от {FF0000}6 {FFFFFF}до {FF0000}16 {FFFFFF}символов\n\n{FFFFFF}Придумайте свой пароль:", "Готово", "Выход");
return true;
}
new Query[208];
format(Query, sizeof(Query), "INSERT INTO users (Username, Password) VALUES ('%s', '%s')", PlayerName(playerid), inputtext);
db_query(Database, Query);
PlayerInfo[playerid][USER_LOGGED_IN] = true;
}
else Kick(playerid);
return true;
}
PHP:
PlayerName(playerid)
{
new Name[24];
GetPlayerName(playerid,Name,24);
return Name;
}
stock IsValidPassword(const password[])
{
for(new i = 0; password[i] != EOS; ++i)
{
switch(password[i])
{
case '0'..'9', 'A'..'Z', 'a'..'z': continue;
default: return false;
}
}
return true;
}
PHP:
#include <a_samp>
enum pInfo
{
pID,//ID Аккаунта. Для лёгкого поиска игрока в БД, по ID его аккаунта.
pName[MAX_PLAYER_NAME],//Имя Игрока.
pPassword[16],//Пароль игрока.
pAdmin,//Админка.
pVIP,//Vip'ка.
pCash,//Деньги.
pLevel,//Уровень.
pKills,//Убийства.
pDeaths,//Смерти.
pMember,//Организация.
pSytost,//Сытость.
pJajda,//Жажда.
pNujda,//Нужда.
bool: USER_LOGGED_IN//Авторизирован ли игрок.
};
new PlayerInfo[MAX_PLAYERS][pInfo];
new DB: Database;
public OnGameModeInit()
{
SetGameModeText("SQLite");
SetGravity(0.009);
AllowInteriorWeapons(0);
DisableInteriorEnterExits();
EnableStuntBonusForAll(0);
Database = db_open("Players.db");
db_query(Database, "CREATE TABLE IF NOT EXISTS users (ID Int, Username VARCHAR(24), Password VARCHAR(16), Admin Int, Vip Int, Money Int, Level Int, Kills Int, Deaths Int, Member Int, Sytost Int, Jajda Int, Nujda Int)");
AddPlayerClass(1, 2528.9143,-1667.7504,15.1689,91.2860,0,0,0,0,0,0);
return true;
}
public OnGameModeExit()
{
db_close(Database);
return true;
}
public OnPlayerConnect(playerid)
{
for(new i; i < _: pInfo; ++i) PlayerInfo[playerid][pInfo: i] = 0;
new Query[71], DBResult: Result;
format(Query, sizeof(Query), "SELECT Password FROM users WHERE Username = '%s' LIMIT 0, 1", PlayerName(playerid));
Result = db_query(Database, Query);
if(db_num_rows(Result))
{
db_get_field_assoc(Result, "Password", PlayerInfo[playerid][pPassword], 16);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "{34c924}Авторизация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {34c924}зарегистрирован\n{ffffff}Чтобы начать игру нужно Авторизоваться\n\n{ffffff}Введите свой пароль:", "Вход", "Выход");
}
else ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{34c924}Регистрация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {FF0000}не зарегистрирован\n{ffffff}Чтобы начать игру нужно пройти Регистрацию\n\n\t{FF0000}•{FFFFFF}Пароль должен состоять из Латинских букв\n\t{FF0000}•{FFFFFF}Длина пароль от {FF0000}6 {FFFFFF}до {FF0000}16 {FFFFFF}символов\n\n{FFFFFF}Придумайте свой пароль:", "Готово", "Выход");
db_free_result(Result);
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
if(PlayerInfo[playerid][USER_LOGGED_IN] == true)
{
new Query[128];
format(Query, sizeof(Query), "UPDATE users SET Admin = %d, Money = %d, Level = %d, Kills = %d, Deaths = %d, Sytost = %d, Jajda = %d, Nujda = %d, Member = %d WHERE Username = '%s'",PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pCash],PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pSytost],PlayerInfo[playerid][pJajda],PlayerInfo[playerid][pNujda],PlayerInfo[playerid][pMember],PlayerName(playerid));
db_query(Database, Query);
}
for(new i; i < _: pInfo; ++i) PlayerInfo[playerid][pInfo: i] = 0;
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 0)
{
if(response)
{
if(!inputtext[0]) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "{34c924}Авторизация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {34c924}зарегистрирован\n{ffffff}Чтобы начать игру нужно Авторизоваться\n\n{ffffff}Введите свой пароль:", "Вход", "Выход");
new buf[16];
if(!strcmp(buf, PlayerInfo[playerid][pPassword], false))
{
new Query[75], DBResult: Result;
format(Query, sizeof(Query), "SELECT * FROM users WHERE username = '%s' LIMIT 0, 1", PlayerName(playerid));
Result = db_query(Database, Query);
if(db_num_rows(Result))
{
db_get_field_assoc(Result, "ID", Query, 7);
PlayerInfo[playerid][pID] = strval(Query);
db_get_field_assoc(Result, "Admin", Query, 2);
PlayerInfo[playerid][pAdmin] = strval(Query);
db_get_field_assoc(Result, "Vip", Query, 3);
PlayerInfo[playerid][pVIP] = strval(Query);
db_get_field_assoc(Result, "Money", Query, 9);
PlayerInfo[playerid][pCash] = strval(Query);
db_get_field_assoc(Result, "Level", Query, 3);
PlayerInfo[playerid][pLevel] = strval(Query);
db_get_field_assoc(Result, "Kills", Query, 9);
PlayerInfo[playerid][pKills] = strval(Query);
db_get_field_assoc(Result, "Deaths", Query, 9);
PlayerInfo[playerid][pDeaths] = strval(Query);
db_get_field_assoc(Result, "Member", Query, 2);
PlayerInfo[playerid][pMember] = strval(Query);
db_get_field_assoc(Result, "Sytost", Query, 3);
PlayerInfo[playerid][pSytost] = strval(Query);
db_get_field_assoc(Result, "Jajda", Query, 3);
PlayerInfo[playerid][pJajda] = strval(Query);
db_get_field_assoc(Result, "Nujda", Query, 3);
PlayerInfo[playerid][pNujda] = strval(Query);
PlayerInfo[playerid][USER_LOGGED_IN] = true;
GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
}
db_free_result(Result);
}
else ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "{34c924}Авторизация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {34c924}зарегистрирован\n{ffffff}Чтобы начать игру нужно Авторизоваться\n\n{ffffff}Введите свой пароль:", "Вход", "Выход");
}
else Kick(playerid);
return true;
}
if(dialogid == 1)
{
if(response)
{
if(!IsValidPassword(inputtext))
{
SendClientMessage(playerid, -1, "{ffffff}Недопустимые символы в проле. Доступны: от {FF0000}A {ffffff}до {FF0000}Z, {ffffff}от {FF0000}a {ffffff}до {FF0000}z, {ffffff}от {FF0000}0 {ffffff}до {FF0000}9");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{34c924}Регистрация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {FF0000}не зарегистрирован\n{ffffff}Чтобы начать игру нужно пройти Регистрацию\n\n\t{FF0000}•{FFFFFF}Пароль должен состоять из Латинских букв\n\t{FF0000}•{FFFFFF}Длина пароль от {FF0000}6 {FFFFFF}до {FF0000}16 {FFFFFF}символов\n\n{FFFFFF}Придумайте свой пароль:", "Готово", "Выход");
return true;
}
if(strlen(inputtext) < 6 || strlen(inputtext) > 16)
{
SendClientMessage(playerid, -1, "{ffffff}В пароле должно быть от {FF0000}6 {ffffff}до {FF0000}16 {ffffff}символов.");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{34c924}Регистрация", "{ffffff}Добро пожаловать на сервер {34c924}SQLite\n{ffffff}Ваш аккаунт {FF0000}не зарегистрирован\n{ffffff}Чтобы начать игру нужно пройти Регистрацию\n\n\t{FF0000}•{FFFFFF}Пароль должен состоять из Латинских букв\n\t{FF0000}•{FFFFFF}Длина пароль от {FF0000}6 {FFFFFF}до {FF0000}16 {FFFFFF}символов\n\n{FFFFFF}Придумайте свой пароль:", "Готово", "Выход");
return true;
}
new Query[208];
format(Query, sizeof(Query), "INSERT INTO users (Username, Password) VALUES ('%s', '%s')", PlayerName(playerid), inputtext);
db_query(Database, Query);
PlayerInfo[playerid][USER_LOGGED_IN] = true;
}
else Kick(playerid);
return true;
}
return true;
}
PlayerName(playerid)
{
new Name[24];
GetPlayerName(playerid,Name,24);
return Name;
}
stock IsValidPassword(const password[])
{
for(new i = 0; password[i] != EOS; ++i)
{
switch(password[i])
{
case '0'..'9', 'A'..'Z', 'a'..'z': continue;
default: return false;
}
}
return true;
}
И если получаете как у меня:
PHP:
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
По поводу SetGravity(0.009); - http://pawno-info.ru/showthread.php?t=215447
Всем Спасибо За Внимание!
Автор Данного Урока - Я ((Lev_Popov))
Последнее редактирование:
