Jump to content

Recommended Posts

So I'm trying to test out the kbtell command to use dialogue in missions, but I've hit a wall. Everything appears to be working, I'm not getting any errors, but the first subtitles play,  the sound doesn't, and nothing else happens.

 

bikb file

Spoiler

class Sentences
{
    class T1
    {
    text = "Hey Kerry, if we can't take the airfield now, we're done here, right?";
        speech[] = {"\sound\teller1.ogg"};
    actor = "james";
    variant = "";
    variantText = "";
    class Arguments {};
    };

  class R1
  {
    text = "I dunno, could be. Second time's the charm, right?";
    speech[] = {"\sound\receiver1.ogg"};
    actor = "player";
    variant = "";
    variantText = "";
    class Arguments {};
  };

  class R2
  {
    text = "Where's our armored support though?";
    speech[] = {"\sound\receiver2.ogg"};
    actor = "player";
    variant = "";
    variantText = "";
    class Arguments {};
  };

  class T2
  {
    text = "There is none, we gotta seize the harbor near the runway first.";
    speech[] = {"\sound\teller2.ogg"};
    actor = "james";
    variant = "";
    variantText = "";
    class Arguments {};
  };

  class T3
  {
    text = "Don't worry, we've got their heavy hardware marked for the artillery. Should be a cakewalk.";
    speech[] = {"\sound\teller3.ogg"};
    actor = "james";
    variant = "";
    variantText = "";
    class Arguments {};
  };

  class R3
  {
    text = "Sure, a cakewalk. Ok man that's my ride, keep your head down.";
    speech[] = {"\sound\receiver31.ogg"};
    actor = "player";
    variant = "";
    variantText = "";
    class Arguments {};
  };
};

class Arguments {};
class Special {};
startWithVocal[] = {hour};
startWithConsonant[] = {europe,university};
 

 

script file

Spoiler

kerry kbAddTopic ["briefing", "texts.bikb", "", ""];
james kbAddTopic ["briefing", "texts.bikb", "", ""];

james kbTell [kerry, "briefing", "T1","SIDE"];
waitUntil {
james kbWasSaid [kerry, "br1iefing", "T1", 5]};
kerry kbTell [james, "briefing", "R1", "SIDE"];
waitUntil {
kerry kbWasSaid [james, "briefing", "R1", 5]};
kerry kbTell [james, "briefing", "R2", "SIDE"];
waitUntil {
kerry kbWasSaid [james, "briefing", "R2", 5]};
james kbTell [kerry, "briefing", "T2", "SIDE"];
waitUntil {
james kbWasSaid [kerry, "briefing", "T2", 5]};
james  kbTell [kerry, "briefing", "T3", "SIDE"];
waitUntil {
james kbWasSaid [kerry, "briefing", "T3", 5]};
kerry kbTell [james, "briefing", "R3", "SIDE"];
waitUntil {
kerry kbWasSaid [james, "briefing", "R3", 5]};
[1,1,false] spawn BIS_fnc_cinemaBorder;

 

Is there something I'm doing wrong? Thanks in advance.

Share this post


Link to post
Share on other sites
9 hours ago, opusfmspol said:

In this conversation (similar issue), the problem was that the unit didn't have a radio.

Both units in the conversation have the vanilla radio

Edit: Something else I noticed was that even though I have the .lip files with the .ogg’s the mouths aren’t moving at all

Share this post


Link to post
Share on other sites

Update: I noticed that the title of the tutorial on youtube I was using said it was outdated, so I found this one here and followed that, and I got a little farther, as now all of the subtitles show up. However, there's still no sound or lip-syncing.

 

bikb

Spoiler

class Sentences
{
    class T1
    {
    text = "Hey Kerry, if we can't take the airfield now, we're done here, right?";
        speech[] = { "\sound\teller1.ogg" };
        class Arguments {};
        actor = "james";
    };

  class R1
  {
    text = "I dunno, could be. Second time's the charm, right?";
    speech[] = { "\sound\receiver1.ogg" };
    actor = "kerry";
    class Arguments {};
  };

  class R2
  {
    text = "Where's our armored support though?";
    speech[] = { "\sound\receiver2.ogg" };
    actor = "kerry";
    class Arguments {};
  };

  class T2
  {
    text = "There is none, we gotta seize the harbor near the runway first.";
    speech[] = { "\sound\teller2.ogg" };
    actor = "james";
    class Arguments {};
  };

  class T3
  {
    text = "Don't worry, we've got their heavy hardware marked for the artillery. Should be a cakewalk.";
    speech[] = { "\sound\teller3.ogg" };
    actor = "james";
    class Arguments {};
  };

  class R3
  {
    text = "Sure, a cakewalk. Ok man that's my ride, keep your head down.";
    speech[] = { "\sound\receiver31.ogg" };
    actor = "kerry";
    class Arguments {};
  };
};

class Arguments {};
class Special {};
startWithVocal[] = {hour};
startWithConsonant[] = {europe, university};
 

 

description.ext

Spoiler

class CfgSentences
{
    class dialogue1
  {
    class chatter
    {
      file = "texts.bikb"
      #include "texts.bikb"
    };
  };
};
 

 

sqf

Spoiler

["chatter", "dialogue1", nil, "SIDE", nil, nil, 1, true] call bis_fnc_kbtell;
[1,1,false] spawn BIS_fnc_cinemaBorder;
 

 

Share this post


Link to post
Share on other sites

If using the BIS_fnc_kbTell method, recommend you check the function in Function Viewer and review your params versus how they get used by the function.  BIS_fnc_kbTell adds a lot of plumbing to what should often be a simple flush using kbTell.  Best I've ever gotten from it, it helps in understanding what the "argumentArray" argumentValue (which is typically an empty code) might be for.  I've never found anything else explaining the argumentValue.

 

And if unaware, review Conversations page to ensure the description.ext and .bikb are set up correctly, since it includes comments the given video never mentioned.  Haven't used BIS_fnc_kbTell that I can recall, so can't suggest more on that.

 

As far as kbTell used directly per the original post, I just realized that in your script file was this:

james kbTell [kerry, "briefing", "T1","SIDE"];
waitUntil {
james kbWasSaid [kerry, "br1iefing", "T1", 5]};

A typo existed, you had James speaking from topic "briefing" but then wait for him to speak from topic "br1iefing".  So the waitUntil would never be satisfied.  Explains why you got first subtitle and nothing further.

 

Also, using sleep or waitUntil with a kbTell conversation, you have to consider whether the conversation script is running in scheduled or unscheduled environment.  Needs to run in scheduled environment where suspension (i.e., sleep or waitUntil) is allowed.  BIS_fnc_kbTell page mentions it will spawn a new thread, which ensures its conversation handling doesn't run in unscheduled environment.

 

Would think neither of those would explain the sound not playing though, so might also suggest to verify the given file paths to the sounds are correct.

  • Thanks 1

Share this post


Link to post
Share on other sites
24 minutes ago, opusfmspol said:

If using the BIS_fnc_kbTell method, recommend you check the function in Function Viewer and review your params versus how they get used by the function.  BIS_fnc_kbTell adds a lot of plumbing to what should often be a simple flush using kbTell.  Best I've ever gotten from it, it helps in understanding what the "argumentArray" argumentValue (which is typically an empty code) might be for.  I've never found anything else explaining the argumentValue.

 

And if unaware, review Conversations page to ensure the description.ext and .bikb are set up correctly, since it includes comments the given video never mentioned.  Haven't used BIS_fnc_kbTell that I can recall, so can't suggest more on that.

 

As far as kbTell used directly per the original post, I just realized that in your script file was this:


james kbTell [kerry, "briefing", "T1","SIDE"];
waitUntil {
james kbWasSaid [kerry, "br1iefing", "T1", 5]};

A typo existed, you had James speaking from topic "briefing" but then wait for him to speak from topic "br1iefing".  So the waitUntil would never be satisfied.  Explains why you got first subtitle and nothing further.

 

Also, using sleep or waitUntil with a kbTell conversation, you have to consider whether the conversation script is running in scheduled or unscheduled environment.  Needs to run in scheduled environment where suspension (i.e., sleep or waitUntil) is allowed.  BIS_fnc_kbTell page mentions it will spawn a new thread, which ensures its conversation handling doesn't run in unscheduled environment.

 

Would think neither of those would explain the sound not playing though, so might also suggest to verify the given file paths to the sounds are correct.

Motherfucker. The folder in the mission folder was called sounds, and it was defined in the bikb as sound. Thank you so much, you're a godsend.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×