This is a read only copy without any forum functionality of the old Modcraft forum.
If there is anything that you would like to have removed, message me on Discord via Kaev#5208.
Big thanks to Alastor for making this copy!

Menu

Author Topic: Custom Cinematics  (Read 8011 times)

Eatos

  • Registred Member
  • LUA Script Tinker
  • *****
  • Posts: 46
    • View Profile
Custom Cinematics
« on: September 12, 2011, 03:29:49 am »
Ok so few days ago i have made this to work and available and now i will share with you.The complete process is easy and it shouldn't take you too much time, well it will take you if you have slow pc like mine :( for rendering videos.

Ok so lets start.The things we will need to edit to make this custom cinematics to work are following dbc files and yes core :
 FileData.dbc ,Movie.dbc, MovieFileData.dbc MovieVariations.dbc and CharacterHandler.cpp (on some cores ) + Extended Script or just change packet

Now i keep using Taliis for this kind of job so i would suggestion you too to use it.Open all dbc into it and have targeted FileData.dbc
As you can see there are 3 columns
0: Id -> which point to third column in MovieVariation.dbc
1: Name of the avi
2: Expansion flags if we can say like that
Now edit it and insert your own .avi informations
Like me
id for 1 higher
name as you can see it is Preview.avi
and in third column leave it as 14.


Now open Movie.dbc
first column is id of your movie, pick any number i have 20 and 21
second column is full path to your movie *Notice you can store it anywhere as long you include it into patch*
third column volume of the movie  i guess? for each record is 100 so i have left that at 100



Now open MovieVariation.dbc
As you can see there are 3 columns but what do they mean? o.O
first is random number pic any number that you want
second column is ID-(First Column of Movie.dbc)
and last says if movieid for moviefiledata-> which points to resolutions and location of the movie.Put here 1 higher number or two.



Now last Open MovieFileData.dbc
 Here we have 2 columns
First Represent ID ->(MovieVariation.dbc column 3)
second resolution of the movie it self 800 or 1024 so if your video is rendered in 800x600 then put it 800 if it is 1024x720 then put 1024.



Now we have finished editing of dbc files, but how we are going to see that movie in game? For that we need first to remove Cinematic Sequence check in core.For this most cores have this implemented in CharaterHandler.cpp
so go there and search for something like this
if(plr->m_FirstLogin or  search for SMSG_TRIGGER_CINEMATIC

For TrinityCore replace this in CharacterHandler.cpp
Code: [Select]
   //Show cinematic at the first time that player login
    if (!pCurrChar->getCinematic())
    {
        pCurrChar->setCinematic(1);

        if (ChrClassesEntry const* cEntry = sChrClassesStore.LookupEntry(pCurrChar->getClass()))
        {
            if (cEntry->CinematicSequence)
                pCurrChar->SendCinematicStart(cEntry->CinematicSequence);
            else if (ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(pCurrChar->getRace()))
                pCurrChar->SendCinematicStart(rEntry->CinematicSequence);

            // send new char string if not empty
            if (!sWorld.GetNewCharString().empty())
                chH.PSendSysMessage(sWorld.GetNewCharString().c_str());
        }
    }

with this
Code: [Select]
if (!pCurrChar->getCinematic())
            pCurrChar->setCinematic(1);

Then search for
Code: [Select]
 if (pCurrChar->HasAtLoginFlag(AT_LOGIN_FIRST))
        pCurrChar->RemoveAtLoginFlag(AT_LOGIN_FIRST);
and replace it with this

Code: [Select]
if (pCurrChar->HasAtLoginFlag(AT_LOGIN_FIRST))
    {
        pCurrChar->SendMovieStart(put here id of your movie or any other movie in wow :D);
        pCurrChar->RemoveAtLoginFlag(AT_LOGIN_FIRST);
    }

And Also for Trinity and MaNGOS you will need to remove cinematic.cpp from project and from scriptloader

Now for Arcemu and ascent based emulators you will only need to do one thing
go to CharacterHandler.cpp and search for
Code: [Select]
if(plr->m_FirstLogin)
{
uint32 introid = plr->info->introid;

OutPacket(SMSG_TRIGGER_CINEMATIC, 4, &introid);

and replace it with this
Code: [Select]
if(plr->m_FirstLogin)
{
/*uint32 introid = plr->info->introid;

OutPacket(SMSG_TRIGGER_CINEMATIC, 4, &introid);*/

Now we will create a one easy script just to send a SMSG_TRIGGER_MOVIE packet and using hook it will trigger it on character creation :) Dont forget also to put all cinematic sequences in db as 1
so here is a little command for that too

Code: [Select]
Update playercreateinfo set introid =1;
Now for Script you can use this
Code: [Select]
#include "StdAfx.h"
#include "Setup.h"

void OnEnterWorld(Player* pPlayer) //when player enters zone
{
    uint32 movieid = 20;
pPlayer->GetSession()->OutPacket(SMSG_TRIGGER_MOVIE, 4, &movieid);

}

void SetupOnEnter(ScriptMgr * mgr)
{
mgr->register_hook(SERVER_HOOK_EVENT_ON_FIRST_ENTER_WORLD, OnEnterWorld);
}

Add it and compile it inside the core :)

And after all of this you should have something like this just your video playing in game :D

[youtube:3s7i3krv]http://www.youtube.com/watch?v=93lolWafx6g[/youtube:3s7i3krv]


Some people are having troubles getting right codec for video.In that case i will add additional information how to convert it.
First download newest ffddshow and xvid codec pack.Then download total video converter.I can not post here a tpb link but i am sure you can find it ;)
Then start it and drag your video on it, or press on new task.


Then once you have selected it select a format you want to convert in.In our case avi, using XVID AVI.


Then press on advanced and go to profile ->settings
Then go to Video Option and make sure xvid is selected for codec


And after that press ok, apply all settings and press convert Now. Wait until it is finished and you are done ;)
Make sure it is in right location
Interface/Cinematics/yourvideoname.avi


Oh :D Dont worry i havent forgot about rendering and using proper codec for this video. For your video to be played in wow you will need to convert it using xvid codec.Now idk too much what program to use but i have used Total Video Converted and it worked fine as you can see.Dont forget to install lastest codec packs from ffddshow and just in case install xvid codec too :)



-Eatos-
« Last Edit: May 26, 2012, 01:33:39 pm by Admin »

Steff

  • Administrator
  • Creator of Worlds
  • *****
  • Posts: 4551
    • View Profile
Re: Custom Cinematics
« Reply #1 on: September 12, 2011, 06:05:59 am »
Please re up the video with free or other music. I can not watch it.
The most guys just turn music off so for tuts just don´t use any music is best i think.
« Last Edit: January 01, 1970, 01:00:00 am by Admin »
Please mark as solved if solved.
Don't ask if you could ask a question... JUST ask the Question.
You can send me also offline messages. I will answer if I get online.
Skype: project.modcraft
Discord: steff#6954

Morfium

  • Registred Member
  • Loreweaver
  • *****
  • Posts: 96
    • View Profile
Re: Custom Cinematics
« Reply #2 on: September 13, 2011, 08:35:50 pm »
You can watch the video here if you want to:
Hide my ass

Looks cool btw, I like your login screen. :)
« Last Edit: January 01, 1970, 01:00:00 am by Admin »