Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Система Регистрации На SQLite

Статус
В этой теме нельзя размещать новые ответы.

Mathian

Мастер
Всем Хай!

Вступление:
Я заметил, что практически нет уроков и игровых режимов на SQLite.
Вот решил написать достойную регистрацию и сохранение аккаунтов на SQLite.

-Если кому не нравится - просто: "Ctrl + W"

Регистрация/Авторизация и Сохранение Аккаунтов на SQLite

Для того, что б начать писать мод нам нужен Windows или Linux сервер.
Их вы можете скачать здесь: ((Если есть зелёные модеры - ссылка на офф. сайт не является рекламой))
Советую брать 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 перенести туда и всё.
Если нужно подробней, то ищите мануалы/уроки по использованию.
Ну и начинаем работать((Мануал)):

В начало мода, после:
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;
В public OnGameModeInit() ((Лучше сразу заменить на это)):
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);
В public OnGameModeExit():
PHP:
    db_close(Database);
В public OnPlayerConnect(playerid):
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);
В public OnPlayerDisconnect(playerid, reason):
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;
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
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;
}
Компилируйте((F5))
И если получаете как у меня:
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))


 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу