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

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Сделал вроде всё правильно, но абилка работает не совсем как надо, суть абилки - реген маны в секунду допустим утром абилка регенет 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
 
Последнее редактирование модератором:
Из-за того, что ты в обоих модификаторах прописываешь:
Код:
"Passive"  "1"
Они у тебя оба и висят одновременно (как только абилку прокачиваешь). Не знаю только, почему 0.6, должно 1.8 регенить.

Убери эту строчку у обоих и должно работать.
 
Последнее редактирование модератором:
Но, если тебе прям всю ночь и всю день нужно держать, то я бы советовал вешать не на секунду, а на пожизненно и просто убирать не нужный через remove в соответствующее время суток. А то у тебя постоянно будет тикать время на модификаторе.

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