Closed Ramusik closed 13 years ago
они не совсем похожи. У символа есть собственный триггер спелл для увеличения длительности, а у шока такового нет
Меня больше волнует
Patch 3.3.3 (2010-03-23): Tier-10 Elemental Shaman 4-Piece Set Bonus: This bonus has been slightly adjusted to account for the fact that haste now modifies Flame Shock's periodic damage ticks. The bonus now makes the shaman's Lava Burst cause Flame Shock to tick at least two additional times before expiring.
Patch 3.3.2 (2010-01-02): Tier-10 Elemental Shaman 4-Piece Set Bonus: Redesigned. Successful Lava Burst casts now increase the duration of Flame Shock on the target by 6 seconds.
Это значит что теперь оно будет давать именно 2 тика, независимо от хаста? На вовхеде (хотя и с патча 3.3.3) писали что дает именно 6 сек всегда, кто прав? :/
Ещё не понятно увеличивается ли количество тиков ограниченное число раз за 1 каст шока (как у других Символов и т.д.) или же до бесконечности, т.е. постоянно пуляя лаву можно достаточно долго продержать шок на цели
Если подумать логически, то "минимум 2 такта" случай, когда у шамана нет хаста и шок наносит периодический урон раз в 3 секунды. Если бы близы точно делали увеличение длительности на 2 такта, то так бы и написали "Ваше заклинание "Выброс лавы" увеличивает время действия периодического эффекта "Огненный шок" на два такта.". Но раз в описании как и на русском языке, так и в английском описании заклинания упоминается фраза "минимум на ...", то стоит предположить, что с увеличением хаста будет и увеличиваться количество тактов. Так что я больше склонен к комментариям с вовхеада. Да и laise впринципе сделала такую реализацию, взяв за основу triggerAmount
меня вот этот коммент смущает http://wowhead.com/spell=70817#comments:id=1108496 и написан позже остальных
Просто такое ощущение что в 3.3.3 они ничего и не меняли вовсе %)
Во http://www.youtube.com/watch?v=_9jdcX_eQqw&feature=related
Вот еще нашел http://www.youtube.com/watch?v=dI9VIeueXdk ... там есть моменты где видно что на 6 секунд увеличивается ... с 22 секунд на 28 секунд. Хотя иногда и на 9 секунд продлевается действие, но возможно тут какие-то таланты каты способствуют
На твоем видео тоже видно увеличение длительности на 6 секунд ...
Кстати еще одна проблема - это расположение тотемов. На обоих видео видно, как на оффе тотемы располагаются на радиусе значительно большем от шамана, чем на Тринити. На Мангосе такой проблемы нет ...
это из-за кода который ищет столкновение с коллизией для тотемов насколько я понял
На твоем видео тоже видно увеличение длительности на 6 секунд ...
ничего подобного...
скачайте хд видео и смотрите ПОкадрово!
Мои замеры: у него было ~34.5% хаст, от лавы длительность выросла на с 5.6 до 8.9, далее 0.7-4.1, 4.2-8.0, 0.3-4.3, 10.8-15.2, 7.4-11.8, 4.4-8.6, 5.4-8.8
Может тогда такая механика:
MaxDuration - максимальная длительность огненного шока MaxDuration / 3 - длительность 2 тактов (так как всего 6 тактов)
И тогда нужно к текущей длительности прибавить эту длительность 2 тактов, т.е. примерно так:
aura->SetDuration(uint32(aura->GetDuration() + GetSpellMaxDuration(aura->GetSpellProto()) / 3)); ??
Насчет тотемов - в мангосе есть такая строчка:
CreatureCreatePos pos(m_caster, m_caster->GetOrientation(), 2.0f, angle); в функции DoSummonTotem
На Тринити:
Position pos; GetSummonPosition(effIndex, pos);
Может этот параметр 2.0f и задает радиус установки тотемов?
Да не в радиусе дело, у них вместо GetFirstPosCollision (который в моем форке юзается) есть GetNearPos с кодом который проверяет коллизию и подправляет позицию (у нас функция есть, но код закомментирован)
Выход - либо мы правим GetFirstPosCollision делая его угло-зависимым, а не тупо ограничивая высоту в 6 метров, либо раскомментируем тот участок кода и заставляем его работать (исправит миллион проблем с баганием мобов через запрыгивания на стены или битье их сквозь стены, но и нагрузка подрастет + угроза крашей если криво запилить)
м, проще сделать пока по старому :) Если найдется больше подтверждений то уже и переделать... по крайней мере Шаурен мне твердить забить на тупую затею с хастом %)
А идея была такая
// Item - Shaman T10 Elemental 4P Bonus
case 70817:
{
// try to find spell Flame Shock on the target
if (AuraEffect const* AurEff = target->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_SHAMAN, 0x10000000, 0x0, 0x0, GetGUID()))
{
Aura* flameShock = AurEff->GetBase();
int32 curDuration = flameShock->GetDuration();
int32 maxDuration = GetSpellMaxDuration(flameShock->GetSpellProto());
float haste = 1.0f - (curDuration % maxDuration);
int32 bonus = int32(triggerAmount * IN_MILLISECONDS * haste);
int32 newDuration = curDuration + bonus;
if (newDuration > maxDuration)
newDuration = maxDuration;
AurEff->GetBase()->SetDuration(newDuration);
return true;
}
// if not found Flame Shock
return false;
}
Почему новая длительность не может быть больше, чем максимальная?
if (newDuration > maxDuration) newDuration = maxDuration;
Это лишнее мне кажется
Вот другой вариант https://gist.github.com/1046503
добавлю в офф репо
http://ru.wowhead.com/spell=70817 - не работает.
Я полагаю, что у него должна быть схожая механика с Символом Звездоного Огня (spell_dru_glyph_of_starfire - https://github.com/tobmaps/TrinityCore/blob/amani/src/server/scripts/Spells/spell_druid.cpp ). Также нашел реализацию на мангосе - http://getmangos.com/community/topic/12763/fixt10-elemental-shaman-4p-set-bonus/ . Надеюсь на помощь в исправлении