// On Conversation (when PC starts talking to NPC)
BeginConversation();
// Remain seated - note that this happens AFTER the conversation's conditional scripts,
// but BEFORE any actions they schedule.
object oChair = GetLocalObject(OBJECT_SELF, "MyChair"); // This is set by my sit script
if (GetIsObjectValid(oChair)) {ClearAllActions(TRUE);
ActionSit(oChair);}
// First conditional script of default conversation - launches a different, generic conversation file
object oChair = GetLocalObject(OBJECT_SELF, "MyChair");
if (GetIsObjectValid(oChair)) {ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectCutsceneImmobilize(), oNPC, 2.0);}
ActionStartConversation(oPC, "_generic", FALSE, FALSE);
if (GetIsObjectValid(oChair)) {ActionSit(oChair);}
ActionDoCommand(SetCommandable(TRUE, oNPC)); // By-pass OnConversation code that clears actions
SetCommandable(FALSE, oNPC);
// First conditional script of generic conversation
SetCommandable(TRUE, oNPC);
if (GetIsObjectValid(oChair)) {ClearAllActions(TRUE); ActionSit(oChair);}
// Last conditional script of generic conversation
object oChair = GetLocalObject(OBJECT_SELF, "MyChair");
if (GetIsObjectValid(oChair)) {ClearAllActions(TRUE);}
ActionStartConversation(GetFirstPC(), "", FALSE, FALSE);
if (GetIsObjectValid(oChair)) ActionSit(oChair);
// First conditional script when default conversation re-entered
object oChair = GetLocalObject(OBJECT_SELF, "MyChair");
if (GetIsObjectValid(oChair)) {ClearAllActions(TRUE); ActionSit(oChair);}
// returns FALSE to allow the rest of the default conversation to continue