Дать модифер

  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

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
Вот что получилось, работает
 
Последнее редактирование модератором:
Сразу видно человека, который стремится сделать сам, а не перекинуть работу на других.
 
Реклама: