View Issue Details

IDProjectCategoryView StatusLast Update
0006969Legion CoreClasses - Priest - Жрецpublic2023-11-07 14:59
ReporterrJLyTTocTbAssigned ToGhost 
PrioritynormalSeverityminorReproducibilityalways
Status confirmedResolutionreopened 
Summary0006969: Клиппинг майндфлай
Descriptionhttp://egammi.com/image/SnOy
ru.wowhead.com/spell=216513/
У нас не реализованно
Так же это действует и у лока на ru.wowhead.com/spell=198590
Steps To ReproduceВстаём у маникена, кастуем ru.wowhead.com/spell=216513/ , не прерывая каст, жмем МФ снова, длительность не изменится, от слова совсем
Additional InformationПруф скину в коммы, если надо .
Инфы по "клипанью" полно в Гугле


От тестера:

На данный момент клип механика не работает на эти ченнел спеллы,
их длительность никак не меняется

id: 198590
id: 234153
id: 15407

http://egammi.com/image/SnOy
https://www.youtube.com/watch?v=gF7X3L57ttk

Relationships

related to 0027631 closedgodxx дубль дубля с клипом ченелинг кастов 
related to 0015110 closedGhost сломался 

Activities

rJLyTTocTb

2019-12-07 11:11

reporter   ~0018360

https://youtu.be/n1titGazQYk?t=124
первый 1.66
второй 2.20

deadinside

2019-12-07 13:51

reporter   ~0018376

Направляю разработчику

rJLyTTocTb

2020-01-12 19:38

reporter   ~0020963

Когда шп и аффли научатся клипать на ювове ?)
Примерно хотя бы

wrptn3

2023-10-04 18:30

reporter   ~0072746

This was implemented in Cataclysm and is not specific to priest. Internally, this is called "positive pushback", and it happens by being an effective positive pushback (as pushbacks are usually negative). Here's how you **must** implement it, if you don't and cheat by making the new channel longer, addons will not calculate the ticks properly leading to ticks of damage happening out of sync with the addon's channel bar.

This is the code from Gnosis, a castbar addon:

function Gnosis:UpdateCastbar(cb, startTime, endTime, spell)
    local barname, cfg = cb.name, cb.conf;

    local fSPB = endTime - cb.endTime; -- spell pushback

    -- "positive" channel pushback (4.1)
    if(fSPB > 0 and cb.channel) then
        if(cfg.bExtChannels) then
            cb.duration = cb.duration + fSPB;
        end
        cb.endTime = endTime;

        if(cb.totalticks and cb.totalticks > 0) then
            for i = 1, cb.totalticks do
                cb.ticks[i] = cb.ticks[i] + fSPB;
            end

            if(cfg.bExtChannels) then
                if(cb.endTime - cb.ticks[cb.totalticks] > cb.channelticktime) then
                    cb.totalticks = cb.totalticks + 1;
                    cb.ticks[cb.totalticks] = cb.ticks[cb.totalticks-1] - cb.channelticktime;
                end
                
                self:DrawTicks(cb, cfg);
            end
        end
    -- "negative" pushback
    elseif(fSPB ~= 0) then
        cb.pushback = cb.pushback + fSPB;
        cb.endTime = endTime;

        self:DrawTicks(cb, cfg);
    end
end

This is a sniff of Cataclysm retail-era Mind Flay

ClientToServer: CMSG_CAST_SPELL (0x4C07) Length: 22 ConnIdx: 0 Time: --/--/----18:26:59.000 Number: 13
Cast Count: 11
Spell ID: 15407 (15407)
Glyph Index: 0
Cast Flags: 0 (None)
Target Flags: 2 (Unit)
Target GUID: TARGET -- TARGET -- TARGET -- TARGET

ServerToClient: SMSG_SPELL_START (0x6415) Length: 41 ConnIdx: 0 Time: --/--/----18:27:00.000 Number: 14
Caster GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Caster Unit GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Cast Count: 11
Spell ID: 15407 (15407)
Cast Flags: 2050 (HasTrajectory, PredictedPower)
Time: 0
Time2: 0
Target Flags: 2 (Unit)
Target GUID: TARGET -- TARGET -- TARGET -- TARGET
Rune Cooldown: 106665

ServerToClient: SMSG_SPELL_GO (0x6E16) Length: 51 ConnIdx: 0 Time: --/--/----18:27:00.000 Number: 16
Caster GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Caster Unit GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Cast Count: 11
Spell ID: 15407 (15407)
Cast Flags: 2304 (Unknown7, PredictedPower)
Time: 0
Time2: 17812347
Hit Count: 1
[0] Hit GUID: TARGET -- TARGET -- TARGET -- TARGET
Miss Count: 0
Target Flags: 2 (Unit)
Target GUID: TARGET -- TARGET -- TARGET -- TARGET
Rune Cooldown: 105018

ServerToClient: MSG_CHANNEL_START (0x0A15) Length: 14 ConnIdx: 0 Time: --/--/----18:27:00.000 Number: 17
GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Spell ID: 15407 (15407)
Duration: 2352
Has castflag Immunity: false
Has castflag HealPrediction: false

ClientToServer: CMSG_CHAT_MESSAGE_SAY (0x1154) Length: 36 ConnIdx: 0 Time: --/--/----18:27:00.000 Number: 32
Language: 1 (Orcish)
Message: Mind flay total duration:2.352

ServerToClient: SMSG_CHAT (0x2026) Length: 61 ConnIdx: 0 Time: --/--/----18:27:00.000 Number: 34
Type: 1 (Say)
Language: 1 (Orcish)
GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Constant time: 0
Sender GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Text Length: 31
Text: Mind flay total duration:2.352
Chat Tag: 0 (None)

ServerToClient: SMSG_SPELL_PERIODIC_AURA_LOG (0x0416) Length: 45 ConnIdx: 0 Time: --/--/----18:27:00.000 Number: 38
Target GUID: TARGET -- TARGET -- TARGET -- TARGET
Caster GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Spell ID: 15407 (15407)
Count: 1
Aura Type: 3 (PeriodicDamage)
Damage: 2634
Over damage: 2633
Spell Proto: 32
Absorb: 0
Resist: 0
Critical: 0

ClientToServer: CMSG_CAST_SPELL (0x4C07) Length: 22 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 55
Cast Count: 12
Spell ID: 15407 (15407)
Glyph Index: 0
Cast Flags: 0 (None)
Target Flags: 2 (Unit)
Target GUID: TARGET -- TARGET -- TARGET -- TARGET

ServerToClient: MSG_CHANNEL_UPDATE (0x2417) Length: 8 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 67
GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Timestamp: 0

ServerToClient: SMSG_SPELL_START (0x6415) Length: 41 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 68
Caster GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Caster Unit GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Cast Count: 12
Spell ID: 15407 (15407)
Cast Flags: 2050 (HasTrajectory, PredictedPower)
Time: 0
Time2: 0
Target Flags: 2 (Unit)
Target GUID: TARGET -- TARGET -- TARGET -- TARGET
Rune Cooldown: 105360

ServerToClient: SMSG_SPELL_GO (0x6E16) Length: 51 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 70
Caster GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Caster Unit GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Cast Count: 12
Spell ID: 15407 (15407)
Cast Flags: 2304 (Unknown7, PredictedPower)
Time: 0
Time2: 17814018
Hit Count: 1
[0] Hit GUID: TARGET -- TARGET -- TARGET -- TARGET
Miss Count: 0
Target Flags: 2 (Unit)
Target GUID: TARGET -- TARGET -- TARGET -- TARGET
Rune Cooldown: 103713

ServerToClient: MSG_CHANNEL_START (0x0A15) Length: 14 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 71
GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Spell ID: 15407 (15407)
Duration: 2352
Has castflag Immunity: false
Has castflag HealPrediction: false

ServerToClient: SMSG_AURA_UPDATE (0x4707) Length: 29 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 72
GUID: Full: TARGET -- TARGET -- TARGET -- TARGET
[0] Slot: 2
[0] Spell ID: 15407 (15407)
[0] Flags: 419 (EffectIndex0, EffectIndex1, Duration, Negative, Unk100)
[0] Level: 85
[0] Charges: 0
[0] Caster GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
[0] Max Duration: 3041
[0] Duration: 3041

ServerToClient: MSG_CHANNEL_UPDATE (0x2417) Length: 8 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 73
GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Timestamp: 3041

ClientToServer: CMSG_CHAT_MESSAGE_SAY (0x1154) Length: 36 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 84
Language: 1 (Orcish)
Message: Mind flay total duration:3.041

ServerToClient: SMSG_CHAT (0x2026) Length: 61 ConnIdx: 0 Time: --/--/----18:27:01.000 Number: 85
Type: 1 (Say)
Language: 1 (Orcish)
GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Constant time: 0
Sender GUID: PLAYER -- PLAYER -- PLAYER -- PLAYER
Text Length: 31
Text: Mind flay total duration:3.041
Chat Tag: 0 (None)

Clipping was performed ingame at 0.8seconds remaining, with 0.1s of variance due to latency. The chat messages you see in the sniff are weakaura triggers that log the following Lua code: `select(6, UnitDebuff("target", 1))`

To implement this, you must:
- Send CHANNEL_UPDATE with duration 0 on recast (only when clipping)
- Send CHANNEL_UPDATE with extended duration after SPELL_GO
- **Never** remove the aura, just update its duration

And finally this is my implementation from a few years ago
https://github.com/The-Cataclysm-Preservation-Project/TrinityCore/pull/117

wrptn3

2023-10-04 18:34

reporter   ~0072747

Bad link, my link should have been https://github.com/The-Cataclysm-Preservation-Project/TrinityCore/pull/117/files#diff-3bc4fed9fddf12c9bf4b42c47f58a3c3f1637d3732ec503801881e151c3e4bf2R2867

Most of the remainder of that merge request is useless because it implements CATACLYSM DOT HASTE SCALING, which is NOT A THING IN LEGION. See issue 0027577

wrptn3

2023-10-04 18:38

reporter   ~0072748

s/27577/27571

kikotd

2023-11-07 12:05

reporter   ~0073281

апдейт?

rJLyTTocTb

2023-11-07 14:59

reporter   ~0073285

можно, наверное, просто забить на клип, 4 года уж скоро отмечать))0

Issue History

Date Modified Username Field Change
2019-12-06 22:22 rJLyTTocTb New Issue
2019-12-06 22:22 rJLyTTocTb Status new => assigned
2019-12-06 22:22 rJLyTTocTb Assigned To => deadinside
2019-12-07 00:21 deadinside Status assigned => acknowledged
2019-12-07 11:11 rJLyTTocTb Note Added: 0018360
2019-12-07 13:51 deadinside Note Added: 0018376
2019-12-07 13:52 deadinside Assigned To deadinside => Ghost
2019-12-07 13:52 deadinside Status acknowledged => confirmed
2020-01-12 19:38 rJLyTTocTb Note Added: 0020963
2020-01-14 01:14 Sun of a Bit Assigned To Ghost => Sun of a Bit
2020-01-14 01:14 Sun of a Bit Status confirmed => resolved
2023-09-14 02:26 godxx Relationship added related to 0027631
2023-09-14 02:41 godxx Assigned To Sun of a Bit => Ghost
2023-09-14 02:41 godxx Status resolved => confirmed
2023-09-14 02:41 godxx Resolution open => reopened
2023-09-14 02:41 godxx Additional Information Updated View Revisions
2023-09-16 09:57 godxx Relationship added related to 0015110
2023-10-04 18:30 wrptn3 Note Added: 0072746
2023-10-04 18:34 wrptn3 Note Added: 0072747
2023-10-04 18:38 wrptn3 Note Added: 0072748
2023-11-07 12:05 kikotd Note Added: 0073281
2023-11-07 14:59 rJLyTTocTb Note Added: 0073285