Шаг 1.
Открываете файл items.h
Добавляете новые переменные:
Code
#define NECKLACE_NUM_VIP 3 // Количество халявных "колец"
new g_iNecklaceNumVip[33]; // Халявные "кольца" имунитета от ульты (Ожерелье)
Пример на скриншоте:
Шаг 2.
Открываете файл war3ft.inl
Находите функцию WC3_PlayerInit( idUser )
Добавляете код:
Code
g_iNecklaceNumVip[idUser] = NECKLACE_NUM_VIP;
Пример на скриншоте:
Шаг 3.
Открываете файл items.inl
Находите функцию ITEM_UserDied( idUser )
Добавляете код:
Code
if ( g_iNecklaceNumVip[idUser] > 0)
g_iNecklaceNumVip[idUser] = 0;
Пример на скриншоте:
Далее в том же items.inl
Находите функцию ITEM_RemoveCharge( idUser, iItem )
Добавляете код:
Code
if ( g_iNecklaceNumVip[idUser] > 0 && ITEM_Has( idUser, ITEM_NECKLACE ) == ITEM_NONE)
{
g_iNecklaceNumVip[idUser] -= CHARGE_DISPOSE;
if ( g_iNecklaceNumVip[idUser] <= 0 )
g_iNecklaceNumVip[idUser] = 0;
}
Скрин как должно быть:
Шаг 4.
Открываете файл ultimates.inl
Находите функцию
Code
bool:ULT_CanUserBlockUlt( idUser )
и функцию ULT_RemoveCharge( idUser, iFuncID )
Изменяете в обеих строчки:
В bool:ULT_CanUserBlockUlt( idUser ) меняешь
Code
else if ( ITEM_Has( idUser, ITEM_NECKLACE ) > ITEM_NONE)
на єто
Code
else if ( ITEM_Has( idUser, ITEM_NECKLACE ) > ITEM_NONE || g_iNecklaceNumVip[idUser] > 0)
В
Code
ULT_RemoveCharge( idUser, iFuncID )
Меняешь
Code
if ( ITEM_Has( idUser, ITEM_NECKLACE ) > ITEM_NONE)
на это
Code
if ( ITEM_Has( idUser, ITEM_NECKLACE ) > ITEM_NONE || g_iNecklaceNumVip[idUser] > 0)
Скрин как должно быть