(Shop_IsClientItemToggled(client, view_as<ItemId>(1))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(2))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(3))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(4))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(5))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(6))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(7))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(8))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(82))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(83))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(84))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(85))==true)
Не совсем понял,но примерно так?@Forever Alone, получать ид по имени скина. items.inc глянь
Shop_IsClientItemToggled(client, view_as<ItemId>(Shop_GetItemId(CategoryId:skins);))==true
bool IsClientSkinUse(int iClient)
{
CategoryId iCatID = Shop_GetCategoryId("имя_категории");
if(iCatID != INVALID_CATEGORY)
{
static const char sItems[][] =
{
// Сюда пишешь список предметов
"имя_предмета_1",
"имя_предмета_2",
"имя_предмета_3",
"имя_предмета_4",
"имя_предмета_5"
};
ItemId item_id;
for(int i = 0; i < sizeof(sItems); ++i)
{
item_id = Shop_GetItemId(iCatID, sItems[i]);
if(item_id != INVALID_ITEM && Shop_IsClientItemToggled(iClient, item_id))
{
return true;
}
}
}
return false;
}
// использовать так:
if(IsClientSkinUse(iClient))
{
...
}
Проблема тогда не исчезла,придется все равно при каждом новом скине лезть в исходник@Forever Alone, нет.
PHP:bool IsClientSkinUse(int iClient) { CategoryId iCatID = Shop_GetCategoryId("имя_категории"); if(iCatID != INVALID_CATEGORY) { static const char sItems[][] = { // Сюда пишешь список предметов "имя_предмета_1", "имя_предмета_2", "имя_предмета_3", "имя_предмета_4", "имя_предмета_5" }; ItemId item_id; for(int i = 0; i < sizeof(sItems); ++i) { item_id = Shop_GetItemId(iCatID, sItems[i]); if(item_id != INVALID_ITEM && Shop_IsClientItemToggled(iClient, item_id)) { return true; } } } return false; } // использовать так: if(IsClientSkinUse(iClient)) { ... }
В другом плагине@Forever Alone, а это в другом плагине или в самом модуле скинов?
else if (!bSetDefaultModel && (Shop_IsClientItemToggled(client, view_as<ItemId>(1))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(2))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(3))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(4))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(5))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(6))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(7))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(8))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(82))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(83))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(84))==true || Shop_IsClientItemToggled(client, view_as<ItemId>(85))==true))
return true;
А нельзя просто в плагине шоп реализовать натив,который будет сообщать,надет ли какой-либо предмет из категории.@Forever Alone, ну тогда разве что в этом плагине так же открывать конфиг скинов и парсить его
bool IsClientSkinUse(int iClient)
{
int iSize = 0;
Handle hArray = Shop_CreateArrayOfItems(iSize);
if(iSize)
{
CategoryId iCatID = Shop_GetCategoryId("имя_категории");
ItemId item_id;
for(int i = 0; i < iSize; ++i)
{
item_id = Shop_GetArrayItem(hArray, i);
if(Shop_GetItemCategoryId(item_id) == iCatID && Shop_IsClientItemToggled(iClient, item_id))
{
CloseHandle(hArray);
return true;
}
}
}
CloseHandle(hArray);
return false;
}
@Forever Alone,
PHP:bool IsClientSkinUse(int iClient) { int iSize = 0; Handle hArray = Shop_CreateArrayOfItems(iSize); if(iSize) { CategoryId iCatID = Shop_GetCategoryId("имя_категории"); ItemId item_id; for(int i = 0; i < iSize; ++i) { item_id = Shop_GetArrayItem(hArray, i); if(Shop_GetItemCategoryId(item_id) == iCatID && Shop_IsClientItemToggled(iClient, item_id)) { CloseHandle(hArray); return true; } } } CloseHandle(hArray); return false; }
bool IsClientSkinUse(int iClient)
{
int iSize = 0;
Handle hArray = Shop_CreateArrayOfItems(iSize);
if(iSize)
{
CategoryId iCatID = Shop_GetCategoryId("имя_категории");
ItemId item_id;
for(int i = 0; i < iSize; ++i)
{
item_id = Shop_GetArrayItem(hArray, i);
if(Shop_IsClientItemToggled(iClient, item_id) && Shop_GetItemCategoryId(item_id) == iCatID)
{
return true;
}
}
}
CloseHandle(hArray);
return false;
}
....
else if (!bSetDefaultModel && IsClientSkinUse(client) == true)
return true;
А почему не пишется,что было отредактировано?@Forever Alone, чуток пофиксил код. была утечка
--- Добавлено позже ---
@Forever Alone, еще раз пофиксил