Jump to content
Jezuro

New conversation system how-to

Recommended Posts

here is a picture of my FSM so that maybe someone here might explain to me why this doesnt work:

Look here. That's how a conversation FSM should look like - the FSM is executed every time an AI unit receives a sentence, so you need to check for _sentenceID in separate conditions right at the start.

Share this post


Link to post
Share on other sites

I have a problem with the FSM conversation flow.

My civilian guy which has a conversation added via FSM wount talk to me if hostiles are in the area. he lays down and wount talk as long as a threat is there. is there a workaround for this? doesnt help if i set his unit pos up or disable his movement...

the conversation works good if there are no enemys?!

EAST setFriend [CIVILIAN, 1];

CIVILIAN setFriend [EAST, 1];

works for me in the init.sqf.

but strange that the FSM is just ignored if theirs a threat.

Edited by Coffeecat

Share this post


Link to post
Share on other sites
Look here. That's how a conversation FSM should look like - the FSM is executed every time an AI unit receives a sentence, so you need to check for _sentenceID in separate conditions right at the start.

so does this mean your restricted to only having choices appear once inside a conversation? or do you need to have multiple fsms for multiple choice options in a topic. I was hoping one fsm could check and branch off for all choices and future choices? ill change it to match that then.

Share this post


Link to post
Share on other sites
so does this mean your restricted to only having choices appear once inside a conversation? or do you need to have multiple fsms for multiple choice options in a topic. I was hoping one fsm could check and branch off for all choices and future choices? ill change it to match that then.

You can open as many conversation menus as you want. This is done in player's event code (most commonly an sqf file). In the FSM, you're just checking for the interrupted event. If more of those can occur in one topic, you can check which sentence was said last via kbWasSaid.

My civilian guy which has a conversation added via FSM wount talk to me if hostiles are in the area.

The conversation should start after there is no threat for the civilian.

Share this post


Link to post
Share on other sites

The conversation should start after there is no threat for the civilian.

yep its starting after the threat is gone. my problem was that i use the ACM module in the mission and if a enemy helo flies over the area they also get panic. means if there is a constant thread in their sight, which patrouls around the area they allways refuse to talk to you. this is a bit of a problem since your not allways able to neutralize the thread. example would be a stealth mission. would be nice if that could be changed.i just set the civilians friendly for OPFOR as workaround so long, ty.

Share this post


Link to post
Share on other sites

Hey guys just started using FSM a few days ago, managed to get everyone talking to eachother in SP but as I am converting my mission to coop i have run into a few problems. I put some code in my FSMs to update objectives once I have finished my conversation:

_this kbTell [_from, _topic, "rescue4"];
task2done = true;

But this is only being called on the server, even if one of the clients starts the conversation.

I considered putting kbWasSaid in the condition line of the triggers but I made it so that everyone in my squad can talk to the person and I wouldn't know who initiated the conversation.

init.sqf

//note have done this next line for all members of talon (6 members)
talon1 kbAddTopic ["briefing", "kb\briefing.bikb", "", {call compile preprocessFileLineNumbers "kb\briefing_talon.sqf"}]; 

roman kbAddTopic ["briefing", "kb\briefing.bikb", "kb\briefing_roman.fsm"];

p1 kbAddTopic ["briefing", "kb\briefing.bikb", "kb\briefing_pilot.fsm"];

//allows anyone in my squad to talk to the pilots
p1 addAction ["Talk to Pilots", "talk_pilots.sqf"];

Share this post


Link to post
Share on other sites

nevermind, got it working I just had to update the clients with:

publicVariable "task1done";

Share this post


Link to post
Share on other sites

Original post updated:

* fixed audio path example in bikb

* example mission finally hosten on a reliable server

thx Wolle for both :)

Share this post


Link to post
Share on other sites

Jezuro, could you confirm that Conversation System + AI + Dedicated server not work at all?

Try running your example mission on a dedicated server, only player says the lines, AI doesn't.

_neo_

Share this post


Link to post
Share on other sites

hmm i cant download the mission.

"the file you are requesting was deleted"

Share this post


Link to post
Share on other sites

ok thx. i was trying the one that had the big headline "example mission"

Example mission

And finally, here it is. The example mission contains everything that has been explained here and shows you mainly how to manage the files. It contains voice samples from the Harvest Red campaign, please don't be surprised that the conversation is a bit out of context

Get it here: http://www.easy-share.com/1914192818...ample.utes.zip

Share this post


Link to post
Share on other sites

Thanks so much.

Jezuro, could you confirm that Conversation System + AI + Dedicated server not work at all?

Try running your example mission on a dedicated server, only player says the lines, AI doesn't.

_neo_

Haven't had the chance to test that, kbTell always works only locally though.

Edited by Jezuro

Share this post


Link to post
Share on other sites

What do I have to do to be able to have the exact same conversation with the same unit multiple times?

Share this post


Link to post
Share on other sites

Is it common practice to use the kbTell for people talking in game, talking in cinematics, etc? Why would someone not just use say or groupRadio for speech?

Share this post


Link to post
Share on other sites

It's common use for official missions. kbTell has the useful feature of being able to switch from spoken words (i.e. say) to radio (i.e. sideradio, groupradio etc) depending on the conversing units' distance from each other.

Share this post


Link to post
Share on other sites

I've been doing conversations the old way after slowly learning on my own. I had read through this earlier and was completely confused, now I'm reading through this and understand it much more clearly. Still, since I don't currently have voice actors and the dialogue is all relegated to chat channels, is it worth it to switch? I will experiment with this sometime soon anyway just to see what it's about...

Share this post


Link to post
Share on other sites

Is there a guide for all of this? because all this information is too few for a super noob like me, as cannot figure if some code line go into the init or are executed in a trigger, so i downloaded the mission sample but if Im not wrong its not like in this threat, I got lost trying to find where is the text showed in the conversation of the mission sample, is it called from BIS campaing files? I assume there are lot of ways to make this work, so probably this is why is difficult to understand as I see explained it in 1 way but done in other...

Share this post


Link to post
Share on other sites

Hi mates im working on it and it´s great for sp missions but i cant get it working on dedicate servers. im looking for some info about BIS_fnc_kbTell but cant find anything, any one knows how to use this BIS_fnc_kbTell?

Share this post


Link to post
Share on other sites

can you reupload the example mission please?

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

×