Having the PC remain seated while in a conversation.
#1
Posté 25 novembre 2011 - 11:01
Any ideas? I'd really appreciate it.
#2
Posté 25 novembre 2011 - 11:20
The trick is to use BeginConversation instead of ActionStartConversation.
Keep in mind that BeginConversation returns an int, so you'll need to capture the int if you wrap BeginConversaton in ActionDoCommand
#3
Posté 25 novembre 2011 - 11:26
The first question how are you atarting the conversation?
ActionStartConversation is garrenteed to stop the PC from sitting. You have to cancile the action of sitting to have the conversation action fire.
you could try BeginConversation() and see if it would allow the PC to remain sitting.
if that fails the only thing I could think of trying would be to statr the conversation, pause it and have the players retake there seats, then resume the conversation.
#4
Posté 25 novembre 2011 - 11:48
void main()
{
object oSelf = OBJECT_SELF;
object oPC = GetLastUsedBy();
AssignCommand(oPC, ActionSit(oSelf));
DelayCommand(1.5f,ActionStartConversation(oPC, "tmp_introduction"));
}
That's it. Basically they sit, waits a bit for the animation to finish and starts conversation. I guess any 'Action' is gonna stop them from sitting. So ActionStartConversation really isn't a clean option. I'm currently playing with BeginConversation to see what might work.
Modifié par grostilzirelman, 25 novembre 2011 - 11:49 .
#5
Posté 25 novembre 2011 - 11:51
As long as the script is running on the PC it should work. ExecuteScript the PC and put all the commands for the PC in that script including BeginConversation.
#6
Posté 26 novembre 2011 - 12:01
void main()
{
object oPC = GetPCSpeaker();object oChairPC = GetObjectByTag("IntroChair"); //being the tag of the chair the pc sits in
ActionPauseConversation(); AssignCommand(oPC, ActionWait(2.0)); ActionResumeConversation(); AssignCommand(oPC, ActionSit(oChairPC));}
Thanks alot for everyones help, and that other post made all the difference.
#7
Posté 26 novembre 2011 - 12:01
grostilzirelman wrote...
Got it. Basically this is what I did. First on the chair make it start a conversation upon used. Then in the first line of the conversation I used this.
void main()
{
object oPC = GetPCSpeaker();
object oChairPC = GetObjectByTag("IntroChair"); //being the tag of the chair the pc sits in
ActionPauseConversation();
AssignCommand(oPC, ActionWait(2.0));
ActionResumeConversation();
AssignCommand(oPC, ActionSit(oChairPC));}
Thanks alot for everyones help, and that other post made all the difference.





Retour en haut






