,

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,149
196
www.dotabuff.com
Проект
Roshan defense
открытые проекты
 

iia3uk666

Друзья CG
18 Дек 2021
411
70
Проект
Ушел с CG
Вот тебе гит с абилками на луа, разберешься я думаю:

А вот твой лайфстил в lua исполнении
Код:
"DOTAAbilities"
{
    //=================================================================================================================
    // Lifestealer: Feast (Lua version)
    //=================================================================================================================
    "lifestealer_feast_lua"
    {
        // Ability Technical Aspect
        // base script folder    : scripts/vscripts
        // base texture folder    : resource/flash3/images/spellicons
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                        "ability_lua"
        "ScriptFile"                    "lua_abilities/lifestealer_feast_lua/lifestealer_feast_lua"
        "AbilityTextureName"            "lifestealer_feast_lua"
        "FightRecapLevel"                "1"
        "MaxLevel"                        "4"
      
        // Ability General
        //-------------------------------------------------------------------------------------------------------------
        "AbilityType"                    "DOTA_ABILITY_TYPE_BASIC"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "SpellImmunityType"                "SPELL_IMMUNITY_ENEMIES_YES"

        // Ability Casting
        //-------------------------------------------------------------------------------------------------------------

        // Ability Resource
        //-------------------------------------------------------------------------------------------------------------

        // Damage
        //-------------------------------------------------------------------------------------------------------------

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                "FIELD_FLOAT"
                "hp_leech_percent"        "4.5 5.5 6.5 7.5"
            }
        }
    }
}
Создаешь файлик: lifestealer_feast_lua.lua местонахождение: Диск:/путь до папки/steam/steamapps/common/dota 2 beta/game/dota_addons/Твоя папка с кастомкой/scripts/vscripts/lua_abilities/lifestealer_feast_lua/lifestealer_feast_lua.lua
Мне было лень убирать комментарии
Lua:
lifestealer_feast_lua = class({})
LinkLuaModifier( "modifier_lifestealer_feast_lua", "lua_abilities/lifestealer_feast_lua/lifestealer_feast_lua", LUA_MODIFIER_MOTION_NONE )

--------------------------------------------------------------------------------
-- Passive Modifier
function lifestealer_feast_lua:GetIntrinsicModifierName()
    return "modifier_lifestealer_feast_lua"
end

modifier_lifestealer_feast_lua = class({})

--------------------------------------------------------------------------------
-- Classifications
function modifier_lifestealer_feast_lua:IsHidden()
    return true
end

function modifier_lifestealer_feast_lua:IsPurgable()
    return false
end

--------------------------------------------------------------------------------
-- Initializations
function modifier_lifestealer_feast_lua:OnCreated( kv )
    -- references
    self.leech_percent = self:GetAbility():GetSpecialValueFor( "hp_leech_percent" )/100 -- special value
end

function modifier_lifestealer_feast_lua:OnRefresh( kv )
    -- references
    self.leech_percent = self:GetAbility():GetSpecialValueFor( "hp_leech_percent" )/100 -- special value 
end

function modifier_lifestealer_feast_lua:OnDestroy( kv )

end

--------------------------------------------------------------------------------
-- Modifier Effects
function modifier_lifestealer_feast_lua:DeclareFunctions()
    local funcs = {
        MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PHYSICAL,
    }

    return funcs
end

function modifier_lifestealer_feast_lua:GetModifierProcAttack_BonusDamage_Physical( params )
    if IsServer() then
        if self:GetParent():PassivesDisabled() then return end

        -- leech
        local leech = params.target:GetHealth() * self.leech_percent
        self:GetParent():Heal( leech, self:GetParent() )
        self:PlayEffects()
        return leech
    end
end

--------------------------------------------------------------------------------
-- Graphics & Animations
-- function modifier_lifestealer_feast_lua:GetEffectName()
--     return "particles/string/here.vpcf"
-- end

-- function modifier_lifestealer_feast_lua:GetEffectAttachType()
--     return PATTACH_ABSORIGIN_FOLLOW
-- end

function modifier_lifestealer_feast_lua:PlayEffects()
    -- Get Resources
    local particle_cast = "particles/generic_gameplay/generic_lifesteal.vpcf"

    -- Create Particle
    local effect_cast = ParticleManager:CreateParticle( particle_cast, PATTACH_ABSORIGIN_FOLLOW, self:GetParent() )
    -- ParticleManager:SetParticleControl( effect_cast, iControlPoint, vControlVector )
    -- ParticleManager:SetParticleControlEnt(
    --     effect_cast,
    --     iControlPoint,
    --     hTarget,
    --     PATTACH_NAME,
    --     "attach_name",
    --     vOrigin, -- unknown
    --     bool -- unknown, true
    -- )
    ParticleManager:ReleaseParticleIndex( effect_cast )
end

Путь до партиклей и звуков возможно будет не работать, над будет возможно переделать им путь
 
Реклама: