Разные сервера - разные плагины

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Всех приветствую.
Совсем недавно столкнулся с проблемой, что на одном сервере есть !shop, на другом его просто нет.

Есть некий плагин, который установлен на обоих серверах и дается он без исходника.
В этом плагине есть такие строки:
PHP:
#undef REQUIRE_PLUGIN
#tryinclude <shop>
PHP:
if(hArray_Rewards_ShopCredits.Get(i))
{
    CGOPrintToChat(client, "%t", "Chat_RewardShop", hArray_Rewards_ShopCredits.Get(i));
    Shop_GiveClientCredits(client, hArray_Rewards_ShopCredits.Get(i));
}
На сервере, где есть SHOP все в порядке, на другом же выдает ошибку:
PHP:
[SM] Plugin N failed to load: Native "Shop_GiveClientCredits" was not found.
Прошу помощи у знающих людей, как сделать совместимость на разные сервера.
Сообщения автоматически склеены:

Дополню, в конфиге всегда можно не указывать взаимодействие с SHOP (на втором сервере не было ничего указано с ним)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Значит плагин криво написан и в нём нет необходимой проверки на наличие шопа перед использованием функции Shop_GiveClientCredits.
 

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Значит плагин криво написан и в нём нет необходимой проверки на наличие шопа перед использованием функции Shop_GiveClientCredits.
Вот суть данной темы в том, чтобы узнать, как это сделать
 

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
Вот суть данной темы в том, чтобы узнать, как это сделать

C++:
bool shop;

public void OnLibraryAdded(const char[] name)
{
    if(StrEqual(name, "shop"))
    {
        shop = true;
    }
}
public void OnLibraryRemoved(const char[] name)
{
    if(StrEqual(name, "shop"))
    {
        shop = false;
    }
}

...

if(shop && hArray_Rewards_ShopCredits.Get(i))

{

    CGOPrintToChat(client, "%t", "Chat_RewardShop", hArray_Rewards_ShopCredits.Get(i));

    Shop_GiveClientCredits(client, hArray_Rewards_ShopCredits.Get(i));

}
 

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Спасибо за помощь, сейчас попробую проверить, но и до этого была проверка на наличии наград, связанных с SHOP
 
Сверху Снизу