Тема: Переводим сервер на MySQL #1
Опции темы
Поиск по теме
Переводим сервер на MySQL #1
Osetin уже создавал тему о переводе сервера на MySQL , но она в большей степени показывала преимущества MySQL над фалами.
Я же хочу написать серию уроков о переводе мода написанного на файлайх в MySQL! И так начнем)
Это первый урок из серии о переводе сервера на MySQL! Для начало нам нужно будет подготовить Pawno и сам сервер к работе с MySQL,
первое что мы сделаем это скачаем плагин от by BlueG и библиотеку libmysql.dll (его нужно поместить в папку с сервером).
В архиве должно быть два файла: mysql.dll и a_mysql.inc.
Кидаем mysql.dll в папку plugins которая находится в папке с сервером и в server.cfg нужно дописать в строчке plugins:
Инклуд a_mysql.inc из архива скидываем ко всем инклудам pawno! Теперь нам нужно создать саму БД, вы можете создать на хостинге или на своем компьютере с помощью специальных программ, таких как: Denwer,MySQL 5.6.15 / 6.0.11 Alpha их много! Как создать саму БД:
Создайте поля:
Теперь в консоли сервера мы будем видеть состояние подключения к MySQL =)
На этом все ,скоро будут другие уроки!
При создание этого урока опирался информацию найденную в интернете!
Последний раз редактировалось Endo; 06.01.2014 в 16:23 .
PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..
25% времени в программировании уходит на размышления о том, что пользователь может сделать не так. [HR] /Брайан Хьюмс/
- [Plugin]Drift Points Counter Plug-In by Gamer_Z (RUS)
Уважаю данных Людей:
1. Osetin (Хороший Администратор)
2. Daniel_Cortez (Классный скриптер)
3. Londlem (Офигенный скриптер)
4. #Carleone (Просто хороший человек)
Пожертвование для создания проекта Hard-RolePlay:
WebMoney:R116691342884
Серьезно? А как же новички поймут где их создать?
Osetin уже создавал тему о переводе сервера на MySQL , но она в большей степени показывала преимущества MySQL над фалами.
Я же хочу написать серию уроков о переводе мода написанного на файлайх в MySQL! И так начнем)
Это первый урок из серии о переводе сервера на MySQL! Для начало нам нужно будет подготовить Pawno и сам сервер к работе с MySQL,
первое что мы сделаем это скачаем плагин от by BlueG и библиотеку libmysql.dll (его нужно поместить в папку с сервером).
В архиве должно быть два файла: mysql.dll и a_mysql.inc.
Кидаем mysql.dll в папку plugins которая находится в папке с сервером и в server.cfg нужно дописать в строчке plugins:
Инклуд a_mysql.inc из архива скидываем ко всем инклудам pawno! Теперь нам нужно создать саму БД, вы можете создать на хостинге или на своем компьютере с помощью специальных программ, таких как: Denwer,MySQL 5.6.15 / 6.0.11 Alpha их много! Как создать саму БД:
Создайте поля:
Теперь в консоли сервера мы будем видеть состояние подключения к MySQL =)
На этом все ,скоро будут другие уроки!
При создание этого урока опирался информацию найденную в интернете!
Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!: [WINDOWS] [MYSQL] Мод с нуля | часть 2 — Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!
- (2 Страниц)
- 1
- 2
- >
- Вы не можете создать новую тему
- Вы не можете ответить в тему
Снова всех приветствую, сегодня продолжаем писать мод с нуля. Уже в этом уроке будет создаваться регистрация и авторизация и после нее конечно же отправление игрока на спавн. Не буду тянуть драгоценные секунды вашей жизни. Приступаем:
Качаем архив, который находится в конце урока и распаковываем его в папку с сервером. Открываем его конфиг и вставляем в самый низ строку подключения плагинов.
Закончили с подключением плагина, переходим в мод.
Открываем наш мод, который мы создавали в прошлом уроке и на первых строчках мы видим код:
Его нужно почистить от лишнего мусора, который нам не понадобится. Весь код можно удалить, кроме main() <. >и подключения инклуда SA-MP’a.
Теперь нам нужно подключить сам инклуд MySQL, взаимодействовать который будет напрямую с плагином для работы с БД. После строки с подключением последнего инклуда вставляем новую строку:
и получаем
Нам нужно создать переменную, которая будет являться подключением к БД. Кроме этого, я решил сделать еще и макросы для подключения и массив, который будем использовать для форматирования запросов на 256 ячеек. Думаю, на первое время хватит.
Подключаем БД: ищем коллбэк (public) OnGameModeInit и прописываем функции подключения
Для избежания предупреждений о дубликате подключения в логах MySQL нужно закрыть подключение после выключения мода:
Настроим немного мод и можно приступать к основному.
В начало мода прописываем перечисление (enum) с автоподсчетом ID диалогов и информации о игроке:
После них создаем переменные для использования последнего перечисления (ну и еще переменную с проверкой на авторизацию игрока).
Закончено. Можно двигаться дальше. Ищем коллбэк OnPlayerConnect и нам нужно записать имя игрока и запустить таймер для выполнения запроса:
Создаем так же коллбэк, в «теле» которого будет выполняться код:
Коллбэк таймера мы создали, но теперь нужно еще и запроса. Делаем:
Создаем реакцию диалогов на действия игрока. Ищем OnDialogResponse и начинаем писать (ну не Ctrl + C же):
При авторизации мы отправляли БД запрос на поиск совпадений с name и pName и password с inputtext (хешированным). Для него тоже нужно создать коллбэк, который мы указывали при выполнении (@__mysqlUploadPlayerAccount)
Все, мы закончили. Осталось написать спавн игрока и создать базу данных. В OnPlayerSpawn:
Я буду использовать phpMyAdmin (который будет создавать для меня Denwer).
Переходим по локальному адресу localhost/Tools/phpMyAdmin
При переходе же видно Создать базу данных. В строке вписываем указанное Вами название таблицы (MYSQL_BASE в моде) и кодировку выбираем cp_1251_general_ci . Она защищает мод русские символы от . после импорта из БД. Создали, направляемся в нашу базу данных.
При входе в БД у нас еще нет созданных таблиц, поэтому и отображается уведомление с этой «проблемой».
Ниже видно «Создать таблицу». В поле Имя вписываем accounts (или ваш вариант), Количество столбцов оставляем пустым.
Добавляем 2 строки и приступаем творить таблицу.
Синтаксис: Имя — Тип — Длина — По умолчанию
id — INT — 11 — (ставим галочку на A_I. Это AUTO_INCREMENT, то есть автоматический инкремент. При создании новой строки в этой таблице к ее номеру будет прибавляться +1, тем самым создавая новый ID аккаунта.
name — VARCHAR — 24 — (пусто)
password — VARHCAR — 24 — (пусто)
gender — INT — 11 — 0
skin — INT — 11 — 1
cash — INT — 11 — (тут вы можете поставить свое значение денег, выдаваемое при регистрации. У меня $100).
Мы все сделали, закончили, теперь можно отдыхать. Ниже можете писать свои вопросы или замечания (мне), я все прочитаю и отвечу. Следующий урок будет завтра ну или через 2-3 дня. До встречи.
Сообщение отредактировал unknownscripter: 18 апреля 2018 — 08:17
Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!: VDS Debian 8 И Mysql R41-4 — Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!
Сама ошибка: Failed (libmysqlclient.so.18: cannot open shared object file: No Asuch file or directory)
Вот такие ошибки в server log.
- Группа: Активные пользователи
- Сообщений: 323
- Регистрация: 26 февраля 18
Сообщение отредактировал GAWESOME: 15 мая 2018 — 00:33
GAWESOME (15 мая 2018 — 00:33) писал:
- Группа: Активные пользователи
- Сообщений: 323
- Регистрация: 26 февраля 18
Sonic X (15 мая 2018 — 00:35) писал:
Лично в inc написана эта версия. И кто мне переводил мод тоже сказал что версия R41-4
- Группа: Активные пользователи
- Сообщений: 323
- Регистрация: 26 февраля 18
Justin Thomas (15 мая 2018 — 00:37) писал:
ну, а теперь смотри какая версия плагина «R39-6 successfully loaded»
GAWESOME (15 мая 2018 — 00:37) писал:
Ну хз. На хостинге пишет тип R41-4
- Группа: Активные пользователи
- Сообщений: 323
- Регистрация: 26 февраля 18
качаешь отсюда R41-4
ставишь инклуд, компилишь с ним, ставишь на хост mysql-R41-4-Debian-static.tar.gz и радуйся жызни
GAWESOME (15 мая 2018 — 00:44) писал:
качаешь отсюда R41-4
ставишь инклуд, компилишь с ним, ставишь на хост mysql-R41-4-Debian-static.tar.gz и радуйся жызни
Всё понял. Если что нужно если будет такая проблема то нужно будет сделать так: