dark-angel190,
1. В файле war3ft.inl нужно найти этот метод:
Код
// This will actually give the user a given race
WC3_SetRace( idUser, race )
{
...
}
и в конец дописать:
Код
// Items reset
g_iShopMenuItems[idUser][ITEM_SLOT_ONE] = ITEM_NONE
g_iShopMenuItems[idUser][ITEM_SLOT_TWO] = ITEM_NONE
g_iShopMenuItems[idUser][ITEM_SLOT_THREE] = ITEM_NONE
// Talismans reset
arrTalismanActive [idUser]= TALISMAN_ITEM_NONE
arrTalismanChange [idUser]= TALISMAN_ITEM_NONE
// Если хочешь надпись при сбрасывании:
client_print( idUser, print_center, "%L", LANG_PLAYER, "CLIENT_PRINT_ITEMS_RESET" );
То есть должно получиться:
Код
// This will actually give the user a given race
WC3_SetRace( idUser, race )
{
...
//бла-бла-бла
// Items reset
g_iShopMenuItems[idUser][ITEM_SLOT_ONE] = ITEM_NONE
g_iShopMenuItems[idUser][ITEM_SLOT_TWO] = ITEM_NONE
g_iShopMenuItems[idUser][ITEM_SLOT_THREE] = ITEM_NONE
// Talismans reset
arrTalismanActive [idUser]= TALISMAN_ITEM_NONE
arrTalismanChange [idUser]= TALISMAN_ITEM_NONE
// Если хочешь надпись при сбрасывании:
client_print( idUser, print_center, "%L", LANG_PLAYER, "CLIENT_PRINT_ITEMS_RESET" );
}
2. В целом, да. Можно реализовать как ты сказал:
Код
if (SM_GetSkillLevel( idUser, необходимый_SkillLevel_конкретного_игрока) < const && iItem == ITEM_X)
{
client_print( idUser, print_center, "%L", LANG_PLAYER, "CLIENT_PRINT_ITEM_BLOCKED" );
return false;
}