Дебафф, создающийся lua-скриптом, запущенным предметом item_datadriven

ZLOY, Какую способность? item?
 
Предмет это тоже способность
 
ZLOY, Мне указать item_название_предмета там?
 
Второй аргумент принимает не строку, а указатель на объект
 
EnDronist, я же скинул тебе уже готовую строку.
[quote author=I_GRIN_I link=topic=1095.msg6302#msg6302 date=1473947917]
И так как ты через кв делаешь вызов функции, ты не можешь там использовать никаких self. Тебе нужно абилку через keys.ability передавать.
Вот так:
Код:
keys.target:AddNewModifier(keys.caster, keys.ability,"modifier_item_desolator_corruption", {duration = _G.item_desolator_corruption_duration})
[/quote]
 
Последнее редактирование модератором:
I_GRIN_I, Не получается :/
 
I_GRIN_I, No changes
Код:
function modifier_item_desolator_orb(keys)
  if IsServer() then
   keys.target:AddNewModifier(keys.caster, keys.ability, "modifier_item_desolator_corruption", {duration = _G.item_desolator_corruption_duration})
  end
end
655517ede5bb401483cc55de08af7ea6.png
 
Последнее редактирование модератором:
EnDronist, а это и не должно было измениться... Ты теперь можешь значения из абилитиспешл в модификаторе получать.
 
EnDronist, скинь код модификатора, я его тебе перепишу, чтобы было видно.
 
I_GRIN_I,,,,,,,
Код:
function modifier_item_desolator_corruption:GetModifierPhysicalArmorBonus()
  return keys.ability:GetSpecialValueFor("corruption_armor") --self.corruption_armor
end
Код:
if modifier_item_desolator_corruption == nil then
  modifier_item_desolator_corruption = class({})
end
function modifier_item_desolator_corruption:IsHidden()
  return false
end
function modifier_item_desolator_corruption:IsDebuff()
  return true
end
function modifier_item_desolator_corruption:IsPurgable()
  return true
end
function modifier_item_desolator_corruption:GetTexture()
  return "desolator_corruption"
end

function modifier_item_desolator_corruption:OnCreated()
	self.corruption_armor = _G.item_desolator_corruption_armor
	print (self.corruption_armor)
end
function modifier_item_desolator_corruption:OnRefresh()
	self.corruption_armor = _G.item_desolator_corruption_armor
end

function modifier_item_desolator_corruption:DeclareFunctions()
  local funcs = {
   MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS
  }
  return funcs
end
function modifier_item_desolator_corruption:GetModifierPhysicalArmorBonus(keys)
  return keys.ability:GetSpecialValueFor("corruption_armor") --self.corruption_armor
end
 
Последнее редактирование модератором:
EnDronist, я же писал тебе, что абилку в модификаторе через self:GetAbility() получать надо.
Код:
if modifier_item_desolator_corruption == nil then
  modifier_item_desolator_corruption = class({})
end
function modifier_item_desolator_corruption:IsHidden()
  return false
end
function modifier_item_desolator_corruption:IsDebuff()
  return true
end
function modifier_item_desolator_corruption:IsPurgable()
  return true
end
function modifier_item_desolator_corruption:GetTexture()
  return "desolator_corruption"
end
function modifier_item_desolator_corruption:DeclareFunctions()
  local funcs = {
   MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS
  }
  return funcs
end
function modifier_item_desolator_corruption:GetModifierPhysicalArmorBonus()
  return self:GetAbility():GetSpecialValueFor("corruption_armor")
end
 
Последнее редактирование модератором:
I_GRIN_I, Не работает
 
EnDronist, что теперь не работает?

Попробуй так на крайняк:
Код:
function modifier_item_desolator_corruption:OnCreated()
	self.corruption_armor = self:GetAbility():GetSpecialValueFor("corruption_armor")
end
function modifier_item_desolator_corruption:OnRefresh()
	self.corruption_armor = self:GetAbility():GetSpecialValueFor("corruption_armor")
end
function modifier_item_desolator_corruption:DeclareFunctions()
  local funcs = {
   MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS
  }
  return funcs
end
function modifier_item_desolator_corruption:GetModifierPhysicalArmorBonus()
  return self.corruption_armor
end


Это не полный код, замени и добавь только несколько строк.



UPD: Только что проверил, у меня все работает.
 
Последнее редактирование модератором:
I_GRIN_I, Ну что за подстава? Я же прописывал script_reload в консоли?
Почему у меня всё начало работать только после того, как я вырубил игру, заного всё срендерил? (kv не менял)
 
EnDronist, ты можешь не рендерить ничего, а просто ран нажимать заново.
 
[quote author=EnDronist link=topic=1095.msg6314#msg6314 date=1473948953]
I_GRIN_I, No changes
[/quote]
Было
Код:
function modifier_item_desolator_orb(keys)
  if IsServer() then
   keys.target:AddNewModifier(keys.caster, keys.ability, "modifier_item_desolator_corruption", {duration = _G.item_desolator_corruption_duration})
  end
end
Должно быть
Код:
function modifier_item_desolator_orb(keys)
   keys.target:AddNewModifier(keys.caster, keys.ability, "modifier_item_desolator_corruption", {duration = _G.item_desolator_corruption_duration})
end
Тебе выше злой сказал, что IsServer() и IsClient() используются тогда, и только тогда, когда ты используешь их ВНУТРИ LUA-модификатора.

А, и да, Lua-модификаторы не перезагружаются через script_reload.
 
Последнее редактирование модератором:
Реклама: