Преработка на HP regeneration, че да дава кръв дори след като цялата кръв е напълно възстановена, и свалена след това

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
bigexplosion
Извън линия
Потребител
Потребител
Мнения: 46
Регистриран на: 31 Окт 2021, 21:45
Се отблагодари: 14 пъти
Получена благодарност: 1 път

Преработка на HP regeneration, че да дава кръв дори след като цялата кръв е напълно възстановена, и свалена след това

Мнение от bigexplosion » 23 Мар 2022, 15:57

Здравейте. Необходима ми е проста корекция на следния плъгин:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fun>
#include <zombie_plague_advance>

new g_itemid1;

public plugin_init()
{
    register_plugin("[ZP] HP", "1.0", "Tribium");
    g_itemid1 = zp_register_extra_item("Health Regeneration", 10, ZP_TEAM_ZOMBIE);
}

public zp_extra_item_selected(player, itemid)
{
    if (itemid == g_itemid1)
    {
        set_task(1.0, "Health_Start", player, _, _, "b");
        client_print(player, print_chat, "[ZP] You bought Health Regeneration!");
    }
}

public Health_Start(player)
{
    if(get_user_health(player) < zp_get_zombie_maxhealth(player))
    {
        set_user_health(player, get_user_health(player) + 1000);

        if(get_user_health(player) > zp_get_zombie_maxhealth(player))
        {
            client_print(player, print_chat, "[ZP] Your Health is full now!");
            set_user_health(player, zp_get_zombie_maxhealth(player));
            remove_task(player);
        }
    }
}
Това е предмет, който се купува от менюто за предмети за зомбита.

Ето какво искам да бъде променено в този плъгин.

Когато си зомби, чието оригинално количество кръв е 60,000, примерно, и кръвта ти е свалена на 20,000, купуването на този предмет ще направи така, че да получаваш 1,000 кръв на секунда докато не достигнеш оригиналното количество - 60,000 кръв. След като оригиналното количество кръв е достигнато, плъгина ще спре да ти дава кръв (така трябва да бъде), и ще спре да работи (така НЕ трябва да бъде, което означава, че след регенерация до 60,000 кръв, плъгина вече няма да ти дава кръв, дори и кръвта ти да падне под 60,000.

Искам плъгина да работи постоянно, през целия рунд. Това означава, че щом купиш предмета и той ти възтанови кръвта до оригиналния лимит, то плъгина трябва да остане в готовност отново да дава кръв, ако кръвта ти падне под оригиналиня лимит. Плъгина трябва да дава кръв постоянно, дори след като кръвта ти е заредена на макс, и след това свалена отново, без обаче да надвишава оригиналния лими.

Има и още един проблем. Плъгина дава 1,000 кръв на секунда, но няма проверка която да проверява кълко пъти е купен предмета, и да предотвратява повторно купуване. Това означава, че ако купиш предмета 4 пъти, ще получаваш не 1,000 кръв, а 4,000 кръв на секунда. Това не трябва да е така. Трябва да има проверка, котяо да предотвратява повторното купуване, което означава, не играч трябва да може да купува плъгина само веднъж, а не по няколко пъти.

Ако втория проблем не можете да го оправите, или нямате време, недейте. Основно държа на първия проблем да се оправи.

След промяната, плъгина трябва да важи само за един рунд, както е сега.

Обяснението може да е объркано. Ако не разбирате какво точно искам, ще опитам да го обясня по-добре.

Благодаря.

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Преработка на HP regeneration, че да дава кръв дори след като цялата кръв е напълно възстановена, и свалена след това

Мнение от Radeon » 29 Юни 2022, 11:41

Тествай

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fun>
#include <zombie_plague_advance>

new g_itemid1;
new const g_iLimit = 1
new g_iUses[33]

public plugin_init()
{
    register_plugin("[ZP] HP", "1.0", "Tribium");
    g_itemid1 = zp_register_extra_item("Health Regeneration", 10, ZP_TEAM_ZOMBIE);
    register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")
}

public zp_extra_item_selected(player, itemid)
{
	
		if (itemid == g_itemid1 && g_iUses[player] < g_iLimit)
		{
			set_task(1.0, "Health_Start", player, _, _, "b");
			client_print(player, print_chat, "[ZP] You bought Health Regeneration!");
			g_iUses[player]++
		}
	
	
		else 
		{
			client_print(player, print_chat, "[ZP] You can buy only 1 Regeneration per Round!");
		}
}

public Health_Start(player)
{
    if(get_user_health(player) < zp_get_zombie_maxhealth(player))
    {
        set_user_health(player, get_user_health(player) + 1000);
    }
}

public OnRoundStart(player)
{
    
    g_iUses[player] = 0
}

public client_putinserver(player)
{
g_iUses[player] = 0
}

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot] и 12 госта