Как сделать третий слот только для VIP игроков?
Тема касается тех кто уже сделал себе три слота.
Шаг 1.
Открываете файл items.inl.
Находите функцию public ITEM_Buy( idUser, iItem )( idUser )
Добавляете код.
Code
if(!(get_user_flags(idUser) & ADMIN_LEVEL_H))
{
if ( ITEM_GetSlot( idUser ) == ITEM_SLOT_THREE &&
!ITEM_CheckFlag( iItem, ITEM_USEONBUY ) )
{
if ( !ITEM_CheckFlag( iItem, ITEM_USEONBUY ) )
{
new bool:bShowReplaceMenu = false;
if ( !ITEM_CheckFlag( iItem, ITEM_CHARGEABLE ) )
bShowReplaceMenu = true;
if ( ITEM_Has( idUser, iItem ) == ITEM_NONE &&
ITEM_CheckFlag( iItem, ITEM_CHARGEABLE ) )
{
bShowReplaceMenu = true;
}
if ( bShowReplaceMenu )
{
g_iFutureItem[idUser] = iItem;
MENU_ReplaceItem2( idUser );
return;
}
}
}
}
Скрин как должно быть:
Шаг 2.
Открываете файл menus.inl.
Добавляете функцию (стандартная для двух слотов).
Code
public MENU_ReplaceItem2( idUser )
{
new szMenu[512] = "", pos = 0;
new iKeys = (1<<9)|(1<<0)|(1<<1);
// Add the menu header
pos += format( szMenu[pos], charsmax(szMenu)-pos, "%L^n^n", LANG_PLAYER, "MENU_REPLACE_ITEM" );
new szItemName[64], szItemName2[64];
LANG_GetItemName( g_iShopMenuItems[idUser][ITEM_SLOT_ONE], idUser, szItemName, charsmax(szItemName) );
LANG_GetItemName( g_iShopMenuItems[idUser][ITEM_SLOT_TWO], idUser, szItemName2, charsmax(szItemName2) );
// Add the items
pos += format( szMenu[pos], charsmax(szMenu)-pos, "\r1. %s^n", szItemName );
pos += format( szMenu[pos], charsmax(szMenu)-pos, "\y2. %s^n", szItemName2 );
// Add the exit option
pos += format( szMenu[pos], charsmax(szMenu)-pos, "^n\d0. %L", LANG_PLAYER, "WORD_EXIT" );
// Show the menu
show_menu( idUser, iKeys, szMenu, -1 );
return;
}
Скрин как должно быть:
Code
http://perfect-soft.at.ua/_fr/5/3011467.png
В результате VIP игроки смогут покупать три вещи,а обычные игроки только две.
Меню замены вещи одну на другую будут разными.
Источник:http://perfect-soft.su