Автор: BlackTok[BT] (участник нашего Discord)
Для подключения к серверу базы данных понадобятся две вещи. Сама база данных SQL и аддон ExtDB3 для Arma 3. Скачать можно по сылке ниже.
В архиве будет лежать программа mariadb, так как свою БД я строил на ней. Вы можете использовать любой другой аналог, но учтите, что инструкция и скриншоты будут именно по этой программе.
В скачанном по ссылке архиве будет находиться тестовая миссия с описанием скриптов.
Я не буду описывать как установить программу, так как в этом нет ничего сложного, да и не знаю, какую программу Вы выбрали.
1. После установки заходим в БД и создаем нового пользователя для сервера Армы. Я создал пользователя armauser с паролем 12345. Доступ по ip 127.0.0.1. Не забываем поставить галочку на глобальные права.
2. Создаем саму базу данный. В моем случае она называется просто db.
3. Теперь создаем таблицу. В примере это players
4. Создаем столбцы, где будут храниться нужные нам данные (можете сильно не вникать, а просто скопировать то, как сделал я)
а. Первый столбец — это порядковый номер
б. Второй — UID игрока
в. Третий и последующие — имя игрока и другие данные, которые Вам понадобятся. Для примера я сделал позицию игрока и его очки. Нажимаем внизу сохранить.
5. Копируем папку @extDB3 в корневую папку игру. Также кидаем в корень игры 2 файла — tbbmalloc.dll и tbbmalloc_x64.dll
6. Заходим в папку @extDB3 и открываем файл extdb3-conf.ini. Настраиваем
[db] ;имя нашей базы IP = 127.0.0.1 Port = 3306 Username = armauser ;пользователь которого мы создали Password = 12345 ;пароль пользователя Database = db ;имя нашей базы
7. Далее открываем файл custom.ini, который находится в папке sql_custom и так же производим настройки.
[newPlayer] ;блок для создания нового пользователя в БД Return InsertID = false Prepared Statement = true SQL1_1 = INSERT INTO SQL1_2 = players (uid, name, pos, score) ;players - название таблицы БД, а в скобках названия столбцов, в которые запишутся данные SQL1_3 = VALUES SQL1_4 = (?,?,?,?) SQL1_INPUTS = 1,2,3,4 [loadPlayer] ;блок загрузки данных пользователя Return InsertID = false Prepared Statement = true SQL1_1 = SELECT SQL1_2 = pos, ;столбец с позицией SQL1_3 = score ;столбец с очками SQL1_4 = FROM SQL1_5 = players ;таблица из которой загружать SQL1_6 = WHERE SQL1_7 = uid = ? ;собственно по переданному нами UID игрока и будут находиться данные в таблице SQL1_8 = LIMIT 1 SQL1_INPUTS = 1 [savePlayer] ;блок сохранения игрока Return InsertID = false Prepared Statement = true SQL1_1 = UPDATE SQL1_2 = players ;таблица SQL1_3 = SET SQL1_4 = name = ?, ;имя, в случае, если игрок его изменил SQL1_5 = pos = ?, ;позиция SQL1_6 = score = ? ;очки SQL1_7 = WHERE SQL1_8 = uid = ? ;собственно по переданному нами UID игрока и будут сохраняться данные в таблице SQL1_9 = LIMIT 1 SQL1_INPUTS = 1,2,3,4
8. Теперь необходимо сделать скрипты, по которым наш сервер поймет как и когда связываться с БД и какие данные передавать и забирать.
Так же по extDB3 читайте нашу статью:
extDB3 часть 2. Соединение с базой данных. Отправка запросов.
Обсудить эту статью можно в нашем Discord канале