LuxelPartyMod

Просмотры: 65
  • ŔØ₲ŲĒᏃ᙭Ċ 🌌™ 🅳🆅🆁🅺 Разработчик

Препроцессоры и подключение API

Для подключения совместимости с LuxelPartyMod используются следующие определения:

Определение Доступность
LUXELPARTYMOD Доступно на клиенте и на сервере при установленной клиентской части
LUXELPARTYMOD_SERVER Доступно на сервере при установленной серверной части

Проверка через #ifdef позволяет компилировать код совместимости только при наличии соответствующей части мода.

LUXELPARTYMOD

Определяется клиентской частью LuxelPartyMod.pbo. Клиентский мод-пак загружается и на сервере, поэтому это определение доступно на обеих сторонах при установленной основной части мода.

#ifdef LUXELPARTYMOD
// CODE THAT REQUIRES THE MAIN PARTY MOD.
#endif

Для вызовов серверного LXPM_PublicAPI требуется LUXELPARTYMOD_SERVER.

LUXELPARTYMOD_SERVER

Определяется серверной частью LuxelPartyMod_Server.pbo. Для работы с LXPM_PublicAPI используйте его в серверном коде модулей 4_World или 5_Mission.

#ifdef SERVER
#ifdef LUXELPARTYMOD_SERVER
class MyPartyIntegration
{
	static bool IsFriend(string FirstSteamID, string SecondSteamID)
	{
		return LXPM_GetPublicAPI().IsFriends(FirstSteamID, SecondSteamID);
	}
}
#endif
#endif

Обязательная зависимость

Если Ваш серверный мод не должен работать без пати-мода, добавьте серверный addon в requiredAddons[] своей записи CfgPatches:

requiredAddons[] = {"LuxelPartyMod_Server_Mod"};

Для кода, которому нужна только основная клиентская часть:

requiredAddons[] = {"LuxelPartyMod_Mod"};

Это фрагменты config.cpp. Добавьте зависимость к уже существующим, не удаляя остальные. Здесь используются имена addon-классов из CfgPatches, а не имена PBO-файлов.

Серверную зависимость не нужно добавлять в конфиг мода, который устанавливается игрокам.

Необязательная совместимость

Если Ваш мод должен запускаться и без LuxelPartyMod, не добавляйте его как обязательную зависимость в общий PBO. Код интеграции закройте соответствующим #ifdef либо вынесите в отдельный PBO совместимости с явной зависимостью.

Внутри условия должны находиться не только вызовы, но и объявления переменных, параметры, наследование и modded class, использующие типы пати-мода. Иначе без установленного пати компилятор всё равно встретит неизвестный тип.

Определения LUXELPARTYMOD и LUXELPARTYMOD_SERVER предоставляются соответствующими частями LuxelPartyMod. Не объявляйте их вручную в своём моде.

Препроцессор также не означает, что обработчик уже загрузился. Для подключения к его жизненному циклу используйте OnLoaded() и OnDestroyed() из публичного API.