ПЕРВАЯ ЧАСТЬ УРОКА
Снова всех приветствую, сегодня продолжаем писать мод с нуля. Уже в этом уроке будет создаваться регистрация и авторизация и после нее конечно же отправление игрока на спавн. Не буду тянуть драгоценные секунды вашей жизни. Приступаем:
Качаем архив, который находится в конце урока и распаковываем его в папку с сервером. Открываем его конфиг и вставляем в самый низ строку подключения плагинов.
plugins mysql
Закончили с подключением плагина, переходим в мод.
Открываем наш мод, который мы создавали в прошлом уроке и на первых строчках мы видим код:
// This is a comment // uncomment the line below if you want to write a filterscript //#define FILTERSCRIPT #include <a_samp> #if defined FILTERSCRIPT public OnFilterScriptInit() { print("n--------------------------------------"); print(" Blank Filterscript by your name here"); print("--------------------------------------n"); return 1; } public OnFilterScriptExit() { return 1; } #else main() { print("n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------n"); } #endif
Его нужно почистить от лишнего мусора, который нам не понадобится. Весь код можно удалить, кроме main() {…} и подключения инклуда SA-MP’a.
Теперь нам нужно подключить сам инклуд MySQL, взаимодействовать который будет напрямую с плагином для работы с БД. После строки с подключением последнего инклуда вставляем новую строку:
#include <a_mysql>
и получаем
#include <a_samp> #include <a_mysql>
Нам нужно создать переменную, которая будет являться подключением к БД. Кроме этого, я решил сделать еще и макросы для подключения и массив, который будем использовать для форматирования запросов на 256 ячеек. Думаю, на первое время хватит.
#define MYSQL_HOST "127.0.0.1" #define MYSQL_USER "root" #define MYSQL_PASS "" #define MYSQL_BASE "pawnwiki" new MySQL: mysqlHandle, query[256] ;
Подключаем БД: ищем коллбэк (public) OnGameModeInit и прописываем функции подключения
mysqlHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_BASE); // создаем подключение к БД if (mysql_errno() != 0) // если подключению помешала какая-то ошибка { print("[mysql] could not connect to database!"); // выводим в консоль сообщение о том, что БД не подключена return SendRconCommand("exit"); // прерываем работу мода }
Для избежания предупреждений о дубликате подключения в логах MySQL нужно закрыть подключение после выключения мода:
public OnGameModeExit() { mysql_close(mysqlHandle); return 1; }
Настроим немного мод и можно приступать к основному.
SendRconCommand("hostname Pawn-Wiki.Ru (МОД С НУЛЯ)"); // отображаемое название в списке серверов SetGameModeText("[GM] Pawn-Wiki.Ru"); // Mode, которое так же видно в клиенте AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // подробнее узнаете на wiki.sa-mp.com
В начало мода прописываем перечисление (enum) с автоподсчетом ID диалогов и информации о игроке:
enum { DIALOG_ID_NONE, // 0 DIALOG_ID_REGISTER_PASSWORD, // 1 DIALOG_ID_REGISTER_GENDER, DIALOG_ID_LOGIN }; enum PLAYER_INFO { pID, // ID аккаунта pName[MAX_PLAYER_NAME + 1], // имя игрока (Почему + 1? Строка всегда заканчивается , поэтому 0 - считается как символ) pPassword[22 + 1], // пароль pGender, // пол персонажа pSkin, // скин pCash // наличные };
После них создаем переменные для использования последнего перечисления (ну и еще переменную с проверкой на авторизацию игрока).
new PlayerInfo[MAX_PLAYERS][PLAYER_INFO], bool: playerLoggedStatus[MAX_PLAYERS] ;
Закончено. Можно двигаться дальше. Ищем коллбэк OnPlayerConnect и нам нужно записать имя игрока и запустить таймер для выполнения запроса:
GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME); // получаем имя игрока и записываем полученное в pName SetTimerEx("@__timerPlayerGetAccount", 1000, 0, "i", playerid); // запускаем таймер который будет выполнять запрос поиска игрока в БД // делается это чтобы установить вид (камеру) игроку при авторизации/регистрации
Создаем так же коллбэк, в «теле» которого будет выполняться код:
@__timerPlayerGetAccount(playerid); @__timerPlayerGetAccount(playerid) { SetPlayerCameraPos(playerid, 1027.7542, -1075.3053, 109.6629); SetPlayerCameraLookAt(playerid, 1028.7198, -1075.5803, 109.6678); // в моем варианте камера будет на вид небоскребов Лос Сантоса format(query, sizeof query, "SELECT * FROM `accounts` WHERE `name` = '%s'", PlayerInfo[playerid][pName]); // форматируем запрос с перебором таблицы accounts и поиском совпадения в поле name mysql_tquery(mysqlHandle, query, "@__mysqlGetPlayerAccount", "i", playerid); }
Коллбэк таймера мы создали, но теперь нужно еще и запроса. Делаем:
@__mysqlGetPlayerAccount(playerid); @__mysqlGetPlayerAccount(playerid) { SetPlayerColor(playerid, 0xFF); // устанавливаем игроку черный цвет if (cache_num_rows() == 0) // если найдено 0 совпадений, то игрок должен зарегистрироваться ShowPlayerDialog( playerid, DIALOG_ID_REGISTER_PASSWORD, DIALOG_STYLE_INPUT, "Регистрация", "{FFFFFF}Приветствуем Вас на сервере {FFFF00}Pawn-Wiki.Ru{FFFFFF}!n" "Для начала игры на сервере, необходимо пройти регистрациюn" "n" "Придумайте и введите пароль в строку ниже:", "Далее", "Отмена"); else // ну, а если найдено - авторизация ShowPlayerDialog( playerid, DIALOG_ID_LOGIN, DIALOG_STYLE_PASSWORD, "Авторизация", "{FFFFFF}Приветствуем Вас на сервере {FFFF00}Pawn-Wiki.Ru{FFFFFF}!n" "Аккаунт с таким ником уже зарегистрированn" "n" "Введите пароль, указанный при регистрации:", "Далее", "Отмена"); }
Создаем реакцию диалогов на действия игрока. Ищем OnDialogResponse и начинаем писать (ну не Ctrl + C же):
switch (dialogid) { case DIALOG_ID_NONE: // тут ничего изменять не надо будет return 0; case DIALOG_ID_REGISTER_PASSWORD: // регистрация (ввод пароля) { if (response == 0) // если игрок нажал 2 кнопку, кикаем его return Kick(playerid); if (!(6 <= strlen(inputtext) <= 22)) // введено от 6 до 22 символов { SendClientMessage(playerid, -1, "Длина пароля должна состовлять от 6 до 22 символов!"); // выводим игроку ошибку return ShowPlayerDialog( playerid, DIALOG_ID_REGISTER_PASSWORD, DIALOG_STYLE_INPUT, "Регистрация", "{FFFFFF}Приветствуем Вас на сервере {FFFF00}Pawn-Wiki.Ru{FFFFFF}!n" "Для начала игры на сервере, необходимо пройти регистрациюn" "n" "Придумайте и введите пароль в строку ниже:", "Далее", "Отмена"); // и снова открываем диалог } for (new i = 0; i < strlen(inputtext); i ++) // цикл, который будет повторяться 'strlen(inputtext)' раз { switch (inputtext[i]) // перебор символов. поможет от ввода русских символов в пароле { case 'a'..'z', 'A'..'Z', '0'..'9': // если i ячейка забита буквой от a до Z или цифрой от 0 до 9 continue; // пропускаем дальше default: // соотвественно иначе { SendClientMessage(playerid, -1, "В пароле не должно быть других букв кроме английских!"); // выводим игроку ошибку return ShowPlayerDialog( playerid, DIALOG_ID_REGISTER_PASSWORD, DIALOG_STYLE_INPUT, "Регистрация", "{FFFFFF}Приветствуем Вас на сервере {FFFF00}Pawn-Wiki.Ru{FFFFFF}!n" "Для начала игры на сервере, необходимо пройти регистрациюn" "n" "Придумайте и введите пароль в строку ниже:", "Далее", "Отмена"); // и еще раз открываем диалог } } } PlayerInfo[playerid][pPassword][0] = EOS; // очищаем pPassword для playerid strins(PlayerInfo[playerid][pPassword], inputtext, 0); // и вставляем inputtext в pPassword начиная с 0 ячейки ShowPlayerDialog( playerid, DIALOG_ID_REGISTER_GENDER, DIALOG_STYLE_MSGBOX, "Регистрация", "{FFFFFF}Выберите пол Вашего персонажа:", "Мужской", "Женский"); // диалог выбора пола } case DIALOG_ID_REGISTER_GENDER: // регистрация (выбор пола) { PlayerInfo[playerid][pGender] = response; // пол устанавливается по ID нажатой кнопки. 1 кнопка - 1 (мужской), 2 кнопка - 0 (женский) PlayerInfo[playerid][pSkin] = (response ? 26 : 172); // скин игрока устанавливается так же, тут применяем тернарный оператор (ссылка на урок ниже) format(query, sizeof query, "INSERT INTO `accounts` (`name`, `password`, `gender`, `cash`) VALUES ('%s', MD5('%s'), '%d', '%d')", PlayerInfo[playerid][pName], PlayerInfo[playerid][pPassword], PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSkin]); // форматируем запрос INSERT INTO - добавление новой строки в таблицу accounts // MD5('%s') хеширует строку в шифровку MD5 mysql_tquery(mysqlHandle, query); format(query, sizeof query, "SELECT * FROM `accounts` WHERE `name` = '%s'", PlayerInfo[playerid][pName]); // форматируем запрос с перебором таблицы accounts и поиском совпадения в поле name mysql_tquery(mysqlHandle, query, "@__mysqlGetPlayerAccount", "i", playerid); // снова отправим запрос поиска аккаунта. если все пройдет без ошибок - игрок авторизуется } case DIALOG_ID_LOGIN: // авторизация { if (response == 0) // если игрок нажал 2 кнопку, кикаем его return Kick(playerid); format(query, sizeof query, "SELECT * FROM `accounts` WHERE `name` = '%s' AND `password` = MD5('%s')", PlayerInfo[playerid][pName], inputtext); // форматируем запрос с перебором таблицы accounts и поиском совпадений между name и pName, password (уже хешированный) и pPassword mysql_tquery(mysqlHandle, query, "@__mysqlUploadPlayerAccount", "i", playerid); } }
Готово.
При авторизации мы отправляли БД запрос на поиск совпадений с name и pName и password с inputtext (хешированным). Для него тоже нужно создать коллбэк, который мы указывали при выполнении (@__mysqlUploadPlayerAccount)
@__mysqlUploadPlayerAccount(playerid); @__mysqlUploadPlayerAccount(playerid) { if (cache_num_rows() == 0) // найденых строк == 0, т.е. игрок ввел не верный пароль { // выводим сообщение с ошибкой открываем диалог и обрываем выполнение кода коллбэка дальше SendClientMessage(playerid, 0xFF0000FF, "Введен не правильный пароль этого аккаунта!"); return ShowPlayerDialog( playerid, DIALOG_ID_LOGIN, DIALOG_STYLE_PASSWORD, "Авторизация", "{FFFFFF}Приветствуем Вас на сервере {FFFF00}Pawn-Wiki.Ru{FFFFFF}!n" "Аккаунт с таким ником уже зарегистрированn" "n" "Введите пароль, указанный при регистрации:", "Далее", "Отмена"); } playerLoggedStatus[playerid] = true; // переменная авторизации игрока (true - авторизован, false наоборот) SetPlayerColor(playerid, 0xFFFFFF33); // устанавливаем немного прозрачный белый цвет игроку cache_get_value_name_int(0, "id", PlayerInfo[playerid][pID]); // вытаскиваем содержимое поля id и записываем результат в pID cache_get_value_name_int(0, "gender", PlayerInfo[playerid][pGender]); // аналогично тому что выше, но уже с gender и pGender cache_get_value_name_int(0, "skin", PlayerInfo[playerid][pSkin]); cache_get_value_name_int(0, "cash", PlayerInfo[playerid][pCash]); SetCameraBehindPlayer(playerid); // устанавливаем камеру за игрока SpawnPlayer(playerid); // и спавним его return 1; }
Все, мы закончили. Осталось написать спавн игрока и создать базу данных. В OnPlayerSpawn:
if (playerLoggedStatus[playerid] == false) // если игрок нажал кнопку Spawn или заспавнился return Kick(playerid); // кикаем его, чтобы не сломал систему SetCameraBehindPlayer(playerid); // устанавливаем камеру за игрока SetPlayerPos(playerid, 1154.2678, -1768.5897, 16.5938); // устанавливаем координаты спавна SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); // устанавливаем скин из pSkin ResetPlayerMoney(playerid); // очищаем деньги игрока (игровые) GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]); // и выдаем их в размере pCash
СДЕЛАНО!
Я буду использовать 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).
Сохраняем все и можно запускать сервер. Открываем samp-server.exe и если все правильно заходим на сервер (127.0.0.1:порт (указан в server.cfg))
Мы все сделали, закончили, теперь можно отдыхать. Ниже можете писать свои вопросы или замечания (мне), я все прочитаю и отвечу. Следующий урок будет завтра ну или через 2-3 дня. До встречи.
Plugin MySQL R41-4
Сообщение отредактировал unknownscripter: 18 апреля 2018 — 08:17
Для подключения игрового сервера к БД MySQL в первую очередь нужно приобрести хостинг БД MySQL на данной странице. После оплаты вам на почту придет письмо со всеми данными доступа.
- Скачайте и распакуйте SAMP сервер для Windows в любую папку на рабочем столе (пусть это будет папка samp);
- Положите .pwn файл мода в папку /samp/pawno/, инклуды мода в папку /samp/pawno/include/;
- Запустите редактор /samp/pawno/pawno.exe;
- В редакторе на вкладке File -> Open, выберите .pwn файл мода и нажмите «Открыть»;
- Найдите в коде мода параметры подключения к БД MySQL и отредактируйте в соответствии с данными из письма:
#define MYSQL_HOST "triniti.ru-hoster.com"
#define MYSQL_USER "<!--логин-->"
#define MYSQL_PASS "<!--пароль-->"
#define MYSQL_DATABASE "<!--еще раз логин-->"
6. После изменений нажмите Build -> Compile;
В результате в папке /samp/pawno появится .amx файл мода, который требуется загрузить на хостинг. Почитать как именно загружать мод на хостинг можно здесь.
С любовью,
команда Ru-hoster ❤
Salvage
Заблокирован
- Регистрация
- 1 Июн 2013
- Сообщения
- 1,987
- Лучшие ответы
- 0
- Репутация
- 704
- Адрес
-
127.0.0.1
-
#1
Настройка и запуск SA:MP ceрвера на MySQL
Многие люди, которые имеют дело с веб элементами (веб сайты, базы данных и т.д.), работают с Denwer, но я предпочитаю работать с Wamp server, ибо он проще в настройке и управлении (лично мое мнение).
Данный мануал будет рассмотрен с помощью Wamp сервера.
[HR][/HR]1.Мы видим папку «www» — если у Вас есть сайт, то вы можете импортировать(закинуть) файлы сайта в данную папку. Если же вы хотите иметь одновременно несколько сайтов на локальном сервере, то для каждого нужно будет создать по отдельной папке в директории «www», т.е. это путь будет выглядеть так:
C:wampwwwсайт1
C:wampwwwсайт2
2. Используем данный .exe файл для запуска программы. Могут возникнуть проблемы, если Вы используете Skype. Если у Вас всё же возникли проблемы, то отключите Skype, закрыв программу. После этого требуется перезапустить Wamp сервер (не переустановить, а перезапустить, т.е. закрыть и открыть)
После выполнения всех действий — у Вас должна появится зелёная иконка. Если же появилась оранжевая, то это значит, что сервер не работает так, как нужно (см. пункт 2.)
Нажимаем левой кнопкой мыши на зелёную иконку и появится окно данное окно.
3. Нажав на «localhost» Вы перейдете на свой локальный сервер сайта/-ов. Если Вы не хотите работать с сайтами, то пропустите данный пункт, он Вам не нужен.
4. Если Вы решили работать с базой данных, то это именно то, что Вам нужно! Смело нажимает на «phpMyAdmin»
5.Нажав на «www directory» вы моментально перейдете в папку, где расположены файлы Ваших сайтов, если таковые имеются.
Для входа в phpMyAdmin — вводим следующие данные:
Login: root
Password: (поле для пароля оставляем пустым)
Заходим!
[HR][/HR]Для начала, создаем новую базу данных:
Нажимаем на «Базы данных» и в появившемся окне вводим название нашей базы данных (вводим название в подчеркнутое красным поле).
После того, как Вы нажали на кнопку «Создать», новая база данных будет создана и добавлена в список.
Далее нам нужно выбрать нашу созданную базу. Она должна появится на той странице, ниже тех полей, куда мы вписывали название нашей базы.
Далее мы нажимаем одну из данных опций:
SQL — появится окно в которое нужно будет ввести/вставить код самой базы. Если Вы испытываете трудности с импортом базы данных файлом (следующий пункт), то воспользуйтесь опцией SQL. Для этого Вам нужно открыть файл самой базы, который шел в комплекте с сервером (бывают случай, когда в свободном доступе в интернете, публикуют сервера без базы данных!). Для открытий файла (файл имеет расширение .sql) используйте просто блокнот.
После открытия файла скопируйте его содержимое и вставьте в окно (phpMyAdmin —>SQL)
Импорт — Обзор -> Выбираем файл с расширением .sql ->Открыть -> ОК (в phpMyAdmin)
После выполнения данных действий можете уже начинать радоваться. Но, к сожалению, это ещё не всё.
Теперь нам необходимо внести изменения в сам мод!
В данном примере я рассмотрю мод — это Multifarious RP.
1. Открываем сам мод Multifarious.pwn.
2. #define mysql_db «yourgame» — меняем на название базы данных, которую мы создали и в которую импортировали строки из файла .sql.
3. #define mysql_pass «Ваш пароль» — Удаляем слова Ваш пароль, оставив только кавычки «, ибо по умолчанию пароля в phpyMyAdmin нет.
Если Вы не производили никаких действий с Wamp, то на этом всё.
Можете запускать мод и радоваться!
[HR][/HR]Я надеюсь, что данный мануал был полезен. Хоть автор данного мануала Nobert вы также можете задавать вопросы мне.
Для связи со мной используйте:
Скайп:name_pwn
ISQ:450279104
Источник: YG (Тематический портал) | Автор:Nobert |
Последнее редактирование: 2 Дек 2015
Всем привет! В этой статье рассмотрим такую тему — как запустить сервер SAMP (San Andreas Multiplayer) на локальном компьютере.
Введение
Несмотря на то, что первая версия SAMP была выпущена аж в 2006 году, эта многопользовательская модификация продолжает развиваться и оставаться популярной, даже несмотря на выход новых версий игры Grand Theft Auto.
Предполагается, что у вас уже установлена игра GTA San Andreas и клиент SAMP последней версии (на момент написания статьи это версия 0.3.7). Итак, приступим к настройке сервера!
Последняя версия сервера всегда доступна тут: https://www.sa-mp.com/download.php
Так что скачиваем последнюю версию (на день написания статьи это 0.3.7-R2) и распаковываем скачанный архив. Вы увидите примерно такой список файлов и папок:
Чтобы узнать как запустить сервер SAMP, придется немного вникнуть в его параметры. Для запуска сервера нас интересуют:
- папка filterscripts — фильтерскрипты для сервера
- папка gamemodes — игровые моды
- samp-server.exe — собственно сам сервер
- server.cfg — файл конфигурации сервера
Перед запуском сервера нужно внести некоторые корректировки в файл server.cfg, чем мы и займемся на следующем шаге.
Редактирование конфигурации сервера
Открываем файл server.cfg и видим примерно следующее:
echo Executing Server Config...
lanmode 0
rcon_password changeme
maxplayers 50
port 7777
hostname SA-MP 0.3 Server
gamemode0 grandlarc 1
filterscripts gl_actions gl_realtime gl_property gl_mapicon ls_elevator attachments skinchanger vspawner ls_mall ls_beachside
announce 0
chatlogging 0
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
logtimeformat [%H:%M:%S]
language English
Как видим, тут куча параметров. Но для запуска сервера нам потребуются лишь несколько:
- lanmode — если доступ к серверу нужен только в локальной сети то ставьте 1. Иначе 0.
- rcon_password — устанавливает пароль для администрирования сервера. Его нужно обязательно сменить, иначе сервер не запустится.
- maxplayers — определяет максимальное количество игроков на сервере.
- port — номер порта. Можно оставить 7777.
- hostname — название сервера. Меняйте на то, которое вам нравится.
- gamemode0 — используемый игровой мод (из папки gamemodes).
- filterscripts — используемые фильтерскрипты (из папки filterscripts). Максимум 16 штук.
Остальные параметры менять не обязательно. Если интересно их предназначение, то можно обратится к Wiki SAMP или форуму sa-mp.com.
Сохраняем файл server.cfg и запускаем server-samp.exe:
Если всё сделано правильно, то сервер запущен! Осталось только зайти на него с помощью клиента SAMP.
Вход на свой сервер SAMP
На этом этапе нам нужно узнать свой локальный IP адрес — они и будет являться адресом запущенного сервера.
Способ 1. Центр управления сетями — Выбрать подключение — Сведения:
Способ 2 — использовать консоль и команду ipconfig:
Итак, IP определен, теперь запускаем клиент SAMP и добавляем новый сервер.
Формат: IP:порт , то есть в моем случае это 192.168.100.4:7777 :
Готово! Сервер запущен и на него можно зайти!
Как запустить сервер SAMP — проблема решена!
Выполнив всего несколько простых шагов вы развернули полноценный игровой сервер GTA San Andreas у себя на компьютере. Но в скором времени играть со стандартным игровым модом надоест и захочется создать свой. Так что ждите следующих статей! 🙂
48115
Понравилась статья? Поделитесь ей с друзьями!
Предисловие
Когда появилась идея написать свой сервер, это было страшно. Нет какой-то понятной статьи, не всегда понятно, что гуглить. Эта статья написана специально для таких новичков чтобы хоть немного осветить эту тему и дать вектор развития в этой области.
Глава 1: Дистрибутив
Работать будем с версией 0.3.7, так как она самая последняя и стабильная. Переходим на sa-mp.com, ищем с левой стороны раздел Navigation, под ним кнопку Downloads. После перехода нас будут интересовать два нижних раздела. «SA-MP Windows Server Download» и «SA-MP Linux Server Download»..
Есть вероятность, что после нажатия на ссылку, скачивание не начнётся. Тогда просто скопируйте адрес ссылок и вставьте их в строку поиска браузера.
В архиве находится ряд файлов и папок. Пройдёмся по основным:
-
filterscripts — подключаемые скрипты. вы можете выносить отдельные участки кода в отдельные файлы. если они автономны и не участвуют в основном моде, их можно вынести сюда
-
gamemodes — игровые режимы сервера. Здесь будет находиться главный файл нашего мода
-
include — подключаемые из кода мода файлы.
-
pawno — папка, имеющая в себе редактор IDE pawno и собственную папку includes. Настоятельно рекомендую использовать её. Отсюда легче подключать файлы
-
scriptfiles — хранилище. здесь расположены конфигурационные файлы скрптов.
-
samp-server.exe (Windows) — исполняемый файл, запускающий сервер
-
server.cfg — конфигурационный файл сервера
Глава 2: Конфигурация сервера и первый запуск
server.cfg как было сказано ранее — файл конфигурации сервера. Здесь подключаются моды, фильтерскрипты, плагины; устанавливаются название сервера, порт, язык, вебсайт и многое другое.
Значение всех его полей описано в файле server-readme.txt. Вот его перевод:
После того, как конфигурация будет завершена, запустите samp-server.exe для запуска серверного процесса
-
hostname (String) — указывает имя хоста, отображаемое в браузере серверов.
-
port (int) — указывает порт для прослушивания. Этот порт используется для игровых соединений, соединений rcon и для запросов.
-
maxplayers (int) — указывает максимальное количество игроков на сервере
-
announce (int 1/0) — добавляет ваш сервер в список серверов «Интернет» в браузере SA:MP. Вкл. (1) или Выкл. (0).
-
weburl (String) — указывает URL-адрес, отображаемый в обозревателе серверов, который связан с сервером.
-
gamemode0 — gamemode15 (String + int) — задает параметры ротации. Первый параметр задает имя игрового режима. Во-вторых, количество повторений. Вы можете использовать gamemode0 для указания первого игрового режима, gamemode1 для указания второго и т. д.
И вот, о чём в readme не написали:
-
rcon_password (String) — пароль админа сервера. ввод этого пароля при подключении в игру даёт игроку статус админа.
-
filtersripts (String[]) — через пробел описанные названия скриптов из папки filterscripts, которые будут запущены при запуске сервера
-
plugins (String[]) — список включенных плагинов (обязательно указывать форматы .so или .dll в зависимости от ОС сервера)
-
lanmode (int 0/1) — определяет возможность подключения к серверу только из локальной сети (1) или извне (0)
-
language (String) — устанавливает язык сервера (влияет только на отображение в браузере серверов)
После завершения конфигурации, запускаем файл samp-server.exe, смотрим в красивую консоль и..
Глава 2.1: Первое подключение
Я буду считать, что читатели этой статьи знакомы с SAMP и его интерфейсом. В поле IP прямого подключения или добавления сервера в Favorites вводим такой адрес:
[Local IP]:[Port]
И можем подключаться! (по умолчанию там уже стоит игровой мод grandlarc)
Глава 3: Pawn.. Pawno?
Pawn это простой Си-подобный язык программирования. Даже на википедии в спектре использований этого языка SAMP стоит на первом месте. В интернете информация по чистому языку и использованию в программировании игровых режимов. О хороших IDE и редакторах кода можете забыть. Для VS Code ещё можно накатить плагины поддержки Pawn, но он не так удобен как стандартный редактор кода, который лежит в дистрибутиве сервера в папке pawno. В подробности языка и его особенности углубляться не будем. Поверхностное представление того, с чем мы имеем дело можно сложить по статье на википедии.
Открываем Pawncc.exe, млева сверху ищем пустой белый лист, нажимаем на него и перед нашим взором предстаёт «чистый» лист шаблона мода..
Итак.. да, абсолютно всё здесь находится в одном файле. Прописано множество методов, которые будут вызываться при происхождении на клиенте или сервере какого-то события. игрок подключился, игрок вышел, игрок сел в машину игрок вылез иж машины, игрок выбирает класс, игрок умер, игрок зареспавнился, игрок игрок игрок..
почти все методы принимают в себе аргумент playerid. и он уникален. на каждый отдельный такт. игрок может выйти и на его место встанет другой. для этого лучше не вешайте на это поле слишком много, или подчищайте всю информацию за игроком после его отключения.
вы можете создавать внешние .inc файлы и подключать их через #include. файлы создавайте в папке pawno/include. да, кажется, что это просто дистрибутив редактора кода, но здесь лежат даже главные файлы кода сервера. так как отсюда их можно подключать, указав в include тмя файла. если вы будете подключать свои файлы из папки include в корне сервера, вам будет необходимо указать относительный путь до этой папки из дирректории pawn/include (.. /.. /include/file.inc)
Глава 3.1: Компиляция, подключение, запуск
После того, как режим был прописан и готов к встраиванию на сервер, сохраняем его в папку mods и жмём на зелёную стрелку. Если компиляция прошла успешно, необходимо указать название файла мода в server.cfg и цифру 1 в поле gamemode0 пример
gamemode0 mymode 1
Запускаем сервер и наслаждаемся своим творением!
Эпилог
Тут наверное стоит рассказать про коммьюнити. Все сервера предпочитают сохранять свой исходный код в тайне, не делятся скомпилированными результатами. Форумы уже заглохли, часто это просто зеркало другого форума, и если возникнет проблема, то решение может искаться очень долго. Активных чатов и бесед нет, документация не весьма удобная. Даже если нашли какой-то отличный плагин, даже довольно крупный и в обиходе на серверах.. Скорее всего будет трудно найти информацию о нём кроме оригинального сообщения на форуме. Но чёрт! это очень интересная и затягивающая тема, в которой мне понравилось разбираться. Если вам будет интересно узнать подробнее о создании сервера (Сторонние плагины, инклады, маппинг) проявите фидбек под этим постом. В этом посте я попытался только дать вектор развития и хоть как-то осветить эту тему комплексно. Спасибо за то, что прочитали этот туториал!
Ссылки и полезности
Ниже приведены ссылки на форумы и разделы документации, которые будут полезны во время работы над сервером.
-
Официальная документация по скриптингу
-
Список всех функций
-
SAMP раздел на форуме Pawn Wiki
-
Русская документация (неполная)
-
Pawn.CMD — Удобный командный процессор (о нём позже)
Содержание
- Как запустить сервер самп на mysql на компьютере
- Моды для сервера
- Модификации SA
- GiNESS
- Как запустить сервер самп на mysql на компьютере
- Как запустить сервер самп на mysql на компьютере
- Похожий контент
- Как запустить сервер SAMP на своём компьютере
- Введение
- Скачиваем сервер SAMP
- Редактирование конфигурации сервера
- Вход на свой сервер SAMP
- Способ 1. Центр управления сетями — Выбрать подключение — Сведения:
- Способ 2 — использовать консоль и команду ipconfig:
- Как запустить сервер SAMP — проблема решена!
- Как запустить сервер SAMP на MySQL у себя на компьютере (без хостинга)
- КОМЕНТАРІ • 189
Как запустить сервер самп на mysql на компьютере
Моды для сервера
Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.
Модификации SA
Хотите разнообразить свою игру в San Andreas? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием
GiNESS
The world on the edge of reality
Введение
Несмотря на то, что первая версия SAMP была выпущена аж в 2006 году, эта многопользовательская модификация продолжает развиваться и оставаться популярной, даже несмотря на выход новых версий игры Grand Theft Auto.
Предполагается, что у вас уже установлена игра GTA San Andreas и клиент SAMP последней версии (на момент написания статьи это версия 0.3.7). Итак, приступим к настройке сервера!
Скачиваем сервер SAMP
Последняя версия сервера всегда доступна >> ТУТ Вписываем localhost и заходим на свой сервер.
Примечание: 127.0.0.1 или localhost работает ТОЛЬКО внутри хоста. Второй клиент в сети так сервер не найдет.
Готово! Сервер запущен и на него можно зайти!
Как запустить сервер SAMP — проблема решена!
Выполнив всего несколько простых шагов вы развернули полноценный игровой сервер GTA San Andreas у себя на компьютере. Но в скором времени играть со стандартным игровым модом надоест и захочется создать свой. Так что ждите следующих статей!
Источник
Как запустить сервер самп на mysql на компьютере
1. Скачиваем программу под названием Denver. Перейти на официальный сайт программы и скачать можно здесь
Мы нажали на кнопку скачать, выбрали необходимую версию (5.2 или 5.3 | Рекомендую самую последнюю), далее вводим Имя, Фамилию и E-Mail адрес, на который придёт одноразовая и только твоя личная ссылка на скачивание программы.
2. Стартовая установка порадует нас вот таким вот окошком:
В которым вылезет Internet Explorer с окошком, которое необходимо закрыть для дальнейшей установки. Далее всё ещё проще, т.к. написано что делать.
3. Мы дошли до пункта
Тут просто можно нажать Enter, если устраивает путь по умолчанию, если нет, читаем информацию окна выше (самой установки). Для согласия вводим букву «y» (естественно без кавычек (вводим игрек, на латинице)).
4. Далее видим сообщение:
Лично я ввёл букву «Z», Вы можете ввести любую, кроме имеющихся букв относящихся к локальным дискам (Получается Букву «C» мы не можем использовать, т.к. такой локальный диск есть у всех по умолчанию).
В принципе все «непонятные» пункты установки я описал. Трудностей возникнуть не должно.
5. После успешной установки на рабочем столе появятся 3 ярлыка Денвера:
Запускаем «Start Denwer».
6. Вводим в браузерной строке «localhost» (Без кавычек) и нажимаем Enter
7. Вот что мы видим:
8. А теперь наступило «самое главное и вкусное». Наконец то будем подключать саму БД (Базу Данных).
Кликаем по вкладке «Базы данных»
Вписываем абсолютно любое название для будущей БД, я решил назвать «PawnWikiRu».
И так, успешно создано! Затем смотрим влево и кликаем по нашей свежесозданной Базе Данных
Угу, и с этим мы справились. Чтобы не писать таблицу SQL самому тупо возьмём и импортируем её вот так:
Выбираем Вашу БД, открываем и нажимаем «ОК» поэтапно, как показано на скриншоте ниже:
Успех! Вот мы и загрузили всё необходимое. Что мы видим? Слева расположены файлики, в которых записана та или иная информация об игроке, бизнесе, доме и прочем (В каждых модах по разному). При необходимости, если разбираешься в этом, можешь редактировать информацию просто кликнув на названием файлика.
9. Последний и самый важный шаг заключается в том, чтобы подключить нашу Базу Данных к самому моду.
Открываем мод через Pawno (Надеюсь это объяснять не нужно) и ищем такие строки:
Изменяем только строку
А именно «DataBaze». Помните, мы давали название нашей БД в самом начале? Так вот, это название нужно написать вместо DataBaze (Может стоять любое другое название, просто измените на своё, которое указывали ранее).
Моя строка тогда будет выглядеть так:
Источник
Как запустить сервер самп на mysql на компьютере
Ни одного зарегистрированного пользователя не просматривает данную страницу
Похожий контент
Просмотр файла PERFECT CRMP | КОПИЯ МОДА ОТ НОЛМАДОВА
ПРОДАЖА МОДА PERFECT ROLEPLAY | BONUS ОТ НОЛМАДОВА
Что имеется в моде:
— Система промокодов
— Система репортов
— Система домов, бизнесов, подъездов
— В моде присутствует хороший АнтиЧит (PERFECT GUARD)
— Система фуллдоступа
— Система префиксов
— Уникальная система банка (Просмотр переводов, кредит и прочее)
— Система гонок и пейнтбола
— Система мероприятий
— Система гаражей
— В моде текстдравы все подключены которые имеются в сборке.
— Онлайн держит 150+ игроков (провекра ботами)
— Система друзей
— Система личных вертолётов
— Можно арендовать место жительства
— Множество админ команд, можно управлять всем из игры
— Система семей
— Система каптов
— Система радаров
— Система банкоматов
— Система тюнинга авто в СТО
— Регистрация/Авторизация на 3d-TextDraw
— Меню/Меню банка/Промокод и большая часть таких моментов на TextDraw.
— Система выбора стиля боя.
— Имеется админ.панель 3d TexDraw
— Режим спека /spec на 3д тексдраве тоже
В архиве имеется чистая база данных!
Мод стоит своих денег)
Добавил Антон Нолмадов Добавлено 08.10.2021 Категория Моды Автор Anton Nolmadov
Источник
Как запустить сервер SAMP на своём компьютере
Всем привет! В этой статье рассмотрим такую тему — как запустить сервер SAMP (San Andreas Multiplayer) на локальном компьютере.
Введение
Несмотря на то, что первая версия SAMP была выпущена аж в 2006 году, эта многопользовательская модификация продолжает развиваться и оставаться популярной, даже несмотря на выход новых версий игры Grand Theft Auto.
Предполагается, что у вас уже установлена игра GTA San Andreas и клиент SAMP последней версии (на момент написания статьи это версия 0.3.7). Итак, приступим к настройке сервера!
Скачиваем сервер SAMP
Последняя версия сервера всегда доступна тут: https://www.sa-mp.com/download.php
Так что скачиваем последнюю версию (на день написания статьи это 0.3.7-R2) и распаковываем скачанный архив. Вы увидите примерно такой список файлов и папок:
Чтобы узнать как запустить сервер SAMP, придется немного вникнуть в его параметры. Для запуска сервера нас интересуют:
Перед запуском сервера нужно внести некоторые корректировки в файл server.cfg, чем мы и займемся на следующем шаге.
Редактирование конфигурации сервера
Открываем файл server.cfg и видим примерно следующее:
Как видим, тут куча параметров. Но для запуска сервера нам потребуются лишь несколько:
Остальные параметры менять не обязательно. Если интересно их предназначение, то можно обратится к Wiki SAMP или форуму sa-mp.com.
Сохраняем файл server.cfg и запускаем server-samp.exe:
Если всё сделано правильно, то сервер запущен! Осталось только зайти на него с помощью клиента SAMP.
Вход на свой сервер SAMP
На этом этапе нам нужно узнать свой локальный IP адрес — они и будет являться адресом запущенного сервера.
Способ 1. Центр управления сетями — Выбрать подключение — Сведения:
Способ 2 — использовать консоль и команду ipconfig:
Итак, IP определен, теперь запускаем клиент SAMP и добавляем новый сервер.
Готово! Сервер запущен и на него можно зайти!
Как запустить сервер SAMP — проблема решена!
Выполнив всего несколько простых шагов вы развернули полноценный игровой сервер GTA San Andreas у себя на компьютере. Но в скором времени играть со стандартным игровым модом надоест и захочется создать свой. Так что ждите следующих статей! 🙂
Источник
Как запустить сервер SAMP на MySQL у себя на компьютере (без хостинга)
Показувати елементи керування програвачем
КОМЕНТАРІ • 189
Пишет что то с плагином
У меня не открывается сайт.
Блять он досихпор отвечает на вопросы и ставит сердечки падаю
офигеть! ты лучший пять лет прошло а у тебя все еще крутой и легкий способ! спасибо)
Script[gamemodes/new.amx]: Run time error 19: «File or function is not found»
Number of vehicle models: 0
вот какая ошибка в samp-serer при запуске что делать
спасибо обьяснил очень грамотно я все понял и запустил мод
Скинь ссылку на свой мод
Что делать если не такой строки Команда для поиска MySQL данных: #define sqlhost
но есть БД?
Ну и что ты объяснил?
В денвере юзер не равен названию базы данных, в денвере юзер по умолчанию (вряд ли кто-то из них будет это менять) root
А если в павно нет #define sqlhost то что делать?
Что то в этом роде
когда нажимаю импорт не могу найти базу данных. Базу данных назвал bd.
я видел на видео две базы есть у меня не одной помогите пж.
а как сделать что бы код приходил на почту
Незнаю ответишь ли, но я делаю всё как у тебя, как у всех, а пишет это: [MySQL] Error (0): Failed to connect. Access denied for user ‘root’@’localhost’ (using password: YES).
@Dorry Crabe ок, спасибо
Неправильные данные для подключения к БД, скорее всего пароль
Тут еще одна проблема, почему когда сохраняю данные игрока, показывает что у него id 0, у многих показывает id 1. Даже полностью чистый мод, проверяю в игре, id 0. Подскажите если сталкивался кто нибудь.
Теперь я понял, а как сделать так чтобы другие люди со своих пк заходили на мой сервер? Без хостинга
Спасибо дружище, все норм объяснил, у меня вот только вопрос, вот логин root а пароля нет, это значит любой может зайти? Просто как это работает, надо пароль задавать?
Это знает не кто если кто напишут root то они на свое
Это ток по лакалке
А как выдать админкy?
чё делать у меня выдаёт типа ссылка не доступна
ИЩЮ ХОСТИНГ САМП ЧТОБЫ С ВАМИ СОТРУДНИЧАТЬ ВСЁ ВОПРОСЫ В ЛС.(ХОСТИНГ ДОЛЖЕН ОТКРЫТ БЫТЬ).(БУДУ ПИАРИТЬ В ВИДЕО И НА СТРИМАХ).❗❗
Я всё понял только один вопрос: А порт открывать обязательно?
БЛЯТЬ ВСЕ НАДО БЕЗ ПОРТА НИКТО НЕ ЗАЙДЕТ ТОКО ТЫ
И ещё вопрос: А если у меня нет папки База Данных?
А где ты взял файл базы данных?
Что делать если файла colia.pmw нету? И если изменённое название. то какое название должно быть? Скажите пожалуйста ((
Пишет Failed to set data for «
Можно ли так играть с другом?
Да, но если проблема только в том, что сервер на MySQL
Если же проблема в чем-то другом.. Портом и т.д., то это не поможет
Помогите пж. Всё сделал как на видео но у меня в папке нет samp-serv.exe ну что бы запустить. помогите
@Dorry Crabe а оно ошибку выдает. можно в вк или в дискорд?
Можешь с другого сервера скопировать, главное, чтобы версия была одинаковая
Подскажите, может кто знает.Скачал сервер,запустил его протестировал его.Но пару дней назад я не могу на сервер зайти пишет сервер не отвечает,я запускаю через Денвер.подскажите кто знает?
Скинь сервер для скачки
ЧТо за Бд которую ты выбрал на пк как она у остольных называется
По разному, но разрешение такое-же.. Это скачивается с сервером обычно
при запуске сервера окно черное на секунду появляется и сразу продает. в мультиплеере сервер не пингуется и нету названия. я херею с таких роликов-нет обьяснить поподробнее- так нет он мышкой тычет с такой скоростью что непонятно куда тычет. даже при просмотре с 0,25 скоростью
Источник
ПОЧЕМУ OPENSERVER?
Всем привет! В данном уроке я научу вас запускать сервер на mySQL с помощью OpenServer. Почему не denwer? Потому что там есть некоторые проблемы (ограничение на размер бд), а также там довольно старые библиотеки. Поэтому, OpenServer.
СКАЧКА И УСТАНОВКА С ОФ. САЙТА:
По этому адресу вы можете ознакомиться с конфигурацией поставляемого OpenServer. Мы переходим к скачке. Нажимаем на графу «Скачать», или переходим по этой ссылке.
Нам подойдет базовая версия (Basic). Скачиваем именно ее.
ЗАПУСК И НАСТРОЙКА:
Потом заходим в путь, по которому был установлен наш OpenServer. Открываем версию, соответствующую архитектуре вашего процессора (32 бит или 64 бита). Если не знаете какая, откройте любой, если выдаст ошибку, значит ваша противоположная версия. Ее для удобства можете вывести на рабочий стол.
После того как запустили, иконка у вас появится на Панели задач (см. скриншот).
Далее нажимаем на эту иконку и выбираем пункт «запустить».
Если у вас выбило ошибку, что порт занят, ВЫКЛЮЧИТЕ SKYPE.
Если у вас выбило ошибку, связанную с файлом hosts, уберите у этого файла атрибут «Только для чтения».
Далее, после того как успешно запустился наш OpenServer, переходим в «Дополнительно» и нажимаем «phpMyAdmin»
У вас в браузере откроется PMA, после этого входим под логином root и пустым паролем. Создаем базы, если нужны. Там практически нет ограничения на импорт базы, ведь я не думаю что у вас есть база, которая весит 100 МБ.
Автор-составитель: @DEST.
При копировании на другие источники указывайте авторство.
Отредактировано 19 августа, 2017 пользователем stibs