Aller au contenu

Photo

Issue with script-hidden characters appearing during conversation on OM


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

#1
rjshae

rjshae
  • Members
  • 4 507 messages
I want to add an option to certain OM placable conversations that allows a survival check by party members that have the Track feat. (I.e. a check for tracks before clicking on 'Enter'.) This presents the little ellipsis icon during the conversation that lets the player know there is an additional option. When I select on that character though, the script-hidden party member is made visible. It remains that way even after the conversation ends, although clicking on the character makes the two merge into one again.

Has anybody else run into this issue? Perhaps it's just part of the OM functionality that never shows up because the placeable conversation options don't have any character-based conditions? I was thinking I could run a script on the conversation exit so as to clean things up again, but perhaps I'm just simply doing something wrong.

Regards,

Modifié par rjshae, 07 juillet 2012 - 08:59 .


#2
rjshae

rjshae
  • Members
  • 4 507 messages
It looks like a conversation on-exit/abort script that re-applies the script hidden setting to the rest of the party does the trick. The visible character remains set to the last one that took part in the conversation, but I can life with that.

#3
Lugaid of the Red Stripes

Lugaid of the Red Stripes
  • Members
  • 955 messages
Conversations make script hidden characters visible, I don't know if they actually un-hide them.

#4
rjshae

rjshae
  • Members
  • 4 507 messages

Lugaid of the Red Stripes wrote...

Conversations make script hidden characters visible, I don't know if they actually un-hide them.


Oh okay, thanks. Well here's my trivial conversation on-exit script if anybody wants to make use of it.

// som_om_conv_cleanup
/*
    Performs cleanup following a conversation on the
    overland map.
*/
// 07jul12 RJH

// Set all party members except the leader to script hidden
void DoPartyHide( object oLeader )
{
    // Cycle through the party members
    object oParty = GetFirstFactionMember( oLeader, FALSE );
    while( GetIsObjectValid( oParty ) ) {
        if( oParty != oLeader ) {
            // Set everybody except the party leader to script hidden
            SetScriptHidden( oParty, TRUE, FALSE );
            
            // Teleport to the leader's location
            AssignCommand( oParty, JumpToObject( oLeader ) );
        }
        oParty = GetNextFactionMember( oLeader, FALSE );
    }
}

void main()
{
    // Check if the party is still on the overland map
    object oPC = GetFactionLeader( GetFirstPC( FALSE ) );
    int bShrunk = GetLocalInt( oPC, "pcshrunk" );
    if ( bShrunk )
        DoPartyHide( oPC );
}