Шаг 1.
Объявляем массив в constants.inl
Счетчик смертей игрока.
Шаг 2.
Обнулим для каждого игрока смерти в war3ft.inl (функция WC3_PlayerInit( idUser ))
Шаг 3.
В war3ft.inl находим public WC3_Death( idVictim, iKiller, iWeaponID, iHeadshot )
Ниже код выпадения вещей и само удаление предметов у игрока.
Добавляем условие и должно работать удаление с выпадением после трех смертей
Код
//Прибавляем одну смерть
arrIsDelItem[idVictim] += 1;
//Если смертей у игрока больше или равно 3, сработает удаление и выпадение предметов
if(arrIsDelItem[idVictim] >= 3)
{
////Выпадение предметов BEGIN {
if(get_pcvar_num( CVAR_wc3_loot_items ) > 0)
{
//Определение какие предметы были у жертвы
//Для shopmenu
new iVictimItemShop1 = bIsItemUserSlot(idVictim,ITEM_SLOT_ONE);
//Для shopmenu2
new iVictimItemShop2 = bIsItemUserSlot(idVictim,ITEM_SLOT_TWO);
//Для shopmenu3
new iVictimItemShop3 = bIsItemUserSlot(idVictim,ITEM_SLOT_THREE);
//Проверка на наличие вещей
new bIsDropItems = fIsDropItems(iVictimItemShop1,iVictimItemShop2,iVictimItemShop3);
if(bIsDropItems != 0)//Если есть предметы
{
if (random_num(0, 100 ) <= get_pcvar_num( CVAR_wc3_loot_items_percent ) )
{
ArrayPushCell(arrIntItemVictimShop1, iVictimItemShop1);
ArrayPushCell(arrIntItemVictimShop2, iVictimItemShop2);
ArrayPushCell(arrIntItemVictimShop3,iVictimItemShop3);
ArrayPushCell(arrIntDrawSpriteItems, idSpriteItems);
ArrayPushCell(arrIntScaleSpriteItems, 8);
if (get_pcvar_num( CVAR_wc3_loot_remove ) == 1)
ArrayPushCell(arrIntLootRemove, get_pcvar_num( CVAR_wc3_loot_stay ));
//Определение цвета вещей
fColorItems(iVictimItemShop1,iVictimItemShop2,iVictimItemShop3);
//Создание модели брони
fCreateItemsClass(idVictim);
}
}
else//Если нет предметов
{
if(get_pcvar_num( CVAR_wc3_loot_items ) == 2)
{
if (random_num(0, 100 ) <= get_pcvar_num( CVAR_wc3_loot_ar_hp_xp_percent ) )
{
ArrayPushCell(arrIntItemVictimShop1, iVictimItemShop1);
ArrayPushCell(arrIntItemVictimShop2, iVictimItemShop2);
ArrayPushCell(arrIntItemVictimShop3,iVictimItemShop3);
ArrayPushCell(arrIntDrawSpriteItems, idSpriteNoItems);
ArrayPushCell(arrIntScaleSpriteItems, 3);
if (get_pcvar_num( CVAR_wc3_loot_remove ) == 1)
ArrayPushCell(arrIntLootRemove, get_pcvar_num( CVAR_wc3_loot_stay ));
//Определение цвета вещей
fColorItems(iVictimItemShop1,iVictimItemShop2,iVictimItemShop3);
//Создание модели брони
fCreateArXpHpClass(idVictim);
}
}
}
//Звук при выпадении предмета
//PlayEmitSound(idVictim, szSoundLootItems);
}
//Выпадение предметов END }
ITEM_UserDied( idVictim );
//Обнуляем счетчик смертей
arrIsDelItem[idVictim] = 0;
}
Скрин как должно быть: