Jump to content

Home

Handmaiden for a female PC


The Lone Badger

Recommended Posts

Originally posted by reiella

Another problem location for those using the edit means (And I'd suspect the 'appropiate' means as well).

 

 

Final Dantooine Sequence

 

The first cutscene after returning to the EbonHawk and talking to Atton just blackscreens.

 

[ Edit / Clarity ]

If you keep the variables set to Male, you're fine (and it's a way to work around that problem).

Thanks for posting this.

 

The dialog that needs editting to fix this is 006EBO_dlg.erf>attonend.dlg

 

Line 7 contains the script reference that must be changed.

Link to comment
Share on other sites

  • Replies 244
  • Created
  • Last Reply
Originally posted by Ellderon

If there is one conversation.. and a option appears if zou-re male.. bz removing the check the option will appear everztime..for both male and female...

 

So no, I don-t see the problem with handmaiden here..

If she says one thing if you're a male and another if you're female, you don't think that will be a problem? Best case scenario is that she says both, right? Is it just me or would that be more than a little distracting?
Link to comment
Share on other sites

Originally posted by Achilles

If she says one thing if you're a male and another if you're female, you don't think that will be a problem? Best case scenario is that she says both, right? Is it just me or would that be more than a little distracting?

 

i don't think there would be any checks because you can only get her if you are a male or the game thinks you are a male so logically there wouldn't be any other gender checks

Link to comment
Share on other sites

So what someone should do id DELETE/REMOVE all the excess (read - double) converation options and remove the checks.

 

that was, tehre is only one way teh conversation can go (regardless of gender) and no checks are needed at all..

 

that, or someone can simply replace the gendercheck script in the double lines with something that will NEVER trigger.

Link to comment
Share on other sites

In order to prevent the cutscene on the Ebon Hawk from freezing after you've returned from the rebuilt enclave on Dantooine, you'll need to change two scripts so that the Visas cutscene is triggered rather than the Disciple one after seeing Atton in the cockpit. The scripts are: k_attonend and a_load006end.

 

Compile these and stick in the Override folder and the Visas scene will trigger regardless of player gender:

 

// ST: a_load006end.nss (decompiled from a_load006end.ncs)

void main() {
object oWP1 = GetObjectByTag("WP_650END_PC_0");
object oWP2 = GetObjectByTag("WP_650END_0");
object oPC = GetFirstPC();

DelayCommand(0.5, AssignCommand(oPC, ActionJumpToObject(oWP1)));

object oVisas = GetObjectByTag("VisasMarr");
DelayCommand(0.60, AssignCommand(oVisas, ClearAllActions()));
DelayCommand(0.61, AssignCommand(oVisas, ActionStartConversation(oPC, "visasend", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)));		
}

 

// ST: k_attonend.nss (decompiled from k_attonend.ncs)

#include "k_inc_glob_party"

void main() {
if (GetLocalBoolean(OBJECT_SELF, 30))
	return;

SetLocalBoolean(OBJECT_SELF, 30, TRUE);

ClearPlayerParty();	
SpawnIndividualPartyMember(NPC_ATTON, "WP_650END_ATTON_0");
object oAtton = GetObjectByTag("Atton");

effect eDamage = EffectDamage(GetCurrentHitPoints(oAtton) - 1);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oAtton);

// ST: Stripped the gender check...
SpawnIndividualPartyMember(NPC_VISAS, "WP_650END_0");

SetGlobalNumber("000_PSYCHOTIC", 0);

AssignCommand(GetFirstPC(), ClearAllActions());
AssignCommand(oAtton, ClearAllActions());

AssignCommand(GetFirstPC(), ActionStartConversation(oAtton, "AttonEnd", FALSE, CONVERSATION_TYPE_CINEMATIC, FALSE));
}

 

These are the original scripts with just the gender check check and disciple spawn removed so they should work fine.

 

It's rather likely that the Atris vs. Handmaiden cutscene on Telos won't trigger either if the Exile is female, haven't had the time to check yet. I'll look into fixing those scripts as well if that's the case.

Link to comment
Share on other sites

Originally posted by Ellderon

So what someone should do id DELETE/REMOVE all the excess (read - double) converation options and remove the checks.

 

that was, tehre is only one way teh conversation can go (regardless of gender) and no checks are needed at all..

 

that, or someone can simply replace the gendercheck script in the double lines with something that will NEVER trigger.

Yes, that seems much more efficient...

 

*walks away from conversation shaking his head*

Link to comment
Share on other sites

Originally posted by Achilles

stoffe -mkb-,

 

k_attonend.nss will not compile. I get several "undeclared identifier" errors from both k_inc_glob_party and k_attonend.nss. Let me know if you'd like for me to PM the log to you.

 

Thanks!

 

Odd, it compiles without any problems here. Check that you have all the include files needed in the same folder as the script when you try to compile it. You need the k_inc_glob_party.nss and k_inc_debug.nss files, as well as the nwscript.nss file from KotOR:TSL.

 

If you still can't get it to work, then sure send the log and I'll have a look at it.

Link to comment
Share on other sites

Originally posted by Darth333

Also make sure you have nwscript.nss in the same folder as nwnnsscomp.exe until a new compiler is released for tsl (coming soon) otherwise the compiler will use kotor 1 nwscript.nss.

That did the trick. Thanks to the both of you for the quick response!!!
Link to comment
Share on other sites

if anyone makes this a mod please make sure you include a dialog option in disciple's second (khooda) dialog that makes him hostile and allows you to kill him :D Otherwise this worked, I wouldn't be able to stand disciple another time through

Link to comment
Share on other sites

In case it helps, the final talking with the Disciple is inside Khoonda. Before you fight the baddies and after you found Vrook and are done in the sublevel he's in one of the waiting rooms. You can't really do much here, just ask him some questions and such. Yeah, make an option to kill him. He has a face like a rat.

Link to comment
Share on other sites

I've been looking into the Atris vs. Handmaiden scene a bit more at telos, and found there are two scripts that need to be changed for it to trigger properly regardless of the Exile's gender. They are a_kreatris and a_hand_pc_end, both in the 262TEL_s.rim file.

 

I've modified those below, replacing the gender check with a check if the Handmaiden has joined the party instead. Appears to work from the brief testing I did.

 

Compile and put in the override folder...

 

// ST: a_kreatris.nss (decompiled from a_kreatris.ncs in 262TEL_s.rim)

void SwitchToHandmaiden() {
SwitchPlayerCharacter(NPC_HANDMAIDEN);
}

void StartHandmaidenScene() {
CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden012", GetLocation(GetWaypointByTag("sp_sis_sisend1")));
CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden013", GetLocation(GetWaypointByTag("sp_sis_sisend2")));
CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden014", GetLocation(GetWaypointByTag("sp_sis_sisend3")));
CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden014", GetLocation(GetWaypointByTag("sp_sis_sisend4")));
CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden014", GetLocation(GetWaypointByTag("sp_sis_sisend5")));

DelayCommand(0.2f, AssignCommand(GetPartyLeader(), ActionJumpToObject(GetWaypointByTag("sp_hand_sisend"))));
SetMinOneHP(GetPartyLeader(), TRUE);
AssignCommand(GetPartyLeader(), ClearAllActions());
AssignCommand(GetPartyLeader(), ActionStartConversation(GetPartyLeader(), "sisend"));
}

void SpawnFinalAtris() {
CreateObject(OBJECT_TYPE_CREATURE, "n_darthtraya001", GetLocation(GetWaypointByTag("sp_traya")));
}

void main() {

int nParam1 = GetScriptParameter(1);

object oAtris 	= GetObjectByTag("Atris");
object oKreia 	= GetObjectByTag("KreiaEvil");
object oDrone1 	= GetObjectByTag("Sister1");
object oDrone2 	= GetObjectByTag("Sister2");

switch (nParam1) {
	case 0:
		AssignCommand(oKreia, ActionMoveToObject(GetWaypointByTag("wp_kreia_end2")));
		break;
	case 1:
		AssignCommand(oKreia, ActionMoveToLocation(GetLocation(GetWaypointByTag("wp_kreia_ending"))));
		AssignCommand(oKreia, ActionDoCommand(SetFacing(GetFacing(GetWaypointByTag("wp_kreia_ending")))));
		break;
	case 2:
		AssignCommand(oKreia, SetFacing(90.0f));
		break;
	case 3:
		AssignCommand(oKreia, ActionMoveToObject(GetWaypointByTag("wp_kreia_end")));
		break;
	case 4:
		SetLockOrientationInDialog(oAtris, TRUE);
		SetLockOrientationInDialog(oKreia, TRUE);
		AssignCommand(oKreia, SetFacing(270.0f));
		break;
	case 5:
		SetGlobalFadeOut(1.0f, 2.0f);
		break;
	case 6:
		AssignCommand(oKreia, ActionJumpToObject(GetObjectByTag("wp_pc_end")));

		CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden003", GetLocation(GetObjectByTag("sp_hand_kreia1")));
		CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden004", GetLocation(GetObjectByTag("sp_hand_kreia2")));

		DestroyObject(oAtris);		
		break;
	case 7:
		AssignCommand(oKreia, ActionMoveToObject(GetObjectByTag("wp_atris_2")));
		SetGlobalFadeIn(0.1f, 2.0f);
		break;
	case 8:
		AssignCommand(oDrone1, 	ActionMoveToObject(GetObjectByTag("wp_hand_kreia1"), TRUE));
		AssignCommand(oDrone2, 	ActionMoveToObject(GetObjectByTag("wp_hand_kreia2"), TRUE));
		AssignCommand(oKreia,	ActionMoveToObject(GetObjectByTag("wp_atris_3")));

		SetGlobalFadeOut(0.1f, 2.0f);

		DelayCommand(4.0, DestroyObject(oDrone1));
		DelayCommand(4.0, DestroyObject(oDrone2));

		// ST: Replaced Gender check with NPC presence check...
		if (IsAvailableCreature(NPC_HANDMAIDEN)) {
			SetNPCSelectability(NPC_HANDMAIDEN, TRUE);
			DelayCommand(4.0, SwitchToHandmaiden());
			DelayCommand(5.0, StartHandmaidenScene());
			DelayCommand(5.5, SetGlobalFadeIn(0.1f, 2.0f));
			DelayCommand(8.0, DestroyObject(oKreia));
		}
		else {
			DelayCommand(5.0, SpawnFinalAtris());
			DelayCommand(6.0, SetGlobalFadeIn(0.1f, 2.0f));
			DelayCommand(10.0f, DestroyObject(oKreia));
		}
		break;
}			
}

 

// ST: a_hand_pc_end.nss (decompiled from a_hand_pc_end.ncs in 262TEL_s.rim)

void main() {
// ST: Replaced Gender check with NPC presence check
if (IsAvailableCreature(NPC_HANDMAIDEN)) {
	object oWP1 = GetWaypointByTag("sp_atris_atrend1");
	object oHand = GetObjectByTag("Handmaiden");

	AssignCommand(GetFirstPC(), ClearAllActions());
	AssignCommand(GetFirstPC(), ActionJumpToObject(oWP1));

	effect eRes = EffectResurrection(50);
	ApplyEffectToObject(DURATION_TYPE_INSTANT, eRes, GetObjectByTag("Handmaiden"));

	DelayCommand(0.7, AssignCommand(GetFirstPC(), ActionStartConversation(GetObjectByTag("Handmaiden"), "handend", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)));
}
else {
	SetGlobalFadeOut();
	SetFadeUntilScript();
	PlayMovie("MalMov02");
	PlayMovie("MalMov01b");
	StartNewModule("221TEL");
}
}

 

EDIT: Seems like the board does some funny word-wrapping with the code. Might need to be fixed before compiling.

Link to comment
Share on other sites

Originally posted by Xcom

stoffe,

.. are you somehow capable of decompiling scripts to more than byte code?

 

If so, I for one wouldn't mind knowing how you do it? :D

 

I do it by hand, lots of work but since there seem to be no other way...

 

I decompile the scripts to byte code and then read/interpret that byte code and manually re-create the source from it.

 

When I'm done, I compile my script, then immediately decompile it to bytecode and then run the original script bytecode and my script bytecode through a text compare utility. When they match exactly, that's close enough for me. :)

Link to comment
Share on other sites

Originally posted by Xcom

stoffe,

.. are you somehow capable of decompiling scripts to more than byte code?

 

If so, I for one wouldn't mind knowing how you do it? :D

 

if you have kotor tool then you can access the source files for all the scripts with out having to decompile them

Link to comment
Share on other sites

stoffe,

 

I figured as much. Well, I guess Force is strong with you.

:thumbsup:

 

Originally posted by jedigoku

if you have kotor tool then you can access the source files for all the scripts with out having to decompile them

 

Are you sure? ;)

 

LOL!

Link to comment
Share on other sites

Originally posted by jedigoku

yes i'am positive they are under the bif's node then the scripts and source

 

Those are "global" scripts. FYI, there is also huge amount of compiled scripts of which we have no source.

 

There're hidden in RIMs->Modules-> <module>_S.rim -> Scripts, Compiled

 

Practically, every module has crapload of local scripts.

Link to comment
Share on other sites

After seeing stoffe's excellent scipts, I feel rather silly that I have messed around in the ncs files directly. There are a few other Handmaiden cutscenes that are gender dependant. It is only minor stuff. Since I have never played with a male character it would be nice if someone could tell me if there are any missing:

 

 

 

- After leaving Telos Academy, two sisters approach Atris and tell her the last of The Handmaiden has left. (Modified a_setup_ebo2.ncs and a_playmove.ncs in 262TEL)

- When Kreia complains that you gather too mnay followers, she would mention the Disciple, not the Handmaiden. (Can be corrected in the endless kreia.dlg. It's the line after "I have noticed their behaviour is changing - Atton especially".)

- Argument between Visas and Handy followed by a cutscene with Mira/Handmaiden and Kreia/Handmaiden on the Ebon Hawk. (Modified k_003ebo_enter.ncs. Argh! I shouldn't have bothered with these. The sequence works, but it doesn't make sense anymore.)

- After Kreia has killed the remaining Jedi Council on Dantooine, the Handmaiden and two sisters take Kreia with them. Normally, only the two sisters without The Handmaiden would enter. Is that really all that changes? No dialog from Handmaiden? (Modified a_handspawn.ncs and a_hand_move.ncs in 650DAN)

 

I haven't tried what happens during the final conversation with Kreia on Malachor yet. I have a bad feeling about this. Couldn't find any gender checks in the dialogs nor the scripts. I can't seem to get there with cheats either, so I am not sure what will happen.

 

The argument with Atton works without gender checks. Fool! Schutta!

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...