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

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

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

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

FAQ Как правильно делать архитектуру мода проекта самп

shapegaz

Умник
Добро пожаловать на мою статью о том, как правильно делать свою архитектуру мода.
Всё пошло от модов RLS и Godfather. Как можно заметить от них пошли последующие моды в одном файле. И это не является правильной архитектурой. Сейчас я подробно опишу, как можно расположить файлы и модули и сделать по моему мнению удобную архитектуру.

1. Получение нужных файлов
Для начала нам нужно скачать сам сервер с -> Download SA-MP Windows Server. Скачиваем и разархивируем.

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. Заключение
Итак, как вы могли заметить всё довольно просто. И в случае каких либо ошибок, можно будет легко понять в каком модуле проблема, поэтому использование модулей очень удобно и практично. Что же, на этом мой урок подходит к концу, надеюсь в будущем вы будете использовать архитектуру для своего мода, удачи.

Специальное спасибо: Ziggi
 
Последнее редактирование модератором:
Сверху Снизу