PDA

View Full Version : [K1]Party Interjections...


jimbo32
02-07-2007, 07:28 PM
...specifically, how to get rid of them?

I'm in the process of making a recruitment mod for Yuthura, and it sounds more than a little weird when she makes threatening comments in Canderous' voice (who she replaced).

The interjections obviously use the Tag to determine if the NPC is present before firing the dialogue. Since there are quite a number of these, modding all of the dialogue files isn't very efficient.

I'm wondering if there is an easy way to get rid of them. And now that I think about it, the NPC "sidequest" should probably be scrapped as well. It wouldn't make much sense to have Jagi approach Yuthura wanting revenge. :)

Ideas (or solutions) anyone?

Inyri
02-07-2007, 07:58 PM
Easiest way to avoid that is to change the tag of the player. Most of those conversations are optional, and have multiple options. For instance if your character were to overwrite Juhani, the dialogue is scripted to check if Juhani is present in the party by character slot, but also checks to see if she is in range by tag, so if the tag is not there she will not speak.

This only becomes a problem for plot-important dialogues where a particular character NEEDS to speak. Juhani is a good example of this, for the female Revan romance. If Juhani is not present, the dialogue can not continue. Therefor if you killed her, or replaced her... whoops! No romance for you! Although I do believe there' s fix for that out somewhere... but you should get the idea.

Just keep in mind whatever way you do it, there are bound to be issues. Something like a recruitment mod, when done right, is very time consuming and complex. Most people simply seem to say "eh, what the heck" and skip a lot of that stuff.

jimbo32
02-07-2007, 09:03 PM
Right, but doesn't the new recruit have to retain the Tag of the party member they replace? Otherwise you wouldn't see them on the selection screen and the original NPC would remain on the Ebon Hawk.

Unless I'm mistaken about this, I don't think that changing the Tag is an option.

RedHawke
02-08-2007, 12:33 AM
Easiest way to avoid that is to change the tag of the player.
Unfortunately this isn't an option because of the cloning issues you will have on the Ebon Hawk.

If you don't have the new recruit using one of the party NPC tags you will have multiple clones of the new NPC on the Hawk as the module clears the NPC's every time you exit, and re creates them every time you enter.

stoffe
02-08-2007, 06:59 AM
Unfortunately this isn't an option because of the cloning issues you will have on the Ebon Hawk.

If you don't have the new recruit using one of the party NPC tags you will have multiple clones of the new NPC on the Hawk as the module clears the NPC's every time you exit, and re creates them every time you enter.

If this is handled the same way as in K2:TSL you could modify the OnEnter event script for the Ebon Hawk area to check for the proper tags depending on who has been recruited (could use a global boolean to keep track of that), and thus avoid the duplication issue.

Still, changing the tags can be somewhat risky unless you are willing to go through all the scripts and dialogs in the game to check where they use a combo of Party Table slot and tag. Otherwise you may end up with malfunctioning dialogs and cutscenes where the game thinks an NPC is present but then can't find someone with the expected tag.

jimbo32
02-08-2007, 11:20 AM
If this is handled the same way as in K2:TSL you could modify the OnEnter event script for the Ebon Hawk area to check for the proper tags depending on who has been recruited (could use a global boolean to keep track of that), and thus avoid the duplication issue.

Still, changing the tags can be somewhat risky unless you are willing to go through all the scripts and dialogs in the game to check where they use a combo of Party Table slot and tag. Otherwise you may end up with malfunctioning dialogs and cutscenes where the game thinks an NPC is present but then can't find someone with the expected tag.

I don't think I'm comfortable doing that. I think you're right about it possibly screwing stuff up elsewhere.

I was sort of hoping someone had found a dependable method to get rid the interjections, but it looks like I'm sol. Any other suggestions on how to handle it?

Pavlos
02-08-2007, 11:45 AM
Hmm... you could just edit k_con_canderpm.nss. It is the global script that (should) check for if a character is in your party and it used in these dialogue checks.

When Yuthura joins your party, set a global boolean (we'll call it GBL_YUTHURA_JOIN). A check for this can then be added to the script.

// k_con_canderpm
/*
checks to see if canderous is a party member
*/
// Created By: Bioware Corp.


int StartingConditional()
{
return ((IsNPCPartyMember(NPC_CANDEROUS) == TRUE) && (GetDistanceBetween(GetPCSpeaker(), GetObjectByTag("cand")) <= 10.0) && (!GetGlobalBoolean("GBL_YUTHURA_JOIN"))); // If conditions are met and Yuthura hasn't joined proceed...
}

Compile it and plonk it in the override :).

jimbo32
02-08-2007, 12:09 PM
Ha, actually just tried something similar Pavlos. I used the same script that you posted, and just "broke" it (substituing FALSE for TRUE for the ispartymember part).

Worked like a charm - no interjection.

I like your idea better though.

On a side note, does anyone have any idea how these interjections are fired? The conversation that I'm using for testing is the one with Eli on Kashykk after you find the droid head. As far as I could tell, there's no script in the dialogue that fires Canderous' comment (unless there's an executescript in there somewhere). And I can't find his dialogue for it in the module kas_m22aa either.

Maybe I'm going blind. It doesn't really matter anyway - I'm just curious.