Aller au contenu

Photo

Cutscene to conversation to cutscene


  • Veuillez vous connecter pour répondre
3 réponses à ce sujet

#1
Caldarin V

Caldarin V
  • Members
  • 269 messages
In my mod, I have a part where the player is
tied up. People go on at length about their scentencing, then the player
is given a chance to respond. I have the
exposition of the scentencing set up as a cut scene. After the player
responds, I'd like another cutscene to start (involving them getting
rescued; not that it matters much)

the closest thing to a fix I've found is HERE
http://social.biowar...1/index/2740795

but that hasn't worked for me so far
what do I need to do to make the transition?

#2
Proleric

Proleric
  • Members
  • 2 350 messages
One technique is to set a plot flag at the end of cutscene 1 which is scripted to start the conversation. At the end of the conversation, set a plot flag which is scripted to start cutscene 2.

Here's a working example:
[quote]
//::///////////////////////////////////////////////
//:: Plot Events Template
//:: Copyright (c) 2003 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Plot events
*/
//:://////////////////////////////////////////////
//:: Created By: Yaron
//:: Created On: July 21st, 2006
//:://////////////////////////////////////////////
//
// CROWN OF CREATION - PLOT SCRIPT - HAUNTED
//
// Proleric 10-Aug-2010
//
// Triggers the ghost cutscenes and conversations
#include "log_h"
#include "utility_h"
#include "wrappers_h"
#include "plot_h"
#include "plt_cocpt_haunted"
int StartingConditional()
{
    event  eParms             = GetCurrentEvent();
    int    nType              = GetEventType(eParms);       // GET or SET
    string strPlot            = GetEventString(eParms, 0);  // Plot GUID
    int    nFlag              = GetEventInteger(eParms, 1); // Plot flag
    object oParty             = GetEventCreator(eParms);    // Plot table owner
    object oConversationOwner = GetEventObject(eParms, 0);  // Conversation owner (if any)
    int    nPlotType          = GetEventInteger(eParms, 5); // Plot type
    int    bIsTutorial        = GetM2DAInt(TABLE_PLOT_TYPES, "IsTutorial", nPlotType);
    int    bIsCodex           = GetM2DAInt(TABLE_PLOT_TYPES, "IsCodex", nPlotType);
    int    nResult            = FALSE;                      // return value for DEFINED GET
//    object oPC                = GetPartyLeader();
    object oAlfred            = GetObjectByTag("coc270cr_alfred");
    plot_GlobalPlotHandler(eParms); // any global plot operations, including debug info
    if (nType == EVENT_TYPE_SET_PLOT) // actions -> normal flags only
    {
        int nValue    = GetEventInteger(eParms, 2); // 0=Clear 1=Set
        int nOldValue = GetEventInteger(eParms, 3); // Current flag value
        switch(nFlag)
        {
          case COC_HAUNTED_GHOST2:   // Set in Alfred conversation
            {
              CS_LoadCutscene(R"coc270cs_ricardo.cut", PLT_COCPT_HAUNTED,
                              COC_HAUNTED_EXIT2);
              PlayCutscene();
              break;
            }
          case COC_HAUNTED_EXIT2:
            {
              BeginConversation(GetHero(), oAlfred, R"coc270cs_murder.dlg");
              break;
            }
          case COC_HAUNTED_GHOST3:   // Set in murder conversation
            {
              CS_LoadCutscene(R"coc270cs_murder.cut", PLT_COCPT_HAUNTED,
                              COC_HAUNTED_EXIT3);
              PlayCutscene();
              break;
            }
        }
     }
     else // EVENT_TYPE_GET_PLOT -> defined conditions only
     {
        switch(nFlag)
        {
/*
          case COC_HAUNTED_XXX:
            {
              nResult = TRUE;
              break;
            }
*/
        }
     }
    plot_OutputDefinedFlag(eParms, nResult);
    return nResult;
}
[/quote]

P.S. Of course, this won't compile unless you make the custom plot with these flags.

Modifié par Proleric1, 19 janvier 2011 - 08:12 .


#3
Caldarin V

Caldarin V
  • Members
  • 269 messages
question on that- how does the start dialogue work? Do I need to define the owner of the dialogue, or can I simply do

BeginConversation( R"(dialogue file goes here)");



??

#4
Proleric

Proleric
  • Members
  • 2 350 messages
You must specify the player and the conversation owner. You can omit the dialogue resource, in which case the owner's default conversation will play.