GetIntellect

  • Автор темы Автор темы Danis
  • Дата начала Дата начала

Danis

Продвинутый
12 Июн 2016
285
0
Проект
Custom Hero Arena
Как правильно использовать эту функцию? Мне пишет что = nil, хотя я использую эту функцию от кастера,
Код:
self:GetCaster():GetIntellect()
Что не так?
 
[quote author=Danis link=topic=1104.msg6380#msg6380 date=1474467324]
Как правильно использовать эту функцию? Мне пишет что = nil, хотя я использую эту функцию от кастера,
Код:
self:GetCaster():GetIntellect()
Что не так?
[/quote]
У вас одна проблема на всех.
Функции GetIntellect нет в клиентском API
 
Ну блин, скажи пожалуйста как искать инту, очень нужно.
 
Ты где, в модификаторе пытаешься её вызвать?

Вызывай извне и передавай в модификатор как параметр:

Код:
function greater_defense:OnSpellStart()
	local caster = self:GetCaster()
	local target = self:GetCursorTarget()
	local bonus = caster:GetIntellect()/5
	if target:HasModifier("modifier_physical_armor_bonus") then
		target:RemoveModifierByName("modifier_physical_armor_bonus")
	end
	EmitSoundOn("MU.baff", caster)
	target:AddNewModifier( caster, self, "modifier_physical_armor_bonus", {duration = 10, armor = bonus} )
end

Код:
function modifier_physical_armor_bonus:OnCreated(params)
if IsServer () then
	self.armor = params.armor
	self:SetStackCount(self.armor)
	local id1 = ParticleManager:CreateParticle("particles/units/heroes/hero_huskar/huskar_inner_vitality.vpcf",PATTACH_ABSORIGIN_FOLLOW , self:GetAbility():GetCursorTarget() )
	GameRules:GetGameModeEntity():SetContextThink(string.format("CreatureThink_%d", params.creationtime),
		function()
		ParticleManager:DestroyParticle(id1, false)
		return nil
		end,
		params.duration)			
end
end
 
Последнее редактирование модератором:
Илья, А можешь подсказать как у пассивного предмета искать?
 
Будет классно, если ты полностью опишешь что твой предмет делает
 
[quote author=Danis link=topic=1104.msg6387#msg6387 date=1474546438]
Илья, А можешь подсказать как у пассивного предмета искать?
[/quote]

Всмысле? Берешь через item:GetSpecialValueFor("my_value").
 
Последнее редактирование модератором:
Таки не так, мне нужно найти интеллект хозяина, но предмет пассивный и каста у него нету, в самой абилке писать проверку на инту в OnCreated и через таймер?

Мой предмет пассивный, при атаке на врага добавляет ему модификатор который наносит урон с переодичностью, и мне нужно чтобы урон от интеллекта увеличивался.
 
Либо реализуй предмет через луа (что позволит тебе сделать именно то, что ты хочешь), либо через свое предложение (что весьма геморно)

..проверку на инту в OnCreated и через таймер
 
Илья, Не, он у меня и так на луа написан.
 
Хз зачем такое вообще делать на item_lua, если конечно нет каких-то других сложностей с предметом.
Код:
if IsServer() then
	function modifier:OnCreated(kv)
		self:StartIntervalThink(0)
	end

	function modifier:OnIntervalThink()
		ApplyDamage(
			{
				victim = self:GetParent(),
				attacker = self:GetCaster(),
				ability=self:GetAbility(),
				damage_type = DAMAGE_TYPE_MAGICAL,
				damage = self:GetCaster():GetIntellect()
			})
		return .25
	end
end
 
Если вещь на луа реализована, то чего не сделаешь то по простому: таймер с навешиванием одного и того же модификатора, только разными параметрами (в твоем случае пихать каждый раз новый интеллект)?
 
Реклама: