CustomGames.ru - Dota 2 пользовательские игры

Помогите с абилкой

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн den4iccc

  • 382
  • Мощь: 6
Помогите с абилкой
« : 14-03-2017, 12:14:46 »
Сделал вроде всё правильно, но абилка работает не совсем как надо, суть абилки - реген маны в секунду допустим утром абилка регенет 0,6 мп а ночью 1,2. На данный момент абилка регенет утром 0,6 и ночью
Код
   "testmp"
{
        "BaseClass"        "ability_datadriven"
        "AbilityBehavior"  "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityTextureName"                "skill_1"

        "AbilitySpecial"
        {
           "01"
            {
                "var_type"                 "FIELD_INTEGER"
                "mana_per_second_day"      "0.6"
            }
    "02"
            {
                "var_type"                 "FIELD_INTEGER"
                "mana_per_second_night"    "1.2"
            }
        }

"Modifiers"
        {
   "mana_regen_datadriven"
   {
"IsHidden"  "1"
"Passive" "1"

"ThinkInterval" "1"
"OnIntervalThink"
{
"RunScript"
{
"ScriptFile" "mana_regen.lua"
"Function"   "ManaInSec"
}
}
   }
   
   "mana_regen_day"
   {
                "Passive"    "1"
                "IsPurgable" "0"
                "IsHidden"   "1"
                "Properties"
                {
                    "MODIFIER_PROPERTY_MANA_REGEN_TOTAL_PERCENTAGE" "%mana_per_second_day"
                }
   }
   
   "mana_regen_night"
   {
                "Passive"    "1"
                "IsPurgable" "0"
                "IsHidden"   "1"
                "Properties"
                {
                    "MODIFIER_PROPERTY_MANA_REGEN_TOTAL_PERCENTAGE" "%mana_per_second_night"
                }
   }
        }


    }
Пробовал после применения RemoveModifierByName в lua
Код
function ManaInSec(keys)
local caster = keys.caster
local target = keys.target
local ability = keys.ability

if GameRules:IsDaytime() then
ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "mana_regen_day", {duration = 1})
elseif not GameRules:IsDaytime() then
ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "mana_regen_night", {duration = 1})
end
end
« Последнее редактирование: 14-03-2017, 12:17:30 от den4iccc »

Оффлайн Илья

  • Супермодератор
  • 2131
  • Мощь: 21
Re: Помогите с абилкой
« Ответ #1 : 14-03-2017, 16:06:57 »
Из-за того, что ты в обоих модификаторах прописываешь:
Код
"Passive"    "1"
Они у тебя оба и висят одновременно (как только абилку прокачиваешь). Не знаю только, почему 0.6, должно 1.8 регенить.

Убери эту строчку у обоих и должно работать.

Оффлайн Илья

  • Супермодератор
  • 2131
  • Мощь: 21
Re: Помогите с абилкой
« Ответ #2 : 14-03-2017, 16:11:46 »
Но, если тебе прям всю ночь и всю день нужно держать, то я бы советовал вешать не на секунду, а на пожизненно и просто убирать не нужный через remove в соответствующее время суток. А то у тебя постоянно будет тикать время на модификаторе.

Или можешь вообще сделать модификатор на луа, который дает реген и так же по таймеру проверяет время и в надлежащее меняет реген. Ну и вешать на героев его на старте.

Оффлайн den4iccc

  • 382
  • Мощь: 6
Re: Помогите с абилкой
« Ответ #3 : 14-03-2017, 21:23:26 »
Спасибо, Passive было лишним