View Issue Details

IDProjectCategoryView StatusLast Update
0029391Legion CoreClasses - Priest - Жрецpublic2024-05-03 23:17
ReporterNeenyaAssigned ToGhost 
PrioritynormalSeverityminorReproducibilityalways
Status acknowledgedResolutionopen 
PlatformWindowsOS10OS Versionx64
Summary0029391: Holy Priest, Mastery: Echo of Light (77485), Echo of Light(77489)
DescriptionНеккоректно:
1) Отблеск света тикает мгновенно
2) Отблеск света тикает больше 3 раз за 9 сек.
3) Мгновенный тик Отблеска света не расчитывается в суммировании исцеления.


Итог:
Из-за того что Отблеск света тикает мгновенно, не суммируя в уменьшение протиканный хил, Исцеление что приходят между внутренним таймером Отблеска света (3 сек) стакаеться больше нужного.
Steps To Reproduce1) Иметь много хасты.
2) Кастануть 3+ спеллами исцеления в таргет за 3 секунды. (Попасть в 3 секундный таймер тика Отблеска света, проще всего с момента наложения)
Additional Informationid:77485[Mastery: Echo of Light]bp:0:43.3531 1:125
Mastery: 43.3531%

1) Flash Heal : 1,273,078
Add to Echo of Light : 1,273,078 * 0.433531 = 551,918.778418
2) Holy Word: Serenity : 2,704,098
Add to Echo of Light : 2,704,098 * 0.433531 = 1,172,310.310038
3) Holy World: Sanctify : 933,030
Add to Echo of Light : 933,030 * 0.433531 = 404,497.42893
4) Renew (initial) : 102,374
Add to Echo of Light : 102,374 * 0.433531 = 44,382.302594

Echo of Light Sum: (1,273,078 + 2,704,098 + 933,030 + 102,374) * 0.433531 = 2,173,108.81998
Heal per Tick: 2,173,108.81998 / 3 (ticks) = 724,369.60666 (~724.368 actual tick)

But...
We healed with Echo of Light 5 times (5 ticks):
1) 574,742
2) 709,574
3) 724,368
4) 724,368
5) 724,368
Sum: 574,742 + 709,574 + 724,368 + 724,368 + 724,368 = 3,457,420
When actual sum was 2,173,108.81998, we healed for 3,457,420.

Why?
Echo of Light "instant" tick after aura update doesn't calculate summary in aura when tick. (sum decrease)
Only timer ticks are decreasing summary. (Ticks per 3 sec)
And we see that:

1) Flash Heal : 1,273,078
Add to Echo of Light : 1,273,078 * 0.433531 = 551,918.778418
2) Holy Word: Serenity : 2,704,098
Add to Echo of Light : 2,704,098 * 0.433531 = 1,172,310.310038
Sum : 551,918.778418 + 1,172,310.310038 = 1,724,229.088456
Ticks : 1,724,229.088456 / 3 (ticks) = 574,743.0294853333 (1st tick)

Sum after tick (not working): Sum - tick : 1,724,229.088456 - 574,743.0294853333 = 1,149,486.058970667
Ticks remaining (not working) : 1,149,486.058970667 / 3 (ticks) = 383,162.019656889

3) Holy World: Sanctify : 933,030
Add to Echo of Light : 933,030 * 0.433531 = 404,497.42893
Sum : 1,724,229.088456 + 404,497.42893 = 2,128,726.517386
Ticks : 2,128,726.517386 / 3 (ticks) = 709,575.5057953333 (2nd tick)
Sum (not working) : 1,149,486.058970667 + 404,497.42893 = 1,553,983.487900667
Ticks (not working) : 1,553,983.487900667 / 3 (ticks) = 517,994.495966889

Sum after tick (not working) : Sum - tick : 1,553,983.487900667 - 517,994.495966889 = 1,035,988.991933778
Ticks remaining (not working) : 1,035,988.991933778 / 3 (ticks) = 345,329.663977926

4) Renew (initial) : 102,374
Add to Echo of Light : 102,374 * 0.433531 = 44,382.302594
Sum : 2,128,726.517386 + 44,382.302594 = 2,173,108.81998
Ticks : 2,173,108.81998 / 3 (ticks) = 724,369.60666 (3rd tick)
Sum (not working) : 1,035,988.991933778 + 44,382.302594 = 1,080,371.294527778
Ticks (not working) : 1,080,371.294527778 / 3 (ticks) = 360,123.7648425927

Sum after tick (not working) : Sum - tick : 1,080,371.294527778 - 360,123.7648425927 = 720,247.5296851853
Ticks remaining (not working) : 720,247.5296851853 / 3 (ticks) = 240,082.5098950618

This is Not working:
{
    1) 574,743.0294853333
    2) 517,994.495966889
    3) 360,123.7648425927
    4) 360,123.7648425927
    5) 360,123.7648425927

    Sum: 574,743.0294853333 + 517,994.495966889 + 360,123.7648425927 + 360,123.7648425927 + 360,123.7648425927
    Sum: 2,173,108.81998
    Echo of Light Sum: (1,273,078 + 2,704,098 + 933,030 + 102,374) * 0.433531
    Echo of Light Sum: 2,173,108.81998
}

Activities

Neenya

2024-02-25 19:24

reporter  

image 1.png (4,426,458 bytes)
image 2.png (228,063 bytes)
image 2.png (228,063 bytes)

Neenya

2024-02-25 19:28

reporter   ~0075066

(просто сейв)

Echo of Light.txt (3,208 bytes)
id:77485[Mastery: Echo of Light]bp:0:43.3531  1:125 
Mastery: 43.3531%

1) Flash Heal 				: 1,273,078 
Add to Echo of Light		: 1,273,078 * 0.433531 = 551,918.778418
2) Holy Word: Serenity		: 2,704,098
Add to Echo of Light		: 2,704,098 * 0.433531 = 1,172,310.310038
3) Holy World: Sanctify		: 933,030
Add to Echo of Light		: 933,030  * 0.433531 = 404,497.42893
4) Renew (initial)			: 102,374
Add to Echo of Light		: 102,374 * 0.433531 = 44,382.302594

Echo of Light Sum:  (1,273,078  +  2,704,098 + 933,030 + 102,374) * 0.433531 = 2,173,108.81998
Heal per Tick: 2,173,108.81998 / 3 (ticks) = 724,369.60666 (~724.368 actual tick)

But...
We healed with Echo of Light 5 times (5 ticks):
1) 574,742
2) 709,574
3) 724,368
4) 724,368
5) 724,368
Sum: 574,742 + 709,574 + 724,368 + 724,368 + 724,368 = 3,457,420
When actual sum was  2,173,108.81998, we healed for 3,457,420.

Why?
Echo of Light "instant" tick after aura update doesn't calculate summary in aura when tick. (sum decrease)
Only timer ticks are decreasing summary. (Ticks per 3 sec)
And we see that:

1) Flash Heal					: 1,273,078 
Add to Echo of Light			: 1,273,078 * 0.433531 = 551,918.778418
2) Holy Word: Serenity			: 2,704,098
Add to Echo of Light			: 2,704,098 * 0.433531 = 1,172,310.310038
Sum								: 551,918.778418 + 1,172,310.310038 = 1,724,229.088456
Ticks 							: 1,724,229.088456 / 3 (ticks) =  574,743.0294853333 (1st tick)

Sum	after tick (not working)	: Sum - tick : 1,724,229.088456 - 574,743.0294853333 = 1,149,486.058970667
Ticks remaining (not working)	: 1,149,486.058970667 / 3 (ticks) = 383,162.019656889

3) Holy World: Sanctify			: 933,030
Add to Echo of Light			: 933,030  * 0.433531 = 404,497.42893
Sum								: 1,724,229.088456 + 404,497.42893 = 2,128,726.517386
Ticks							: 2,128,726.517386 / 3 (ticks) = 709,575.5057953333 (2nd tick)
Sum (not working)				: 1,149,486.058970667 + 404,497.42893 = 1,553,983.487900667
Ticks (not working)				: 1,553,983.487900667 / 3 (ticks) = 517,994.495966889

Sum after tick (not working)	: Sum - tick : 1,553,983.487900667 - 517,994.495966889 = 1,035,988.991933778
Ticks remaining (not working)	: 1,035,988.991933778 / 3 (ticks) = 345,329.663977926

4) Renew (initial)				: 102,374
Add to Echo of Light			: 102,374 * 0.433531 = 44,382.302594
Sum								: 2,128,726.517386 + 44,382.302594 = 2,173,108.81998
Ticks							: 2,173,108.81998 / 3 (ticks) = 724,369.60666 (3rd tick)
Sum (not working)				: 1,035,988.991933778 + 44,382.302594 = 1,080,371.294527778
Ticks (not working)				: 1,080,371.294527778 / 3 (ticks) = 360,123.7648425927

Sum after tick (not working)	: Sum - tick : 1,080,371.294527778 - 360,123.7648425927 = 720,247.5296851853
Ticks remaining (not working)	: 720,247.5296851853 / 3 (ticks) = 240,082.5098950618

This is Not working:

	1) 574,743.0294853333
	2) 517,994.495966889
	3) 360,123.7648425927
	4) 360,123.7648425927
	5) 360,123.7648425927

	Sum: 574,743.0294853333 + 517,994.495966889 + 360,123.7648425927 + 360,123.7648425927 + 360,123.7648425927
	Sum: 2,173,108.81998
	Echo of Light Sum: (1,273,078  +  2,704,098 + 933,030 + 102,374) * 0.433531
	Echo of Light Sum: 2,173,108.81998
	


Echo of Light.txt (3,208 bytes)

Shalfey

2024-02-25 20:13

reporter   ~0075067

Да, действительно, тоже посмотрел и так есть. Я в прошлый раз по результатам работы по своему репорту не убедился в том, как считаются тики. Увидел, что компенсационный тик появился, про кототый и писал Ghost, и проблема с бесконечным суммированием как при первом попытке исправления ушло.
---------------------
Я вижу несколько путей решить проблему.
1. Попробовать реализовать как по офе (но тут я вижу, что проблемно это получается сделать, так как появляются баги с бесконечным суммированием хоты как в первой попытке исправить)
2. Сделать, чтобы этот компесационный тик учитывался при обновлении "Отблеска света" (итоговый отхил будет считаться верно, но останутся моменты с мгновенным отхилом, о которых автор написал)
3. Сделать, чтобы у нас было всегда 2 тика за 6 секунд (или тик раз в 3 секунды, если таймер "Отблеск света" обновляется), но чтобы размер тиков правильно считался под 2 тика (а не под 3 тика, как было на первичной реализации до внесения последних изменений). Тут Ghost, чтобы проверить результат работы, тебе нужно последовательно похилить себя в течении некоторого времени и в результате количество отхила * % искусности = сумма тиков "Отблеск света" должно получиться.

Ghost

2024-02-25 23:22

developer   ~0075069

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

мне кажется близзы компенсационный тик добавляют ввиде добавления дюрейшна, получаются ровные тайминги и значения амплитуд
а как сейчас - мгновенно его выдавать, это значит тик все равно больше будет и тайминги амплитуд неровные
и в прошлом, добавлять длительность нельзя, так как общее значение доты делится на константное количество тиков постоянно, а при добавлении длительности общее значение полностью суммируется, не учитывая потерю за время (недотиканные тики)

Shalfey

2024-02-26 06:04

reporter   ~0075070

Посмотри в симкрафте, пожалуйста? может тут имеется решение. Я код не понимаю, но там поиском прошелся в тексте (игнайту, кровавой бане и травме), как ты говоришь сделано через дюрейшен (игнайт), какие-то структуры они используют с перерасчетом банка, чет там сравнивают, возвращают, берут из логов...
https://github.com/simulationcraft/simc/blob/release-735-01/engine/class_modules/sc_mage.cpp
https://github.com/simulationcraft/simc/blob/release-735-01/engine/class_modules/sc_warrior.cpp
https://github.com/simulationcraft/simc/blob/release-735-01/engine/action/sc_dot.cpp

Shalfey

2024-02-26 07:56

reporter   ~0075072

Тут в 7.0.3 расписана у них какая-то структура по "Отблеску света" https://github.com/simulationcraft/simc/blob/5d6f91d6e6f57d34b08eee2e2012f5ae217a2a3c/engine/class_modules/sc_priest.cpp#L4268
Но возможно это кусок из дренора перекачевал, т.к. в версиях выше 7.0.3 я этого блока не нашел

Shalfey

2024-02-26 15:39

reporter   ~0075078

У магов механику игнайта тоже придется перерабатывать. Верно считаются тики только от первого удара, вызывающего игнайт. А при дальнейших кастах по логу появляются лишние тики и расчитывается урон неверно.

Neenya

2024-03-07 11:47

reporter   ~0075161

Игнайт фаер мага:

+ урона добавили
- тик игнайта, вычитаем
= суммирование

0,1479 - мастери

+ 100879 урона = 14,920.0041 урона в суммировании
- 1657 (14,920.0041 / 9)
= 14,920.0041 - 1657 = 13,263.0041
+ 174316 = 25,781.3364
= (13,263.0041 + 25,781.3364) = 39,044.3405
+ 217900 = 32,227.41
= (39,044.3405 + 32,227.41) = 71,271.7505
- 7125 (71,271.7505 / 10)
= 71,271.7505 - 7125 = 64,146.7505
- 7125 (71,271.7505 / 10)
= 57,021.7505
+ 187228 = 27,691.0212
= 57,021.7505 + 27,691.0212 = 84,712.7717
- 8468 (8,471.27717 / 10)

image.png (238,964 bytes)
image.png (238,964 bytes)

Neenya

2024-03-07 11:48

reporter   ~0075162

Игнайт работает вроде правильно.
У него нет "мгновенного" тика.
При 1 прокасте, у нас 9 тиков за 9 сек.
При 2+ касте, у нас 10 тиков за 9-10 сек.

Урон расчитывается правильно в суммировании.

У холи приста должно быть:
При 1 прокасте 2 тика за 6 сек
При 2+ касте, 3 тика за 6-9 сек.

Но у него сейчас
При 2+ касте, #+2 тиков за 6 сек.
# - кол-во переобновлений. И суммирование мгновенных тиков не работает.

Neenya

2024-03-07 11:55

reporter   ~0075163

У игнайта при переналожении нет мгновенного игнайта.
У Отблеска при преналожении игновенный тик.

Значит и механика у них не общая.

image-2.png (70,474 bytes)
image-2.png (70,474 bytes)
image_2.png (134,255 bytes)
image_2.png (134,255 bytes)

Shalfey

2024-03-07 13:20

reporter  

тест.png (1,195,991 bytes)

Shalfey

2024-03-07 13:21

reporter   ~0075164

Да где же правильно, урон от игнайта должен был составить 6% от общего урона заклинаний, которые его активировали. Но при тесте я вижу, что этот урон стремится в большую сторону, нежели по описанию способности. Это значит, что в суммировании где-то закралась ошибка...
 Или я не прав?

Shalfey

2024-03-07 13:25

reporter   ~0075165

Механика у них поидее одинаковая должна быть получается, только одна дамажит, а у приста хилит. Что в отблеске суммирование происходит ( и + 1 тик, если кастов больше 2+), что в игнайте суммирование (и + 1 тик, если кастов больше 2+)

Shalfey

2024-03-07 13:26

reporter   ~0075166

Обе зависят от показателя искусности и выдать должны % от основного дамага / хила равный этому показателю искуси

Ghost

2024-03-07 17:44

developer   ~0075171

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

Shalfey

2024-03-07 18:04

reporter   ~0075172

Не совсем понял. Это значит будет правильно считать размер тика и итоговую сумму исцеления или
это возврат к варианту до введения последних изменений?

Shalfey

2024-03-07 18:07

reporter   ~0075173

Надо чтобы было так: хилишь себя например 5 раз быстрым исцелением и в логах должно получиться при 10% искусности в сумме 90% от быстрого исцеления и 10% от отблеска света...

Neenya

2024-03-12 10:52

reporter   ~0075209

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

компенсационный тик что ты добавил не учитывается в суммировании хила. сверху пример как и почему.
да и мгновенный тик, когда сам хил 1 раз в 3 сек, по итогу прокает хоть 10+ раз, с каждым переналожением за 6 сек. Всё зависит от того сколько переналожений произошло.

Убрав компенсационный тик, ты сделаешь как и было:
Мастери 2 тика за 6 сек, без 3го тика, потому что внутренний таймер не успевает тикнуть 3й раз.
Ты кидаешь флешку, пошло мастери 6 сек и таймер.
Ты кидаешь флешку на 1 сек таймера, мастери снова на 6 сек, но внутренний таймер на 1 сек уже.
В итоге мастери тикает на 4 сек и на 1 сек самой ауры. А на 3й тик не хватает длительности в ещё 2 сек.

У игнайта тик в 1 сек и длительность 9 сек. за весь бой фаер маг никогда не доведёт ауру игнайта до конца 9 секунд. Там постоянные переобновления, он же дамажит весь бой.
А у приста на 20+ тел в рейде, всего 4-5 целей на хил. Его аура постоянно заканчивается.

Ghost

2024-03-16 10:17

developer   ~0075264

ну это понятно, что как и было будет, суть в чем, у игнайта этих потерь нету, потому что скорость апдейта тика секундная, а у EoL аш 3 секунды, видать когда прибавка идет с оставшимся амаунтом, если тика не было на его тайминге амплитуды, то все равно его значение уже не засчитывается

Issue History

Date Modified Username Field Change
2024-02-25 19:24 Neenya New Issue
2024-02-25 19:24 Neenya Status new => assigned
2024-02-25 19:24 Neenya Assigned To => godxx
2024-02-25 19:24 Neenya File Added: image 1.png
2024-02-25 19:24 Neenya File Added: image 2.png
2024-02-25 19:28 Neenya File Added: Echo of Light.txt
2024-02-25 19:28 Neenya Note Added: 0075066
2024-02-25 20:13 Shalfey Note Added: 0075067
2024-02-25 23:22 Ghost Note Added: 0075069
2024-02-26 06:04 Shalfey Note Added: 0075070
2024-02-26 07:56 Shalfey Note Added: 0075072
2024-02-26 15:39 Shalfey Note Added: 0075078
2024-02-28 09:56 godxx Status assigned => acknowledged
2024-03-07 11:47 Neenya File Added: image.png
2024-03-07 11:47 Neenya Note Added: 0075161
2024-03-07 11:48 Neenya Note Added: 0075162
2024-03-07 11:55 Neenya File Added: image-2.png
2024-03-07 11:55 Neenya File Added: image_2.png
2024-03-07 11:55 Neenya Note Added: 0075163
2024-03-07 13:21 Shalfey File Added: тест.png
2024-03-07 13:21 Shalfey Note Added: 0075164
2024-03-07 13:25 Shalfey Note Added: 0075165
2024-03-07 13:26 Shalfey Note Added: 0075166
2024-03-07 17:44 Ghost Note Added: 0075171
2024-03-07 18:04 Shalfey Note Added: 0075172
2024-03-07 18:07 Shalfey Note Added: 0075173
2024-03-12 07:38 godxx Assigned To godxx => Ghost
2024-03-12 10:52 Neenya Note Added: 0075209
2024-03-16 10:17 Ghost Note Added: 0075264