Jump to content

Home

Handmaiden for a female PC


The Lone Badger

Recommended Posts

Originally posted by Xcom

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.

 

well in that case i would just create a new script with the same name as the other one because converting it back to a text file from binary code can be done but i would advise against it because it is very Illegal to do so

Link to comment
Share on other sites

  • Replies 244
  • Created
  • Last Reply

Illegal? Can't see why it would be any more or less illegal than modding any other aspect of the game.

 

Anyway, it seems there's a gender check when spawning the Handmaiden after leaving Telos on Ebon Hawk. Even if you change the conditional for the holorec.dlg to not only fire for male Exiles, those dialog scripts assume the Handmaiden has already been spawned on the meeting set.

 

This was done, with an old-style gender check, in the script a_play_mov.ncs in 950COR_s.rim. Here's a variant of that script with the gender check removed:

 

// ST: a_play_mov.nss (a_play_mod.ncs in 950COR_s.rim)

#include "k_inc_glob_party"

void main() {
if (GetLoadFromSaveGame())
	return;

object oEnter = GetEnteringObject();

if (oEnter == GetFirstPC()) {
	SetGlobalFadeOut();
	SetFadeUntilScript();

	SetNPCSelectability(NPC_BAO_DUR, TRUE);
	SetNPCSelectability(NPC_ATTON, TRUE);
	SetNPCSelectability(NPC_KREIA, TRUE);
	SetNPCSelectability(NPC_T3_M4, TRUE);

	ClearPlayerParty();
	SpawnAllAvailablePartyMembers();

	// ST: Removed gender check for spawning the Handmaiden on the interlude set.
	//     NOTE: The joining part is done in holorec.dlg, which assumes she is spawned here.
	// if (GetGender(oEnter) == GENDER_MALE)
		CreateObject(OBJECT_TYPE_CREATURE, "p_handmaiden", GetLocation(GetObjectByTag("WP_gspawn_handmaiden")));

	object oAtton = GetObjectByTag("Atton");
	AssignCommand(oAtton, ClearAllActions());
	AssignCommand(oEnter, ClearAllActions());

	AurPostString("ABOUT TO START HOLOREC", 5, 18, 10.0f);

	DelayCommand(1.0, AssignCommand(oAtton, ActionStartConversation(oEnter, "holorec", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)));
}
}

Link to comment
Share on other sites

I was looking into the sequence when the Handmaiden joins a bit more. Here's a modified script for when you enter the Ebon Hawk to leave Telos, fixed so the cutscene with Atris about Handmaiden doesn't only trigger for male Exiles.

 

Is anyone actually interested in seeing this stuff, or should I stop wasting forum space and not post more of it?

 

// ST: a_setup_ebo2.nss (a_setup_ebo2.ncs in 262TEL_s.rim)

void main() {
if ((GetGlobalNumber("262TEL_CNPC_Freed") == 1) && !GetLocalBoolean(OBJECT_SELF, 55)) {
	SetGlobalNumber("003EBO_BACKGROUND", 8);
	SetGlobalNumber("003EBO_RETURN_DEST", 8);
	SetLocalBoolean(OBJECT_SELF, 55, TRUE);

	DestroyObject(GetObjectByTag("t3m4"));
	DestroyObject(GetObjectByTag("baodur"));
	DestroyObject(GetObjectByTag("handmaiden"));

	// ST: Gender check removed, will play the cutscene for everyone...
	// if (GetGlobalBoolean("000_PLAYER_GENDER")) {
		SetGlobalFadeOut();
		SetFadeUntilScript();

		CreateObject(OBJECT_TYPE_CREATURE, "atriswindcut", GetLocation(GetObjectByTag("wp_atriswind_1")));
		CreateObject(OBJECT_TYPE_CREATURE, "sister1wind", GetLocation(GetObjectByTag("wp_sister1wind_1")));
		CreateObject(OBJECT_TYPE_CREATURE, "sister2wind", GetLocation(GetObjectByTag("wp_sister2wind_1")));

		object oAtris = GetObjectByTag("AtrisWindCut");	
		DelayCommand(2.2, AssignCommand(oAtris, ClearAllActions()));
		DelayCommand(2.2, AssignCommand(oAtris, ActionStartConversation(GetFirstPC(), "atrissis")));
	/*
	}
	else {
		SetGlobalFadeOut();
		SetFadeUntilScript();
		PlayMovie("TelMov14");
		StartNewModule("950COR");
	}
	*/
}
}

Link to comment
Share on other sites

stoffe,

 

you are hereby granted the title of Holowan's decompiler... human version. :D

 

DONT STOP!!!!!!!!!

 

I was checking out documentation on byte codes (which were kindly referred to me by Darth333) and my head still hurts.. Do you like accept requests for certain scripts disassembly?

Link to comment
Share on other sites

Originally posted by stoffe -mkb-

Is anyone actually interested in seeing this stuff, or should I stop wasting forum space and not post more of it?

I have dutifully compiled every script that you have posted. Please don't stop.

 

Thanks!

Link to comment
Share on other sites

Originally posted by Xcom

stoffe,

 

you are hereby granted the title of Holowan's decompiler... human version. :D

 

DONT STOP!!!!!!!!!

I second... third... and fourth this motion! ;)

 

The only things script decompiling ever gave me was a migrane! :D

Link to comment
Share on other sites

Originally posted by stoffe -mkb-

 

Is anyone actually interested in seeing this stuff, or should I stop wasting forum space and not post more of it?

 

 

 

Post more! This is not a waste at all, it's very interesting stuff. Darn good job, in fact.

Link to comment
Share on other sites

Well, the scripts alone won't work too well to make Handmaiden work reasonably as a party member for a female Exile. You'll need to modify a few DLG files as well, as mentioned above in this thread, for the Handmaiden to actually join your party, and to trigger her parts at relevant points. As such it makes little sense to upload the scripts alone.

 

I'm too much of a perfectionist to upload something half-finished to a download site at any rate, but that doesn't prevent someone else from doing it. :)

 

I'm just posting my findings here in case someone is working on a mod that will allow Handmaiden to always join.

 

I guess I could post instructions on what to change in what DLG files too, unless someone else does it. But I've only looked into the most critical DLG files so far, like the one where she joins the party (holorec.dlg), so someone else might know more.

 

I'm currently trying to fix the Ebon Hawk cutscene-handling script to modify the gender checks there, but since that script is nearly 9000 lines of bytecode decompiled that might take a while to fully analyze. :)

Link to comment
Share on other sites

OK so here is what I have now in case anyone wants the files. All scripts from stoffe compiled, changed dialogues that use my own scripts making it so that handmaiden always joins and disciple never does. I do have a question though, disciple has two dlg files but the both have the exacts same filename, if I put one to the Override folder do I override both?

Link to comment
Share on other sites

Originally posted by Keneth

OK so here is what I have now in case anyone wants the files. All scripts from stoffe compiled, changed dialogues that use my own scripts making it so that handmaiden always joins and disciple never does. I do have a question though, disciple has two dlg files but the both have the exacts same filename, if I put one to the Override folder do I override both?

Since TSL will read subdirectories, you could put each of them in their own folder. Don't know if it will actually work, but it's worth a shot.
Link to comment
Share on other sites

I'll give it a try once I have a chance to get there (could take a day or two, I've got a lot of schoolwork). Right now I've got a problem with kotor tool, I can't seem to save the holorec dialogue, getting the same "Object refference not set to an instance of an object" error, which seems to be quite common with me while editing stuff. Any ideas? :mad:

 

Edit: I only seem to be able to edit the file once, which makes me kinda think I did something wrong, is the dialog editor for TSL finished or does it still result in data loss, because it could have gotten corrupt in the process...

Link to comment
Share on other sites

Originally posted by Keneth

I'll give it a try once I have a chance to get there (could take a day or two, I've got a lot of schoolwork). Right now I've got a problem with kotor tool, I can't seem to save the holorec dialogue, getting the same "Object refference not set to an instance of an object" error, which seems to be quite common with me while editing stuff. Any ideas? :mad:

 

Edit: I only seem to be able to edit the file once, which makes me kinda think I did something wrong, is the dialog editor for TSL finished or does it still result in data loss, because it could have gotten corrupt in the process...

 

I don't know if the dialog editors will write fields they don't use, but if they don't they will seriously mess up a K2:TSL dialog file. There are lots of new fields in there. Among other things you can have two action/conditional scripts for each conversation node, and you can specify a series of parameters that those scripts can access.

 

I've used a GFF editor to modify all dialog files, just to be safe, and that seems to work fine as far as I've been able to test so far.

 

Open holorec.dlg with a GFF Editor and erase the "c_ismale" value from the following "Active" fields:

 

ReplyList --> 99 --> EntriesList --> 0 --> Active

ReplyList --> 98 --> EntriesList --> 0 --> Active

ReplyList --> 97 --> EntriesList --> 0 --> Active

ReplyList --> 96 --> EntriesList --> 0 --> Active

 

This will trigger the Handmaiden's appearance regardless of the Exile's gender (provided you're using the modified script that spawns her, that is).

Link to comment
Share on other sites

Originally posted by Achilles

Since TSL will read subdirectories, you could put each of them in their own folder. Don't know if it will actually work, but it's worth a shot.

 

The problem is that there is a dialog-file named disc_enc.dlg in both 602DAN_dlg.erf (Khoonda) and 610DAN_dlg.erf (Enclave sublevel).

 

If the one you put in the override will override both there will be some problems since the one in Khoonda contains the cutscene where Disciple contacts Admiral Onasi.

 

If putting folders with the same names as the modules in the Override will override at that scope rather than the global scope, it would work though.

 

Otherwise you'll have to rename one of them and carefully check all scripts and creature templates for references to the dialog and change the name there too. Somewhat risky, but better than nothing.

Link to comment
Share on other sites

Well the dialog doesn't work so I'll edit it with a GFF editor, safer that way, as for disciple's dialog I don't know what I'll do yet since I have no clue (for now) about creating modules so I can't do that and looking for script refferences and such is time consuming and I don't have that. But I'll figure it out once I get to that point, might wanna add that option to kill disciple too :D

 

Question: How exactly did you find those refferences to the script in the dialogue stoffe, by viewing the file with kotor tool or by hex viewing? Some other way? Or maybe you just have a better GFF editor? :)

Link to comment
Share on other sites

Archived

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


×
×
  • Create New...