Scr all створення системи реєстрації на mysql - форум - втіли мрію в реальність!

Scr all створення системи реєстрації на mysql - форум - втіли мрію в реальність!

Нам буде потрібно плагін MySQL R39-4, і власне сам Denwer

Робота з базою даних


1.Откриваем phpMyAdmin, якщо не зробили цього раніше

2.В панелі зверху вибираємо пункт "Бази даних"


3.В поле під написом "Створити базу даних" вводимо ім'я нашої бази даних (я введу "sa-mp". Ви можете написати своє) і в полі "Порівняння" вибираємо "utf8_general_ci". Після того, як зробили ці дії, натискаємо на кнопку "Створити".

4. Якщо все зробили правильно, phpMyAdmin повідомить Вас про успішне створення нашої бази даних і в списку ліворуч з'явиться новий запис.

1.Вибіраются базу даних, в якій будемо створювати таблицю (якщо Ви створювали базу даних разом зі мною, то вибираємо "sa-mp")

2.На сторінці знаходимо віконце "Створити таблицю" і вводимо дані про таблиці:
В поле "Ім'я таблиці" вводимо "accounts"
В поле "Кількість стовпців" вводимо "3"

і натискаємо "ОК"

3. Структура нової таблиці заповнюємо таким чином:

Створення самої системи:

1.Дані для підключення
На початок нашого скрипта (під "#include ") Додамо:

2.Подключеніе до бази даних
Тепер нам потрібно зв'язати сервер з нашою базою даних. Для цього в OnGameModeInIt пропишемо наступний код:


Так само, якщо Ви хочете зберігати в базу даних текст російською, слід додати наступні запити прямо після підключення

Доповнення: Відстеження якості підключення

Так само Ви можете додати просту перевірку, яка буде відображати в логах то, наскільки вдало відбулося підключення до бази даних і виведе причину (або код помилки) в разі, якщо підключення не вдалося. Для цього відразу після коду про підключення додамо такий код:

3. "Перерахування" (enum) для зберігання даних

Під наші дані для підключення додамо наступний код:

4.Поіск гравця в базі даних і запис ника в масив
Тепер нам потрібно зробити запит для пошуку гравця в базі даних, а так само записати нік гравця (бо гравець не зможе змінити свій нік без нашого відома, тому логічніше за все просто 1 раз записати його при вході і вже використовувати масив, ніж кожен раз викликати GetPlayerName ).
У OnPlayerConnect вставимо:

Спочатку нам потрібно згадати про себе коханих і спростити роботу з діалогами, створивши ще одне перерахування, яке дозволятиме писати нам на місці ID діалогу якісь слова, що натякають нам на призначення цього діалогу, а не звичайні числа. Адже погодьтеся, "dRegister" набагато сильніше натякає нам на те, що цей діалог є діалогом реєстрації, ніж просто "0", "1" або яке-небудь ще число. Але перерахування не тільки дасть нам можливість більш краще розуміти призначення діалогу по його ID, але і позбавить нас від страху того, що ID діалогів можуть переплутати, адже перерахування саме визначить вільний ID і встановить його.

Щоб створити таке перерахування, знаходимо наше перерахування з даними гравців і вище нього створимо ще одне:


Все =) Тепер досить придумувати ім'я кожному новому діалогу, дописувати його в цей список і тоді Ви точно ніколи не заплутаєтеся при створенні нових діалогів.

Тепер напишемо самі дії. У OnDialogResponse додамо:

Так само, в самому кінці, додамо новий stock:


І в OnPlayerDisconnect


8.Отключеніе від бази даних

Так само потрібно не забути додати запит до плагіну MySQL на відключення від нашої бази даних. Робиться це просто.
У OnGameModeExit


9.Обнуленіе масиву з даними

Ця дія потрібна для того, щоб дані одного гравця не перемішалися з даними іншого в разі, якщо один гравець вийшов і другий зайшов на той самий слот.

Робиться це просто. Спочатку в OnPlayerDisconnect, після "SaveAccount (playerid);" додамо:


А після в кінець скрипта:

На початок мода, до змінних, додамо наступний масив:


Якщо є які-небудь питання, якщо щось незрозуміло пояснено або є будь-які доповнення / виправлення для даного уроку, прошу написати про це нижче. Всім постараюся допомогти, все думки прийму до відома.
З вами була Nya_JuliaMeow. Дякуємо за увагу