Напиши свой первый плагин для SA:MP

В теме 3 сообщения

legendabrn
Активный

В данном уроке мы сделаем шаблон для нашего первого плагина.

 

Первое что нам понадобится, это Visual Studio с установленными c++ дополнениями, а так же SDK

Установив все самое нужное, можно приступать к созданию проекта

1. Открываем Visual Studio

2. Справа жмем создание проекта

605f7a0e94675_.png.489f455b0f2d0da4a671691787f64529.png

3. Выбираем Библиотека Динамической компоновки ( DLL )

605f7a3966613_.png.30af518848104d9336f0124a5e796b0b.png

4. Указываем любое название проекта

605f7aa674acc_.png.37a126ed8268e394f7aff0edb6742b62.png

5. Создав проект, выбираем в самом верху Release, x86 ( SA:MP 32 битный ) 

605f7b2a6c0bc_.png.b185c009ed94574b7d5bcbf4ba6dbb6a.png

6. Открываем нашу папку с проектом и разархивируем SDK.zip

7. Включаем отображение всех файлов

605f7cb14285b_.png.e4f2a1f6ee91fd3e317d768693bfc996.png

8. У нас должна появиться папка SDK, жмем по ней правой кнопкой мыши и включаем в проект

9. Отключаем отображение файлов

10. Создаем plugin.def (для экспорта определения модулей)

Жмем правой кнопкой мыши по нашему проекту -> добавить -> создать элемент

605f7e237e8ff_.thumb.png.3d452c270ed38efafcb50f6b83d381c6.png

11. Выбираем Visual C++ -> Код -> Файл определения модуля ( .def )

605f7e79a1b1a_.png.d58fe559276d569566cdd51bd5ff8734.png

11. Жмем правой кнопкой мыши по проекту -> свойства -> компоновщик -> ввод -> пишем "plugin.def"

605f7ed8004b6_.png.0ed2d8b915005989ab87de362a4b303a.png

12. Открываем dllmain.cpp и вставляем следующий код:

#include "SDK/amx/amx.h"
#include "SDK/plugincommon.h"

extern void *pAMXFunctions;
void *(*logprintf)(const char *fmt, ...);

PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports()
{
	return SUPPORTS_VERSION | SUPPORTS_AMX_NATIVES;
}

PLUGIN_EXPORT bool PLUGIN_CALL Load(void **ppData)
{
	pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS];
	logprintf = (void *(*)(const char *fmt, ...))ppData[PLUGIN_DATA_LOGPRINTF];
	
	if (NULL == pAMXFunctions || NULL == logprintf)
		return false;

	logprintf("  clear plugin loaded..");
	return true;
}

PLUGIN_EXPORT void PLUGIN_CALL Unload()
{
	logprintf("  clear plugin unloaded..");
}

13 Жмем правой кнопкой мыши по проекту -> собрать

Если сделали все правильно, в выводе должно быть написано следующее:

605f7f548d049_.png.855c5358f4c2ae545d9fc45d952651ba.png

Копируем из папки Release к себе в папку plugins, прописываем в server.cfg и проверяем

605f7fbe18f8e_.png.5ecc10d56b925a20878ac95178e2e82d.png

 

Снизу предоставлен полный собранный проект.

Гайд об pawn и описание всех функций находится тут

SDK.zip

clearPlugin.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Randy
Новичок

Сделал всё так, как указано в топике. Выводятся ошибки. Использую актуальную версию Visual Studio 2022.

Безымянный.png

UPD: Когда я взял проект, который был приложен, и использовал его, то никаких ошибок не возникло. Всё собралось сразу же...

Отредактировано пользователем Randy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • odin
      От odin
      Добрый день, дорогие читатели.

      С радостью объявляем новость о том, что мы в поисках команды для разработки амбициозного проекта в GTA San Andreas.

      Для реализации нашего продукта с дальнейшим выпуском на большую аудиторию нам требуется:

      ❗Разработчик игрового мода
      • Виртуозное знание языка PAWN
      • Глубокий опыт работы с базами данных MySQL, SQLite
      • Умение в кратчайшие сроки найти и устранить ошибку в игровом коде
      • Умение разрабатывать сложные и большие игровые системы

      ❗Разработчик игрового клиента [PC&Mobile]
      • Знание в разработке игровых лаунчеров/клиентов на языке C++, C#, Java
      • Глубокий опыт с ASI плагинами. Понимание низкоуровневых аспектов взаимодействия с игрой.
      • Умение оптимизировать client часть для работы на PC&Mobile
      * Знание принципов UI&UX для создания красивых и рабочих интерфейсов

      ❗Project Manager
      • Глубокий опыт в управлении командой разработчиков
      • Иметь опыт работы с GTA проектами от 3-ёх лет
      • Умение мотивировать команду, решать конфликты, доносить чётко и понятно цели
      • Умение пользоваться методологией управление проектами, Agile/SCrum а также соотвующихся инструментов, Jira, Trello
      • Сильные аналитические навыки

      Общие критерия:
      • Возраст от 20-ти лет
      • Желательно проживать на территории РФ
      • Иметь реальное желание работать во благо проекта
      • Быть адекватным, общительным

      Мы гарантируем:
      • Хорошую заработную плату за выполнение работ (условия обсуждаются индивидуально)
      • Добрую и позитивную команду

      Отправлять резюме в TG - @SorrowSquad
    • watson
      От watson
      Продаётся проект Criminal RolePlay с 8-летней историей.

      Проект заморожен и не используется длительное время.
      Потратил на него около 250.000 рублей, продаю за приемлимую цену.

      В комплекте:
      Полноценный игровой мод Мобильный лаунчер с Figma-дизайном Кэш клиентской части Все версии оформления проекта Все группы проекта Criminal RolePlay Шаблоны всех версий сайта, включая ранее не выпущенный шаблон Модуль автодоната YooMoney Помощь с установкой игрового мода на хостинг Цена:
      49 900₽ — за весь комплект.
      Возможен торг при адекватных предложениях.

      Важное:
      Проект продаётся в одни руки. Если в течение месяца не найдётся покупатель, будет рассмотрена продажа по частям.
      Связаться: https://vk.com/rosetta
    • watson
      От watson
      Продаётся проект Criminal RolePlay с 8-летней историей.

      Проект заморожен и не используется длительное время.
      Потратил на него около 250.000 рублей, продаю за приемлимую цену.

      В комплекте:
      Полноценный игровой мод Мобильный лаунчер с Figma-дизайном Кэш клиентской части Все версии оформления проекта Все группы проекта Criminal RolePlay Шаблоны всех версий сайта, включая ранее не выпущенный шаблон Модуль автодоната YooMoney Помощь с установкой игрового мода на хостинг Цена:
      49 900₽ — за весь комплект.
      Возможен торг при адекватных предложениях.

      Важное:
      Проект продаётся в одни руки. Если в течение месяца не найдётся покупатель, будет рассмотрена продажа по частям.
      Связаться: https://vk.com/rosetta
    • MetaLife Online
      От MetaLife Online
      Привествую! Я основатель проекта MetaLife Online, и проект нуждаеться в спонсоре/инвесторе.
      О всем договоримся в лс 
      ТГ
      ВК
    • Nikolas_Alwarez
      От Nikolas_Alwarez
      Здравствуйте, хотел создать свою КРМП карту, на основе карты криминальной России, и столкнулся с такой проблемой. Я не могу найти файлы этой карты, карта нужна 3D для редактирования, помогите пожалуйста найти эту карту.