Уменьшение БАТ

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

Danis

Продвинутый
12 Июн 2016
285
0
Проект
Custom Hero Arena
Нужно сделать чтобы базовое время атаки уменьшалось от текущего, т.е если юзанул например ульт алхима тогда оно сразу уменьшает бат, а при отключении ставит то которое будет с ультом алхима. Думал сначала сделать через таймер, но потом понял что оно будет тупо уменьшать БАТ в 0 и меньше. Есть у кого идеи как реализовать?
 
Не очень понял:

т.е если юзанул например ульт алхима тогда оно сразу уменьшает бат, а при отключении ставит то которое будет с ультом алхима.

Но в любом случае: у тебя же оба значения фиксированные? Так в чем проблема по тому или иному событию "включения/отключения" абилки устанавливать нужное тебе значение?
 
Последнее редактирование модератором:
имел в виду то что если было активировано до ульта алхима и кончится до конца эффекта ульта, то оно вернет базовое значение а бонус от ульты пропадет, и так же будет если сделать наоборот, юзануть после каста ульта, будет бонус от ульты на всегда.

P.S. Первое значение - БАТ кастера не фиксированное, а второе фиксированное
 
Все равно нифига не понял.

Есть абилка, пусть имя будет "А", и есть абилка - ульт алхимика, пусть "У".
А у нас обычная абилка "без цели", которая вешает временный модификатор на кастующего.
Вариант 1) Активируешь А - вешается модификатор. Активируешь У. Модификатор спал, но У еще есть. У кончается - БАТ такой, какой и был до У.
Вариант 2) Активируешь А - вешается модификатор. Активируешь У. Модификатор не спал, но У уже закончился. Модификатор спал - БАТ остается такой, какой был при У? (То есть хочешь устремить, таким образом, БАТ к 0?)

Это хочешь сделать?
 
Последнее редактирование модератором:
нет, я хочу чтобы он чекал каждые 0,1 сек БАТ допустим, и убавлял от него определенное значение 1 раз, и при уничтожении модификатора А ставился текущий БАТ без модификатора от А
 
нет, мне нужно чтобы оно брало значение БАТ у кастера без модификатора от А, и при активации У оно брало его значение БАТ, а потом добавляло модификатор от А поверх У, если У кончился тогда у модификатора А будет БАТ дольше чем вместе с У.
 
214069540_2bfc9d5179ace0f389b13ce7a2f3b7cb_800.jpg
 
[quote author=CryDeS link=topic=1083.msg6173#msg6173 date=1473489965]
214069540_2bfc9d5179ace0f389b13ce7a2f3b7cb_800.jpg

[/quote]
хм, просто так.
 
Очень странная система( которую я к слову не понял ), реализация которой будет слишком напряжной. Вот и вопрос, ЗАЧЕМ.
 
Да, я думал что понял, приводя в пример троля, но ты мне показал, что я так и не понял, как это работает.
 
Или это как стаки троля, только с той разницей, что они кончаются, когда кончается модификатор А?

Или у тебя А никак не уменьшает БАТ, а просто продлевает уменьшение БАТ от У (в случае, если У раньше кончается)?
 
ZLOY, БАТ - Base Attack Time.

Илья, ну я даже не знаю как объяснить правильно.
 
Попробую еще раз объяснить, имею в виду когда активируется модификатор А оно постоянно с интервалом проверяет БАТ героя, при этом само уменьшает БАТ допустим на 0.1, когда активируется модификатор Б у героя СТАВИТСЯ БАТ вне зависимости от модификатора А допустим на 0.6, и если модификатор А активируется тогда БАТ героя будет равен Б - А тоесть 0.6 - 0.1, и если модификатор А останется работать после отключения модификатора Б тогда оно автоматически будет равно базовый БАТ героя - А.

Как-то так.
tumblr_lnknp6LH0x1qh0anc.jpg
 
Код:
function modifier1:OnCreated()
	local parent = self:GetParent()
	parent.baseAttackTime = parent.baseAttackTime or parent:GetBaseAttackTime()
	parent.modifAttackTime = (parent.modifAttackTime or 0) + self:GetAbility():GetSpecialValueFor("base_attack_modifier")
	parent:SetBaseAttackTime(parent.baseAttackTime+parent.modifAttackTime)
end

function modifier1:OnDestroy()
	local parent = self:GetParent()
	parent.baseAttackTime = parent.baseAttackTime or parent:GetBaseAttackTime()
	parent.modifAttackTime = (parent.modifAttackTime or 0) - self:GetAbility():GetSpecialValueFor("base_attack_modifier")
	parent:SetBaseAttackTime(parent.baseAttackTime+parent.modifAttackTime)
end
Если я правильно понял
 
Последнее редактирование модератором:
ZLOY, А если проверять интервалом тогда оно я так понимаю будет стакать модификатор уменьшения БАТ на герое и БАТ будет уходить в минус?
 
[quote author=Danis link=topic=1083.msg6185#msg6185 date=1473519007]
ZLOY, А если проверять интервалом тогда оно я так понимаю будет стакать модификатор уменьшения БАТ на герое и БАТ будет уходить в минус?
[/quote]
Ну если ты будешь отнимать от текущей скорости, то да
 
ZLOY, А сделать чтобы не уходило в минус никак нельзя?
 
Реклама: