Jump to content

Fair Strides

Member Since 21 Dec 2011
Offline Last Active Today, 07:11 PM

#54467 Download:Zeison Sha / Jal Shey Reskin

Posted by Fair Strides on Today, 07:12 PM

Effix: Jorak Uln uses a modified C_Baremetal.tga, which is a more powerful form of the original. As you're textures were designed for the original's shininess, the effect is overpowering when using Jorak's texture.

Lucy: You could try editing the .txi files of Effix's mod to point to something like "C_Baremetal2" and then extract both C_Baremetal.tga and C_Baremetal.txi from KT and rename them to "C_Baremetal2" and that should work.

#54405 *HUGE SIGH* Incomplete dialog

Posted by Fair Strides on Yesterday, 08:34 AM

@Both of you: I took a look at both the 852nih.dlg from the .erf and the .mod and came to the same results Bead-V did; however, that was by extracting the file and then opening it with DLG Editor.


I then opened the .dlg file in KT's dialog editor and saved the file. Upon opening it in DLG Editor, I got the same results RezTea had. KT's Dialog Editor isn't used because it doesn't work right with KotOR 2 DLG files and I've never used it in K1's files myself. It was pretty much the reason why DLG Editor was created.


In the future, I recommend only ever extracting a dlg file with KotOR Tool and only opening it in DLG Editor.

  • jc2 likes this

#54319 Workbench item model display question

Posted by Fair Strides on 23 February 2017 - 08:39 AM

For whatever absurd reason, the game references the male version of the model in this, and it seems to be hard-coded from what I can tell. Copying and renaming the model to "PMBJ" made it show up in the Workbench.


As an aside, I don't know how you took the screenshots. I downloaded the mod and copied all of the files (I get that there's no TSL Patcher; it's a simple mod) to the Override folder and loaded it up in-game to the default texture on the new model. I had to rename the texture to "PMBJ79" because my 2da (fresh from TSLRCM) has the female texj column reference the male texture, on account of it being the "unisex" model.

#54258 Fair Strides' Script Shack

Posted by Fair Strides on 22 February 2017 - 09:42 AM

Local buffoon here! How do you open a door?


So i'm trying to open a door on Manaan that closes itself. I don't know why it does this. It will open, then close. Not instantly but when you reload the module.


I wrote a script that would fire after a dialogue happened, which would open the door while you were in the module. It isn't working though. The door stays shut. I attempted to use the ActionOpenDoor function. 


The important thing is that you will NEVER need to use the period and the extension in scripting. Some other things to point out without actually checking the files in question (the files in the level):


1. If the DoDoorAction doesn't work, then AssignCommand(GetObjectByTag("<tag of door>"), ActionOpenDoor(GetObjectByTag("<tag of door>"))); should work.

2. If there is more than one copy of that door in the level, then the script would have probably opened the very first instance of that door. I can go over that a bit more in the next stream.

  • jc2 likes this

#54194 Fair Strides' Script Shack

Posted by Fair Strides on 21 February 2017 - 05:51 AM

That was the case for the appearance.2da, which the game's files references by the row number. Your issue with that file was that you inserted the row above the last row instead of entering some bogus info in the very bottom row and then pasting your row over that one. Yes, the KT 2DA editor is clunky that way...
However, the scripting functions that interact with the global values specifically take the value of the name column. The game uses that and doesn't care what order the rows are in. Also, you say that you plan on having five "tiers" of dialog that can be accessed one at a time. I take it the player can't ask about previous tiers?
If so, you'd be better off using a global number instead of a boolean. This way, you can increase the global number by 1 when the new tier is ready to be accessed and you're only using one global variable instead of five or however many you'd end up doing.
As an example:

Tier 1 DLG:

int StartingConditional()
    // If the variable is 0 (default), this'll be the first time.
    // You can always adjust this by change the < 1 to < 2, which
    // would allow you to set the variable to 1 after you talk to
    // Shanilla the first time.

    if(GetGlobalNumber("<name of variable, without the < > >") < 1) { return TRUE; }
    return FALSE;

and then at the end of that branch of dialog, you could update the global number:

void main()
    // Set it to 1 if you originally had it at 0, otherwise set it to 2.
    SetGlobalNumber("<name of variable, without the < > >", 1);

Oh, and you can disable the color-coding if you set the code type to XML when in the code window.

  • jc2 likes this

#54187 Fair Strides' Script Shack

Posted by Fair Strides on 21 February 2017 - 02:31 AM

Looking up that global boolean, you need "kas_ChuundarDead" not "KAS_CHUUNDARDEAD". I don't know if I mentioned it or even got to it in the stream, but it is case-sensitive.

#54170 Fair Strides' Script Shack

Posted by Fair Strides on 21 February 2017 - 12:32 AM

Hey FS, I've been trying to create a script that "fires" on the first converstation with an NPC

Then using that script to determine "Node availability." From what I read on holowan labs there's a default script for it using k_act_talktrue, k_con_talkedto , and k_contalked2, but I can't seem to get anything to work. 


What Function would you recommend I that use?


Sorry for the delay. When I'm at home, 90% of the time I don't do anything modding-related because I can't actually run the games on my laptop.


And I'm sorry I didn't get around to answering this, but Kexikus is correct. The only thing is that this only works the one time, unless you use the script "k_act_talkfalse" to reset the whole thing, but I think that's a K2 script (which you could remake in K1). When I originally read your post, I had thought you were asking about the concept and how to apply it to your own global variables.


Could anyone answer why this script isn't working? I've tried to write a GetBoolean script that would be used to determine the availability of a dlg node, but it has not worked. 


Is this the wrong function or am missing something? 

That would be the right function, but I've never seen that syntax (format) used before. Try modifying it to remove the " == TRUE" part.


The GetGlobalBoolean function itself returns a 1 or a 0 (TRUE or FALSE), so the " == TRUE" could be interfering.

  • jc2 likes this

#53941 Aayla Secura Mod?

Posted by Fair Strides on 16 February 2017 - 09:07 PM

Incidentally, it's also in cHaInZ.2da's archive.



#53922 How Can I add/use Appearance.2da?

Posted by Fair Strides on 16 February 2017 - 05:41 AM

Also, in the first or third tab of KotOR Tool's options menu, there is an option at the bottom that sets whether to use the .2da files from the BIFs or from the Override folder. This is turned off by default, meaning KotOR Tool will ignore any .2da files in the Override folder.

#53879 Download:Sith Stalker

Posted by Fair Strides on 15 February 2017 - 03:54 AM

And a quick tip for you, QGG, before you test the installer:


In the appearance.2da row entry in ChangeEdit (the | is the separator between the columns):


2DAMEMORY1 | RowIndex


And in the relevant .uti/.utc file:


"Appearance_Type" (without quotes) in the path/field box (should be the top box of the lower section in the editing section for the file)




2DAMEMORY1 in the Value box below that.

#53835 Download:Saber Colors Overhaul animated - SWTOR Edition

Posted by Fair Strides on 13 February 2017 - 04:39 PM

DP and DeadMan are correct. For one thing, there's a separate type of mesh/model component specifically for the saber blades themselves (which I would assume is what makes them flicker/have the trailing effect) and then there's the animation.


The blades themselves are made up of 4-8 planes (single and short vs double) and use a Scale animation. During the Power-on and flourish animations, the scale is set to 1, giving the planes their size. When the power-down animation is played, the scale is set to 0.


Other model components could also be scaled, but the main thing is that we don't know that particular piece of the model animation format. There's 8 pieces to any one segment of an animation and the last 3 pieces are unique to the animation type itself. We could possibly hard-code the values for a lightsaber-only compilation, but I'd need to see if that would actually make them work correctly.

#53612 Changing Models

Posted by Fair Strides on 08 February 2017 - 05:03 AM

*grins* Naturally, I feel compelled to say yes. To figure out the texture for a specific armor, you need three things:


1. The row of the armor in baseitems.2da.

2. The row in appearance.2da.

3. The Texture Variation entry in the armor's .uti file.


In baseitems.2da, a row has two columns of note: itemclass and bodyvar.


The itemclass entry is the "root" of the texture name for the item's icon. For example, the Combat Suit in K1 is Armor Class 4 in baseitems.2da. The itemclass entry for that row is "a_Class4". The icon file's name is generated like so: "i" + <baseitem row's itemclass entry> + "_0" + <.uti file's Texture Variation, which is treated as "0#" if less than 10>. Using the Combat Suit as an example again, the Texture Variation is "1", so this would be treated as "01" by the game. Combining the itemclass for the Armor Class 4 row in baseitems.2da, we finally get a name of "ia_class4_001" for the icon texture.


The bodyvar entry indicates which "model*" and "tex*" columns of the appearance.2da row to use. Since the body var is "C", the Armor Class 4 items use the "modelc" and "texc" columns. For the typical row in appearance.2da the modelc column would be "PFBC*" for females and "PMBC*" for males (where the * is "S", "M", or "L" depending on class in K1); similarly, the texc column would be "PFBC" for females and "PMBC" for males. So looking at the Combat Suit's Texture Variation of 1, the game would again see it as "01" and this is added right onto the texc entry. For females, the Combat Suit would use "PFBC01" and for males it'd be "PMBC01".


For other items that aren't armor, the process is the same, except you would use the Model Variation field from the .uti file.

#53192 Kotor 2 unofficial patch v1.1

Posted by Fair Strides on 01 February 2017 - 08:35 PM

@TheSarcasticCanadian: Would it be all the time, or just on the Ebon Hawk?

#53171 Changing Models

Posted by Fair Strides on 01 February 2017 - 05:42 AM

Hint when looking at it in-game: Defense of armor = Armor Class, barring any special properties. Another help is the Max Dex thing; the Max Dex for Armor Class 4 items is 5, and this goes down by 1 all the way to 0 going up the Armor Class items.

#52792 Mysterious Stranger Mask

Posted by Fair Strides on 26 January 2017 - 08:40 AM

From the wording and reactions of Saul Karath and Malak, I believe the events went like this:


-Calo survives and is insulted that someone one-upped him.

-Sith puts out a bounty on Bastila and any one who helps her.

-Calo goes to provide info and hope to get hired so he can get vengeance and get paid for it.

-Given his level of info, someone in the hierarchy funnels things around and gets Calo a direct meeting with Saul Karath.

-Saul dutifully records info on Bastila, Carth, and other companions; realizes the importance of Calo's description of one of Bastila's companions in particular.

-Presents Calo to Darth Malak and gives the hints we get in that scene; meeting goes behind closed doors.


Whether Calo ever learns that you're Darth Revan or not is ambiguous and info lost in the void, but at the very least, he probably figured out Malak and Saul were very interested in that companion of Bastila's dying.