[Pawno Перевод мода на "MySQL R8" - Форум Cheat-Master.ru
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Pawno Перевод мода на "MySQL R8"
DexT3R Дата: Понедельник, 18.11.2013, 20:15 | Сообщение # 1
(•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
Сообщений: 1978
Статус: Offline
Всем привет с вами Kukushka, недавно я увидел что люди не знают как подключатся к БД MySql и решил показать как это сделать и как свой мод перевести на MySql


Итак, приступим:
В моём случае используется Denwer (Скачать).

Итак, после установки Denwer перейдём к phpmyadmin и создадим базу с таблицей.
  • Ссылка на phpmyadmin: localhost/Tools/phpmyadmin

    Создаём базу данных, в которой будем работать:

    После успешного создания базы переходим к созданию таблицы игроков (в моём случае "users"):
    После этого создаём поля в таблице (в нашем случае у нас будет: ник игрока, пароль и уровень):

    Далее переходим к игровому моду.

    Для дальнейшей работы необходимо скачать плагины и инклюд.

    Инклюд: Скачать | скинуть в папку pawno/include
    Плагин: для Windows-Скачать | для Linux-Скачать | скинуть в папку plugins
    LibMySQL: Скачать | cкинуть в КОРЕНЬ сервера

    Первым делом подключим инклюд. В шапку мода:
    Код
    #include a_mysql

    Далее зададим дефайны (для нашего-же удобства):
    P.S наши данные для входа smile
    Код
    #define MYSQL_DEBUG    1
    #define MYSQL_HOST    "localhost"
    #define MYSQL_USER    "root"
    #define MYSQL_DATABASE    "server"
    #define MYSQL_PASS    ""
    #define mysql_player    playerid, query[]
    #define f(%1,              format(%1,sizeof(%1),  

    Итак, сначала необходимо установить связь с базой данных и проверить её.

    Создадим переменную (под дефайнами):
    Код
    new base;

    Переходим к паблику OnGameModeInit (отвечает за включение мода) и вставляем туда:
    Код
    base = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASS); //соединение
    MySQLTest(); // проверка подключения  

    Создадим проверку на подключение к БД:
    Код
    stock MySQLTest()
    {
               mysql_set_charset("utf8_bin", base);
                mysql_function_query(base, "SET NAMES 'utf8'", false, "", "");
               mysql_function_query(base, "SET CHARACTER SET 'cp1251'", false, "", "");
               printf("\nПодключено к базе данных: %s", (mysql_ping(base)==1 ? ("Успешно")"Неуспешно")));
               return true;
    }  

    Далее, переходим к записи в таблицу (регистрация аккаунта). В диалог ввода пароля (при регистрации) добавляем:
    Код
    AccountCreate(playerid,inputtext);

    Создадим переменную для ника игрока (если нету):
    Код
    enum pInfo
    {
             pNick
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];

    Добавим в OnPlayerConnect:
    Код
    GetPlayerName(playerid, PlayerInfo[playerid][pNick], MAX_PLAYER_NAME);

    Создаём сам AccountCreate:
    Код
    AccountCreate(playerid,password[])
    {
               static query_mysql[160];
               f(query_mysql, "INSERT INTO `users` (`Nick`, `Pass`, `Level`) VALUES ('%s', '%s', '0')", PlayerInfo[playerid][pNick], password);
               mysql_function_query(base, query_mysql, true, "", "d", playerid);
    }  

    Далее изучим авторизацию.

    В диалог с авторизацией (со вводом пароля) добавим:
    Код
    static query_mysql[120];
    f(query_mysql, "SELECT * FROM `users` WHERE `Nick` = '%s' AND `Pass` = '%s'", PlayerInfo[playerid][pNick], inputtext), mysql_function_query(base, query_mysql, true, "OnPlayerLogin", "d", playerid);  

    Создадим сам OnPlayerLogin:
    Код
    forward OnPlayerLogin(mysql_player, extraid, connectionHandle);
    public OnPlayerLogin(mysql_player, extraid, connectionHandle)
    {
               static rows, fields;
               cache_get_data(rows, fields);
               if(rows) // при правильно введённом пароле
               {
                   SetPVarInt(playerid, "Level", cache_get_field_int(0, "Level", base)); //берём из ячейки "Level" данные и устанавливаем их в пвар
    SendClientMessage(playerid, -1, "Вы успешно авторизировались");
               }
               else //если игрок ввёл неверный пароль
               {
               //Здесь ставим диалог повторной авторизации
               }
               return true;
    }  

    Авторизация готова. Переходим к сохранению аккаунтов.

    За сохранение отвечает паблик OnPlayerDisconnect (отсоединение игрока от сервера).

    Добавляем туда:
    Код
    static str[250];
             f(str, "UPDATE `users` SET `Level` = '%d' WHERE `Nick` = '%s'",GetPVarInt(playerid,"Level"),PlayerInfo[playerid][pNick]); // устанавливаем Level игроку, у которого Nick равен полученному


    Всем спасибо за внимание smile , удачи ;)
    Прикрепления: 5021304.png (10.4 Kb) · 0367868.png (66.0 Kb)


    НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!

    Сообщение отредактировал Kukushka - Четверг, 21.11.2013, 22:44
  • Saint[yl] Дата: Понедельник, 18.11.2013, 21:35 | Сообщение # 2
    ^^SвYтый YлЬка
    Сообщений: 248
    Статус: Offline
    Обнови изображения. И еще сразу скажу, что если и писать мод, то сразу на MySQL. А если переводить, то нужно иметь кучу терпения и сил.

    ==========================
    [+] Skype: saint.yl
    [+] ВКонтакте: vk.com/saintyl
    ==========================

    Ничего Не покупаю / Не продаю
    DexT3R Дата: Понедельник, 18.11.2013, 22:10 | Сообщение # 3
    (•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
    Сообщений: 1978
    Статус: Offline
    Saint[yl], Соглашусь, просто имею опыт в переводе мода на MySQL
    Ну может кто то скачает мод, он ему понравится, а MySQL там нет, вот и будет знать как добавить систему MySQL, можно еще и дома и бизнесы перевести на эту систему smile и добавить чтоб можно редачить данные уже через базу а не через scriptfiles wink
    Вот почему мне нравится MySQL smile


    НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!
    Saint[yl] Дата: Вторник, 19.11.2013, 09:27 | Сообщение # 4
    ^^SвYтый YлЬка
    Сообщений: 248
    Статус: Offline
    Kukushka, Если кто-то скачает мод, то в 80% случаев проект не запуститься вообще, в 15% будет безуспешным. biggrin

    Добавлено (19.11.2013, 09:27)
    ---------------------------------------------
    Скриншоты обнови то biggrin


    ==========================
    [+] Skype: saint.yl
    [+] ВКонтакте: vk.com/saintyl
    ==========================

    Ничего Не покупаю / Не продаю
    DexT3R Дата: Вторник, 19.11.2013, 10:01 | Сообщение # 5
    (•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
    Сообщений: 1978
    Статус: Offline
    Saint[yl], Обновил, спасибо что напомнил biggrin
    Текст тоже обновил, допустил ошибку в оформлении, теперь все нормально smile


    НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!
    [CM]Lucas Дата: Среда, 20.11.2013, 17:09 | Сообщение # 6
    Боец
    Сообщений: 79
    Статус: Offline
    respect

    DexT3R Дата: Четверг, 21.11.2013, 22:44 | Сообщение # 7
    (•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
    Сообщений: 1978
    Статус: Offline
    Обновил, теперь ссылки на скачку файлов кликабельны

    НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!
    HDD Дата: Суббота, 23.11.2013, 18:02 | Сообщение # 8
    Любитель
    Сообщений: 36
    Статус: Offline
    Del, не заметил

    Сообщение отредактировал HDD - Воскресенье, 24.11.2013, 12:24
    DexT3R Дата: Суббота, 23.11.2013, 20:57 | Сообщение # 9
    (•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
    Сообщений: 1978
    Статус: Offline
    Цитата Kukushka ()
    За сохранение отвечает паблик OnPlayerDisconnect (отсоединение игрока от сервера).



    НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!
    [CM]Lucas Дата: Вторник, 26.11.2013, 19:00 | Сообщение # 10
    Боец
    Сообщений: 79
    Статус: Offline
    Спасибо за урок!

    qqqq123 Дата: Вторник, 10.12.2013, 00:15 | Сообщение # 11
    Боксёр
    Сообщений: 526
    Статус: Offline
    Спасибо! полезно.
    Saint[yl] Дата: Вторник, 10.12.2013, 08:51 | Сообщение # 12
    ^^SвYтый YлЬка
    Сообщений: 248
    Статус: Offline
    Kukushka, Лучше через сток вызывать сохранение. Ибо при падении сервера будет откат

    ==========================
    [+] Skype: saint.yl
    [+] ВКонтакте: vk.com/saintyl
    ==========================

    Ничего Не покупаю / Не продаю
    DexT3R Дата: Пятница, 13.12.2013, 19:08 | Сообщение # 13
    (•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
    Сообщений: 1978
    Статус: Offline
    Saint[yl], А я когда-то думал почему у меня откат сервера был

    НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!
    Saint[yl] Дата: Суббота, 14.12.2013, 10:54 | Сообщение # 14
    ^^SвYтый YлЬка
    Сообщений: 248
    Статус: Offline
    Kukushka, У каждого способоа свои минусы, в моем способе сохраняется например раз в час, но все же сохраняется. А так у всех будет откат до того времени, когда они зашли

    ==========================
    [+] Skype: saint.yl
    [+] ВКонтакте: vk.com/saintyl
    ==========================

    Ничего Не покупаю / Не продаю
    [CM]Фунтик Дата: Суббота, 14.12.2013, 19:03 | Сообщение # 15
    • Funya nyawka je •
    Сообщений: 127
    Статус: Offline
    Спасибо большое.

    Фунтик
    Ничего не покупаю, не продаю!
    Помогаю новичкам пишите.
    • Страница 1 из 3
    • 1
    • 2
    • 3
    • »
    Поиск: