Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Архитектура мода

shapegaz

Изучающий
Пользователь
Регистрация
27 Ноя 2016
Сообщения
104
Лучшие ответы
0
Репутация
24
Добро пожаловать на мою статью о том, как правильно делать свою архитектуру мода. Всё пошло от модов RLS и Godfather. Как можно заметить от них пошли последующие моды в одном файле. И это не является правильной архитектурой. Сейчас я подробно опишу, как можно расположить файлы и модули и сделать по моему мнению удобную архитектуру.


1. Получение нужных файлов

Для начала нам нужно скачать сам сервер с sa-mp.wiki -> Downloads -> сервер windows/linux, скачиваем и разоархивируем.

2. Архитектура

Итак, создаём папку с названием проекта, в моём случае это будет "Project". Далее в ней создаём следующие папки: "compiler","gamemodes","public","plugins". Все наши модули с самим модом будут располагаться в папке public. Остальное впрочем как и в обычном моде, т.е компилятор в compiler, .amx в gamemodes и плагины в plugins.



3. Расположение файлов

Со скаченного сервера с папки pawno всё перекидываем в compiler, samp-server.exe и server.cfg в корневую папку. В папке public создаём новый .pwn файл, можно взять с new.pwn. Ну думаю остальное сами. А так же создадим compiler.bat в корневой папке, в котором у нас будет компилятор, не забываем сменить имя (вместо звездочек вставляем pawnc c без пробела).

PHP:
set name=new (здесь название .pwn файла,у меня будет new.pwn)
compiler\******.exe -;+ -(+ -include -ipublic -ogamemodes/%name%.amx public/%name%.pwn
pause

4. Первый модуль

Итак, создадим наш первый модуль. В public/ создадим папку Player, и в папке Player.pwn, это будет наш первый модуль, сделаем перехват паблика OnPlayerConnect и будем выводить сообщение:

PHP:
public OnPlayerConnect(playerid)
{
  SendClientMessage(playerid,-1,"Добро пожаловать на сервер!");
  #if defined Test_OnPlayerConnect
    return Test_OnPlayerConnect(playerid);
  #endif
}

#if defined _ALS_OnPlayerConnect
  #undef OnPlayerConnect
#else
  #define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect Test_OnPlayerConnect
#if  defined Test_OnPlayerConnect
  forward Test_OnPlayerConnect(playerid);
#endif
Теперь подключим к нашему моду
PHP:
#include "Player/Player.pwn"
Скомпилируем с помощью нашего комплиятора (Compiler.bat), и если скомпилировалось запускаем мод и заходим на сервер. Если вы всё сделали правильно, то вы будете должны увидеть сообщение "Добро пожаловать на сервер!". Надеюсь у вас всё получилось, и вы сделали ваш первый модуль.



5. Заключение

Итак, как вы могли заметить всё довольно просто. И в случае каких либо ошибок, можно будет легко понять в каком модуле проблема, поэтому использование модулей очень удобно и практично. Что же, на этом мой урок подходит к концу, надеюсь в будущем вы будете использовать архитектуру для своего мода, удачи.



Специальное спасибо:

 
Последнее редактирование модератором:
Сверху Снизу