Trinitycore: [master] Cinematic Scenes Blackscreen

Created on 22 Nov 2016  路  10Comments  路  Source: TrinityCore/TrinityCore

Description: Scenes which use Cinematics / Camera cause a black screen after Scene Complete. This can only be solved by closing the client with Alt+F4.

Current behaviour: Scenes which use Cinematics / Camera cause a black screen after Scene Complete.
Probably because of some playback flags (8 or 2)

Expected behaviour: Sniffs show that for scenes with flag 2 or 8, CMSG_SCENE_PLAYBACK_COMPLETE is followed by SMSG_CANCEL_SCENE.

Steps to reproduce the problem:

  1. Set up scene_template
  2. test a Scene where playback flag 8 or 2 is used.

Branch(es): master

TC rev. hash/commit: 166709058efd6aa861fade2edf4642bbe9d9cfa0

TDB version: 703.00

Operating system: Win 10

Branch-master Comp-Core Sub-Miscellaneous Sub-ScriptingEngine

Most helpful comment

How is this cosmetic if you have to ALT+F4 out of it?

maybe it's not a black screen, it's just very very dark xD

All 10 comments

At the moment a "hack" fix is to assign every single Cinematic Scene this part of code:

    void OnSceneComplete(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate)
    {
        // Cinematic Scenes will cause Black Screen if not canceled
        OnSceneCancel(player, sceneInstanceID, sceneTemplate);
    }

@Traesh might be interesting for you

How is this cosmetic if you have to ALT+F4 out of it?

How is this cosmetic if you have to ALT+F4 out of it?

maybe it's not a black screen, it's just very very dark xD

@funjoker I don't know if this helps any but for giggles i set scene 1061's flag to 20 and 1116's to 20 and the black screen is not happening and it seems to be no issue.
I hope this helps point where to start looking for issue
here's a copy of my sql

UPDATE `scene_template` SET `Flags`= 20 WHERE `SceneId` IN (1061, 1116);

20 = 16 | 4, your "test" is pointless

Maybe blizzard make those flags "break things" at some patch and remove them from their db?

Btw. Shauren i don't quite understand what u wrote.
Playback flags is clientside thing(w/o db2 data) so it is hard to guess how they work. But scenes which have removed flags |2|8 don't have blackscreen effect.

It is strange because some of those flags was from sniffs, and scenes are handled clientside.

I suppose flag 8 or 2 mean something like "CANCEL_AT_END", and wait for SMSG_SCENE_CANCEL when scene complete

https://i.imgur.com/OpFcp.jpg

Will look at this in a few days

Few days later, I looked at it and it seem "normal" to have a black screen at the end, it's blizzlike.

It's done to give time to server to handle phase switch and other things between the moment scene end and camera back to player. Blizz send SMSG_SCENE_CANCEL when ready to remove black screen.

I feel like sending the packet for every scene with flag 2 would be a bit hacky. I prefer to let the scripter decide. It will be possible to do it from DB with https://github.com/TrinityCore/TrinityCore/pull/19194

I'm pretty sure that flag 2 causes the blackscreen.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Rushor picture Rushor  路  3Comments

chilito picture chilito  路  3Comments

Rochet2 picture Rochet2  路  3Comments

DDuarte picture DDuarte  路  3Comments

Jildor picture Jildor  路  3Comments