Дать модифер

mrlikelot

Продвинутый
24 Июл 2015
168
1
Не работает спелка, что-то не так использую?
скилл:
Код:
  "Modifiers"
  {  
   "modifier_inviz_datadriven"
   {
    "IsHidden" "1"
    "Passive" "1"
     
    "ThinkInterval" "0.1"
    "OnIntervalThink"
    {
      "RunScript"
      {
        "ScriptFile" "heroes\treant\treant.lua"
        "Function"  "inviz"
      }
    }
   }

   "modifier_inviz"
   {
    "States"
    {
     "MODIFIER_STATE_INVISIBLE"  "MODIFIER_STATE_VALUE_ENABLED"
    }
   }
  }
Луа:
Код:
function inviz(keys)
	local point = keys.caster:GetAbsOrigin()
	local targets = GridNav:GetAllTreesAroundPoint(point, 375, true)	
	if targets ~= nil then
		keys.caster:AddNewModifier(keys.caster, keys.ability, "modifier_inviz", {duration = 10})
	end
end
В консоль выводит:
Attempted to create unknown modifier type modifier_inviz!
 
Последнее редактирование модератором:
Не работает спелка, что-то не так использую?
Дело в том что модификаторы сделаные в датадривене доступны только при наличии абилки с этим модификатором, и используются следующим образом.
Код:
ability:ApplyDataDrivenModifier(caster, target, "modifier_to_unit", {duration = 30})
Если хочешь добавлять через AddNewModifier(...) то используй lua-модификаторы.
 
Последнее редактирование модератором:
[quote author=CryDeS link=topic=1163.msg6955#msg6955 date=1479383924]
Дело в том что модификаторы сделаные в датадривене доступны только при наличии абилки с этим модификатором, и используются следующим образом.
Код:
ability:ApplyDataDrivenModifier(caster, target, "modifier_to_unit", {duration = 30})
Если хочешь добавлять через AddNewModifier(...) то используй lua-модификаторы.
[/quote]
Спасибо, заработало, если кому надо будет:
Код:
function inviz(keys)
	local ability = keys.ability
	local point = keys.caster:GetAbsOrigin()
	local targets = GridNav:GetAllTreesAroundPoint(point, 375, true)	
	if targets ~= nil then
		ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_inviz", {duration = 0.1})
	end
end
 
Последнее редактирование модератором:
И оно правильно работает даже если рядом нет деревьев?
 
И оно правильно работает даже если рядом нет деревьев?
Нет, исправляю это, не задавать же по 20 вопросов за минуту) попробую сам разобраться, потому что где то видел уже, если не получиться попрошу помощи, спасибо за внимательность :)
 
Последнее редактирование модератором:
И оно правильно работает даже если рядом нет деревьев?
Код:
function inviz(keys)
	local ability = keys.ability
	local point = keys.caster:GetAbsOrigin()
	local targets = GridNav:GetAllTreesAroundPoint(point, 375, true)	
	local count = #targets
	if count >0 then
		ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_inviz", {duration = 7})
	end
end
Вот что получилось, работает
 
Последнее редактирование модератором:
Сразу видно человека, который стремится сделать сам, а не перекинуть работу на других.
 
Реклама: