Ah a classic thread revived!
Let me see if I can expand on HazardX's great contribution:
Open up notepad and paste the following code:
object PlaceNPC(string sTag)
{
if(!GetIsObjectValid(GetObjectByTag(sTag)))
{
return CreateObject(OBJECT_TYPE_CREATURE,sTag,GetLocation
(GetObjectByTag("POST_" + sTag)));
}
else
{
return OBJECT_INVALID;
}
}
void AddCharToParty(string CharName, int Slot)
{
object oChar;
oChar = PlaceNPC(CharName);
AddAvailableNPCByObject(Slot, oChar);
AddPartyMember(Slot, oChar);
}
void main()
{
AddCharToParty("n_darthmalak",4); /* This part is custom to what you want to do */
}
Now save this text file with an .nss extension and a unique name like 'friendly_malak.nss'. Download HazardX's nss compiler (see thread (
http://www.lucasforums.com/showthread.php?threadid=122049)).
Save nwnnsscomp.exe into the same folder as friendly_malak.nss.
Open a command prompt in that directory and type
nwnnsscomp friendly_malak.nss -v1.00
Now you should have a file called friendly_malak.ncs that you can put in your override folder.
So we have a script that will add Malak to our party, but we need a way to trigger it. The easiest was to do that is by modifying an existing dialog file and then invoking that file from inside the game. I recently uploaded some tools (
http://www.lucasforums.com/showthread.php?threadid=125370) that can help you search for a suitable dialog file. You can then use KotOR Tool to extract the dialog file and GFF Editor to edit it. Open up the appropriate EntryList or ReplyList branch and if there is nothing entered in the 'script' field, add 'friendly_malak' to that field. Save the dialog file in the Override folder. Start up the game. Invoke the dialog, and get Malak on your side.
In your case Admiral Chemix, I think you might be looking for 'n_selkath' instead of 'n_darthmalak' in the above script. And maybe you'd rather change the 4 (Jolee) into some other number.