Простые вопросы #2

Статус
В этой теме нельзя размещать новые ответы.

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Что не правильно в коде? Просто скилл кастуется, но не работает, хотя уходит в перезарядку.

KV:
    "flash_superlight_speed"
    {
        "BaseClass"                     "ability_datadriven"
        "AbilityTextureName"            "flash/5"
        "MaxLevel"                         "7"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_NO_TARGET"

        "precache"
        {
            "particle"  "particles/units/heroes/hero_phantom_assassin/phantom_assassin_blur.vpcf"
            "particle"  "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
            "particle"  "particles/units/heroes/hero_faceless_void/faceless_void_chrono_speed.vpcf"
        }

        "AbilityCastPoint"    "0"
        "AbilityCooldown"    "300 150 130 120 110 100 80"
        "AbilityManaCost"    "0 1 2 3 4 5 6"
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                "FIELD_INTEGER"
                "movespeed"                "10000"
            }
            "02"
            {
                "var_type"                "FIELD_INTEGER"
                "bonus_damage"            "100 125 150 175 200 225 250"
            }
            "03"
            {
                "var_type"                "FIELD_INTEGER"
                "bonus_agility"            "10 20 30 40 50 60 70"
            }
            "04"
            {
                "var_type"                "FIELD_INTEGER"
                "duration"                "5 6 7 8 9 10 11"
            }
            "05"
            {
                "var_type"                "FIELD_INTEGER"
                "attackspeed"            "50 70 90 110 130 150 170"
            }
            "06"
            {
                "var_type"                "FIELD_INTEGER"
                "evasion"                "100"
            }
            "07"
            {
                "var_type"                "FIELD_INTEGER"
                "regen"                    "100 200 300 400 500 600 700"
            }
        }
        "Modifiers"
        {
            "modifier_flash_superlight_speed"
            {
                "Passive"            "0"
                "IsHidden"            "1"
                "IsDebuff"            "0"
                "Duration"            "%duration"
                "OnCreated"
                {
                    "AttachEffect"
                    {
                        "EffectName"        "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
                        "EffectAttachType"  "start_at_origin"
                        "Target"            "CASTER"
                    }
                }
                "Properties"
                {
                    "MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" "%attackspeed"
                    "MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT" "%mpvespeed"
                    "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE"    "%bonus_damage"
                    "MODIFIER_PROPERTY_STATS_AGILITY_BONUS"    "%bonus_agility"
                    "MODIFIER_PROPERTY_EVASION_CONSTANT"     "%evasion"
                    "MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT"    "%regen"
                }
            }
        }
    }
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,149
196
www.dotabuff.com
Проект
Roshan defense
Что не правильно в коде? Просто скилл кастуется, но не работает, хотя уходит в перезарядку.

KV:
    "flash_superlight_speed"
    {
        "BaseClass"                     "ability_datadriven"
        "AbilityTextureName"            "flash/5"
        "MaxLevel"                         "7"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_NO_TARGET"

        "precache"
        {
            "particle"  "particles/units/heroes/hero_phantom_assassin/phantom_assassin_blur.vpcf"
            "particle"  "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
            "particle"  "particles/units/heroes/hero_faceless_void/faceless_void_chrono_speed.vpcf"
        }

        "AbilityCastPoint"    "0"
        "AbilityCooldown"    "300 150 130 120 110 100 80"
        "AbilityManaCost"    "0 1 2 3 4 5 6"
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                "FIELD_INTEGER"
                "movespeed"                "10000"
            }
            "02"
            {
                "var_type"                "FIELD_INTEGER"
                "bonus_damage"            "100 125 150 175 200 225 250"
            }
            "03"
            {
                "var_type"                "FIELD_INTEGER"
                "bonus_agility"            "10 20 30 40 50 60 70"
            }
            "04"
            {
                "var_type"                "FIELD_INTEGER"
                "duration"                "5 6 7 8 9 10 11"
            }
            "05"
            {
                "var_type"                "FIELD_INTEGER"
                "attackspeed"            "50 70 90 110 130 150 170"
            }
            "06"
            {
                "var_type"                "FIELD_INTEGER"
                "evasion"                "100"
            }
            "07"
            {
                "var_type"                "FIELD_INTEGER"
                "regen"                    "100 200 300 400 500 600 700"
            }
        }
        "Modifiers"
        {
            "modifier_flash_superlight_speed"
            {
                "Passive"            "0"
                "IsHidden"            "1"
                "IsDebuff"            "0"
                "Duration"            "%duration"
                "OnCreated"
                {
                    "AttachEffect"
                    {
                        "EffectName"        "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
                        "EffectAttachType"  "start_at_origin"
                        "Target"            "CASTER"
                    }
                }
                "Properties"
                {
                    "MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" "%attackspeed"
                    "MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT" "%mpvespeed"
                    "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE"    "%bonus_damage"
                    "MODIFIER_PROPERTY_STATS_AGILITY_BONUS"    "%bonus_agility"
                    "MODIFIER_PROPERTY_EVASION_CONSTANT"     "%evasion"
                    "MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT"    "%regen"
                }
            }
        }
    }
OnSpellStart . . .
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Ты про эффект со сниятием ограничения скорости или про modifier_flash_superlight_speed?
Про modifier_flash_superlight_speed. С пассивками все норм, они действуют когда надо. А вот к примеру static_field зевса действует 1 раз только при срабатывании способности. Как сделать так чтобы она действовала в течении способности.
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
И что? Не работает?
Неа.
Я вот в modifier вместо start_at_origin поставил follow_origin, эффект длительность такая же. Просто эффект бежал за мной, но потом опять пропал.
KV:
"OnCreated"
                {
                    "AttachEffect"
                    {
                        "EffectName"        "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
                        "EffectAttachType"  "follow_origin"
                        "Target"            "CASTER"
                    }
                }
 
20 Дек 2016
892
170
Неа.
Я вот в modifier вместо start_at_origin поставил follow_origin, эффект длительность такая же. Просто эффект бежал за мной, но потом опять пропал.
KV:
"OnCreated"
                {
                    "AttachEffect"
                    {
                        "EffectName"        "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
                        "EffectAttachType"  "follow_origin"
                        "Target"            "CASTER"
                    }
                }
Ок, я только сейчас понял, что ты имеешь ввиду.
Все частицы настраиваются с помощью так называемых "Control Points", но у каждой частицы эти настройки уникальны. В ассест браузере ищешь частицу и открываешь, там можно будет посмотреть, сколько у нее контрольных точек и за что они отвечают. В случае с zuus_static_field длительность настроить нельзя. Тебе нужно выбрать либо другую частицу (например rune_doubledamage_owner на нее довольно похожа), либо изменять самому эту частицу в партикл эдиторе, чтобы ей можно было задать длительность.
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Ок, я только сейчас понял, что ты имеешь ввиду.
Все частицы настраиваются с помощью так называемых "Control Points", но у каждой частицы эти настройки уникальны. В ассест браузере ищешь частицу и открываешь, там можно будет посмотреть, сколько у нее контрольных точек и за что они отвечают. В случае с zuus_static_field длительность настроить нельзя. Тебе нужно выбрать либо другую частицу (например rune_doubledamage_owner на нее довольно похожа), либо изменять самому эту частицу в партикл эдиторе, чтобы ей можно было задать длительность.
Уу, сложна. А можно как-то задать чтобы эта частица zuus_static_field вызывалась каждый раз при её окончании, вплоть до конца действия способности?
 
20 Дек 2016
892
170
Уу, сложна. А можно как-то задать чтобы эта частица zuus_static_field вызывалась каждый раз при её окончании, вплоть до конца действия способности?
Создать таймер в луа скрипте при касте и вызывать частицу с помощью ParticleManager, но это тоже не элементарно.
Как я уже написал, можешь просто использовать "particles/generic_gameplay/rune_doubledamage_owner.vpcf" вместо нее, она похожа, и не нужно замарачиваться с длительностью
 
Последнее редактирование:

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Вызвать таймер в луа скрипте при касте сделать и вызывать частицу с помощью ParticleManager, но это тоже не элементарно.
Как я уже написал, можешь просто использовать "particles/generic_gameplay/rune_doubledamage_owner.vpcf" вместо нее, она похожа, и не нужно замарачиваться с длительностью
А ты можешь по подробнее про ParticleManager? Просто именно этот эффект zuus_static_field мне подходит. Тут как будто молнии остаются сзади себя, а в партикли дд
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Создать таймер в луа скрипте при касте и вызывать частицу с помощью ParticleManager, но это тоже не элементарно.
Как я уже написал, можешь просто использовать "particles/generic_gameplay/rune_doubledamage_owner.vpcf" вместо нее, она похожа, и не нужно замарачиваться с длительностью

Проехали. Вот что интересно. Есть в кастомке предмет, который снижает скорость на 104% на время. После этого, скилл который убирает ограничения по скорости, перестает их убирать и становится скорость 550.

KV:
    "flash_unlimited_speed"
    {
        // General
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                "ability_datadriven"
        "MaxLevel"                        "7"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityTextureName"            "flash/3"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                "FIELD_INTEGER"
                "bonus_movespeed_pct"    "6 12 18 24 30 36 40"
            }
            "02"
            {
                "var_type"                "FIELD_INTEGER"
                "max_ms"                "99999"
            }
            "03"
            {
                "var_type"                "FIELD_INTEGER"
                "agility"                "0 1 2 3 4 5 50"
            }
            "04"
            {
                "var_type"                "FIELD_INTEGER"
                "damage"                "0 1 2 3 4 5 50"
            }
        }
        "OnUpgrade"
        {
            "RunScript"
            {
                "ScriptFile"        "heroes/hero_flash/flash_unlimited_speed.lua"
                "Function"            "OnUpgrade"
                "ModifierName"        "modifier_movespeed_cap"
            }
        }
        "Modifiers"
        {
            "modifier_flash_unlimited_speed"
            {
                "Passive"            "1"
                "IsHidden"            "1"
                "IsDebuff"            "0"
        
                "EffectName"        "particles/units/heroes/hero_bloodseeker/bloodseeker_thirst_owner.vpcf"
                "EffectAttachType"    "start_at_origin"
        
                "Properties"
                {
                    "MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" "%bonus_movespeed_pct"
                    "MODIFIER_PROPERTY_STATS_AGILITY_BONUS"            "%agility"
                    "MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE"        "%damage"
                }
            }
        }
    }

Lua:
LinkLuaModifier( "modifier_movespeed_cap", "libraries/modifiers/modifier_movespeed_cap.lua" ,LUA_MODIFIER_MOTION_NONE )
function OnUpgrade(keys)
    local caster = keys.caster
    if caster:HasModifier("modifier_movespeed_cap") == false then
        caster:AddNewModifier(caster, nil, "modifier_movespeed_cap", {})
    end
end

Lua:
modifier_movespeed_cap = class({})

function modifier_movespeed_cap:DeclareFunctions()
    local funcs = {
        MODIFIER_PROPERTY_MOVESPEED_MAX,
    }

    return funcs
end

function modifier_movespeed_cap:GetModifierMoveSpeed_Max( params )
    return 10000
end

function modifier_movespeed_cap:IsHidden()
    return true
end
 
20 Дек 2016
892
170
Уу, сложна. А можно как-то задать чтобы эта частица zuus_static_field вызывалась каждый раз при её окончании, вплоть до конца действия способности?
На самом деле поменять разовый партикл под постоянный очень просто. Ей нужно просто поменять иммитер.
Убираешь галочку со старого эмитера и добавляешь Emit Continuosly
guid0.png
Потом открываешь все дочерние частицы и делаешь для них то же самое.
guid1.png
А частицу прописывай так:
Код:
                "EffectName"              "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
                "EffectAttachType"       "follow_origin"
Причем это не в OnCreated, а прямо в блок модификатора

И еще, так как это базовая частица, тебе придется пересохранить прямо из партикл едитора в свой аддон по аналогичному пути. Изменения в эффекте проявятся и без этого, но если не сохранить, то при следующем запуске все сбросится.
 
20 Дек 2016
892
170
Проехали. Вот что интересно. Есть в кастомке предмет, который снижает скорость на 104% на время. После этого, скилл который убирает ограничения по скорости, перестает их убирать и становится скорость 550.

KV:
    "flash_unlimited_speed"
    {
        // General
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                "ability_datadriven"
        "MaxLevel"                        "7"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityTextureName"            "flash/3"

        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                "FIELD_INTEGER"
                "bonus_movespeed_pct"    "6 12 18 24 30 36 40"
            }
            "02"
            {
                "var_type"                "FIELD_INTEGER"
                "max_ms"                "99999"
            }
            "03"
            {
                "var_type"                "FIELD_INTEGER"
                "agility"                "0 1 2 3 4 5 50"
            }
            "04"
            {
                "var_type"                "FIELD_INTEGER"
                "damage"                "0 1 2 3 4 5 50"
            }
        }
        "OnUpgrade"
        {
            "RunScript"
            {
                "ScriptFile"        "heroes/hero_flash/flash_unlimited_speed.lua"
                "Function"            "OnUpgrade"
                "ModifierName"        "modifier_movespeed_cap"
            }
        }
        "Modifiers"
        {
            "modifier_flash_unlimited_speed"
            {
                "Passive"            "1"
                "IsHidden"            "1"
                "IsDebuff"            "0"
       
                "EffectName"        "particles/units/heroes/hero_bloodseeker/bloodseeker_thirst_owner.vpcf"
                "EffectAttachType"    "start_at_origin"
       
                "Properties"
                {
                    "MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" "%bonus_movespeed_pct"
                    "MODIFIER_PROPERTY_STATS_AGILITY_BONUS"            "%agility"
                    "MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE"        "%damage"
                }
            }
        }
    }

Lua:
LinkLuaModifier( "modifier_movespeed_cap", "libraries/modifiers/modifier_movespeed_cap.lua" ,LUA_MODIFIER_MOTION_NONE )
function OnUpgrade(keys)
    local caster = keys.caster
    if caster:HasModifier("modifier_movespeed_cap") == false then
        caster:AddNewModifier(caster, nil, "modifier_movespeed_cap", {})
    end
end

Lua:
modifier_movespeed_cap = class({})

function modifier_movespeed_cap:DeclareFunctions()
    local funcs = {
        MODIFIER_PROPERTY_MOVESPEED_MAX,
    }

    return funcs
end

function modifier_movespeed_cap:GetModifierMoveSpeed_Max( params )
    return 10000
end

function modifier_movespeed_cap:IsHidden()
    return true
end
Скорее всего этот предмет еще и парджит, поэтому модификатор снимается.
Код:
function modifier_movespeed_cap:GetAttributes()
    return MODIFIER_ATTRIBUTE_PERMANENT
end
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
На самом деле поменять разовый партикл под постоянный очень просто. Ей нужно просто поменять иммитер.
Убираешь галочку со старого эмитера и добавляешь Emit Continuosly
Посмотреть вложение 220
Потом открываешь все дочерние частицы и делаешь для них то же самое.
Посмотреть вложение 221
А частицу прописывай так:
Код:
                "EffectName"              "particles/units/heroes/hero_zuus/zuus_static_field.vpcf"
                "EffectAttachType"       "follow_origin"
Причем это не в OnCreated, а прямо в блок модификатора

И еще, так как это базовая частица, тебе придется пересохранить прямо из партикл едитора в свой аддон по аналогичному пути. Изменения в эффекте проявятся и без этого, но если не сохранить, то при следующем запуске все сбросится.
Выдает ошибку при сохранении : "Is not an allowed file path. The filename may only contain lower case alphanumeric characters and underscores" Путь сохранения dota 2 beta\content\dota_addons\(kastommka)\particles\heroes\hero_zuus . И просит опять куда-то сохранить(тоже самое если не в content, а в game кидать)
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: