- 18 Фев 2020
 
- 120
 
- 13
 
- Проект
 - Evo Land
 
Приветствую столкнулся с такой проблемой
пытаюсь увеличить параметры предмета а именно бонус-силы бонус-здоровья и бонус-регена
через методы
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL
и
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE
По факту у меня все работает но визуально в описании предмета остаются старые значения
вот сам код
	
	
	
		
вот локализация:
	
	
	
		
таже локализация есть и в англ. версии.
вот скрин результата

как можете наблюдать тараска в базе дает 225000 здоровья но я в коде увеличиваю его 5 раз. по итогу дает 1.18 лямов.
тоже самое с силой +5000к.
				
			пытаюсь увеличить параметры предмета а именно бонус-силы бонус-здоровья и бонус-регена
через методы
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL
и
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE
По факту у меня все работает но визуально в описании предмета остаются старые значения
вот сам код
		Lua:
	
	modifier_custom_huskar_god_of_shield_value_buff = class({
    IsHidden = function(self) return true end,
    IsPurgable = function(self) return false end,
    IsDebuff = function(self) return false end,
    RemoveOnDeath = function(self) return false end,
    DeclareFunctions = function() return {
        MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
        MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE
    } end
})
function modifier_custom_huskar_god_of_shield_value_buff:OnCreated(params)
    if IsServer() then
        self.selected_item = params.selected_item
        self.multiplier = 5 -- 500% усиление
       
        -- Находим предмет у героя и сохраняем его
        self.item_ability = nil
        local parent = self:GetParent()
        for i = 0, 8 do
            local item = parent:GetItemInSlot(i)
            if item and item:GetName() == self.selected_item then
                self.item_ability = item
                break
            end
        end
       
        if self.item_ability then
            self:ForceAbilityRefresh()
        end
       
    else
        self.selected_item = params.selected_item
        self.multiplier = 5 -- 500% усиление
    end
end
function modifier_custom_huskar_god_of_shield_value_buff:ForceAbilityRefresh()
    if not IsServer() then return end
    if not self.item_ability then return end
   
    local currentLevel = self.item_ability:GetLevel()
    if currentLevel > 0 then
        self.item_ability:SetLevel(currentLevel - 1)
        self.item_ability:SetLevel(currentLevel)
    end
   
    print("Предмет обновлен без удаления")
end
function modifier_custom_huskar_god_of_shield_value_buff:GetModifierOverrideAbilitySpecial(params)
    if not self.item_ability then return 0 end
   
    -- Проверяем, относится ли запрос к нашему сохраненному предмету
    if params.ability == self.item_ability then
        return 1 -- Переопределяем ВСЕ значения выбранного предмета
    end
   
    return 0 -- Для всех остальных способностей не переопределяем
end
function modifier_custom_huskar_god_of_shield_value_buff:GetModifierOverrideAbilitySpecialValue(params)
    if not self.item_ability then return 0 end
   
    -- Проверяем, относится ли запрос к нашему сохраненному предмету
    if params.ability == self.item_ability then
        -- Получаем исходное значение через GetLevelSpecialValueNoOverride
        local original_value = params.ability:GetLevelSpecialValueNoOverride(params.ability_special_value, params.ability_special_level)
       
        -- УМНОЖАЕМ ЗНАЧЕНИЕ НА 500% (в 5 раз)
        local multiplied_value = original_value * self.multiplier
       
        return multiplied_value
    end
   
    return 0
end
	
		KV:
	
	        "DOTA_Tooltip_Ability_item_imba_heart"                "Heart of Tarrasque"
        "DOTA_Tooltip_ability_item_imba_heart_Description"    "<h1>Пассивная: Heart of the Dragon</h1> Восстанавливает %base_regen%%  от максимального здоровья в секунду."
        "DOTA_Tooltip_ability_item_imba_heart_Lore"           "Еще тёплое сердце тарраска,наделяющие владельца невиданной мужественностью."
        "DOTA_Tooltip_ability_item_imba_heart_bonus_strength" "+$str"
        "DOTA_Tooltip_ability_item_imba_heart_bonus_health"   "+$health"
	вот скрин результата

как можете наблюдать тараска в базе дает 225000 здоровья но я в коде увеличиваю его 5 раз. по итогу дает 1.18 лямов.
тоже самое с силой +5000к.