-
Content Count
4,568 -
Joined
-
Last visited
-
Days Won
514
Content Type
Profiles
Forums
Blogs
Forum & Tracker Requests
Downloads
Gallery
Store
Calendar
Everything posted by DarthParametric
-
scripting [Query] Custom Music Playing on Cutscene
DarthParametric replied to ebmar's topic in General Kotor/TSL Modding
Wrapping the # around something is what tells TSLPatcher to make a substitution in any script you have told it to compile. So it will turn int nTrack = #2DAMEMORY1#; into something like int nTrack = 49; or whatever your new added row number is. And yes, anything after // is considered "escaped" - that is, the compiler ignores it. Thus it is used for human-readable comments. As @Qui-Gon Glenn mentioned earlier, it is very useful to provide comments in your scripts. Both for yourself, so when you come back to it at a later date you know what you were doing, and for anyone else that may be reading your source, such as when trying to make a compatibility patch. -
Lines Not Showing In Dialogue Editor
DarthParametric replied to ALPHA000102's topic in General Kotor/TSL Modding
I don't see that line in KTool's DLG editor. You won't find it in the DLG with a text search regardless, because it is not in the DLG directly. It's just a TLK stringref. I can see the line in dialog.tlk, <string id="21379" sound="_m45aadart04004_" soundlength="0.000000">I was saved from the darkness, Malak. You can be too, if you wish.</string> But that stringref doesn't appear to be in the DLG. What version of the game are you using? -
scripting [Query] Custom Music Playing on Cutscene
DarthParametric replied to ebmar's topic in General Kotor/TSL Modding
2DAMEMORY1 is a memory token, storing a a row ID number. You can have as many as you want. I assume in this case you will only need the one, but it could be 2DAMEMORY2, 2DAMEMORY3, etc. depending on how many rows you needed to add. So, for example, you could have a scenario where you added say three tracks to the 2DA, and created three separate scripts, one for each track. Each script would use a different memory token, to match the specific track. -
scripting [Query] Custom Music Playing on Cutscene
DarthParametric replied to ebmar's topic in General Kotor/TSL Modding
Lol yeah, it's pretty significant. Double slashes indicates "ignore the rest of this line" to the compiler. I would advise you to use Notepad++ along the NSS template in order to help spot small mistakes like this. Comments should be greyed out when properly escaped with double slashes. Other things to watch out for are the number of brackets (you need matching pairs) and missing semi-colons at the end of statements. You can also trip up on stuff like float values not having the required decimal (i.e. zero as a float is 0.0 - 0 by itself is an integer). -
scripting [Query] Custom Music Playing on Cutscene
DarthParametric replied to ebmar's topic in General Kotor/TSL Modding
Use the instruction manual, young Padawan. void main() { object oArea = GetArea(GetFirstPC()); int nTrack = #2DAMEMORY1#; // Change to appropriate TSLPatcher memory token value MusicBackgroundChangeDay(oArea, nTrack); } Note that you have to let TSLPatcher compile the script during the mod's installation in order for this to work. Read the instructions regarding this. -
scripting [Query] Custom Music Playing on Cutscene
DarthParametric replied to ebmar's topic in General Kotor/TSL Modding
-
scripting [Query] Custom Music Playing on Cutscene
DarthParametric replied to ebmar's topic in General Kotor/TSL Modding
That is declaring a variable for substitution in the main body of the script. It is perfectly valid. It's not strictly necessary in such a short script, but it's very handy in longer, more complex scripts, thus a useful habit to get into. It also tends to make things much more user-friendly when reading through a script, as it reduces the amount of nesting. -
scripting [Query] Custom Music Playing on Cutscene
DarthParametric replied to ebmar's topic in General Kotor/TSL Modding
There are script commands to stop current sounds and music and play something else. One approach you could try would be defining your custom track in a UTS (see one of the vanilla modules for an example, under Blueprint, Sound in KTool). Then in your encounter you'd need to fire the script through dialogue or a trigger perhaps. Something like: void main() { object oEbMusic = GetObjectByTag("UTS_TAG_HERE", 0); MusicBackgroundStop(GetArea(GetFirstPC())); AmbientSoundStop(GetArea(GetFirstPC())); // This is optional, depending on the area. DelayCommand(0.5, SoundObjectPlay(oEbMusic)); } Then you'd need a second script at the end to restart the original music/sound. If it's a cutscene, you could fire that script through dialogue again. If it's just a straight combat encounter, perhaps through the OnDeath script of the creature (someone more experienced with such things would need to chime in about that). void main() { object oEbMusic = GetObjectByTag("UTS_TAG_HERE", 0); SoundObjectStop(oEbMusic); DelayCommand(0.5, AmbientSoundPlay(GetArea(GetFirstPC()))); //Only if you stopped it in the first script DelayCommand(0.5, MusicBackgroundPlay(GetArea(GetFirstPC()))); } -
There's no need to include a pre-existing GFF file when just making alterations in-place. You only need to include files that are being completely being replaced, or that don't already exist in the target location. All the mod does is edit a single field in the existing GIT. That said, it relies on the target MOD already existing in the modules folder, but that is a given since it is a patch for K1R. Yeah he looks to be fine there. I'd have to go back and determine what the actual rotation values were to see how much of a difference it was.
-
In the meantime, this should be the "proper" solution, rather than the scripts above: [K1]_Vandar_Orientation_Fix_For_K1R.7z I also see they have altered Vrook's rotation in the GIT as well. You didn't notice any problem with that?
-
Not really, in terms of the impact. Making the Y orientation negative changes the rotation from 90° to 180° (the X and Y orientations for creatures is the cosine and sine, respectively, of the rotation in degrees).
-
I'll have a look through their files. Perhaps they changed the OnEnter or something. Edit: OK, I see the problem. For some bizarre reason, they altered Vandar's orientation in the GIT. I would assume that was an unintentional mistake, and should be reported in the appropriate K1R bug thread. Vanilla: XOrientation: -0.555570065975189 YOrientation: 0.831469714641571 K1R: XOrientation: -0.555570065975189 YOrientation: -0.831469714641571
-
Well I know my mod doesn't do it. I'd be surprised if K1R did it, but the only way to test would be a clean install.
-
I don't recall ever encountering it, so it's possible that some mod is causing it. Have a look at what mods you are using that modify the DANM13 module or parts thereof.
-
If you can load a save before landing on Dantooine, you can try this one: k_pdan_bastmv.7z This fires at the end of the dialogue with Bastila when you first leave the ship. If that works, you may not need either of the previous scripts.
-
Ah. Yeah the second script (08) fires on the first dialogue node. You may not need the other one. It would be worth deleting that one (07) and seeing how it plays out. I'll have to look at what options there are for that. Possibly the first dialogue when you get off the Hawk can be hijacked.
-
Did you try the updated archive with two scripts? That should attempt to set his facing on two different nodes. When does he turn away again? What's the line of dialogue?
-
Is that the first time you visit the council? I think I remember someone else mentioning it before, but I'm not sure if I have ever seen it myself. Edit: I can't test it myself, as I don't get the issue, but try dropping this script in your Override and see if it changes anything. Edit 2: Actually, try these two scripts: k_pdan_zhar_scripts.7z
-
I don't see any problems with the ASCII. UVs are the same as vanilla and the texture issue doesn't show up in Max. Must be something going on in the binary.
- 17 replies
-
- modules
- placeables
-
(and 2 more)
Tagged with:
-
Is that the source model? I need the binary model decompiled. There's no issue with that ASCII in Max at any rate. You'd have to ask @bead-v to have a look at the binary model perhaps. No, otherwise the diffuse texture would be mangled.
- 17 replies
-
- modules
- placeables
-
(and 2 more)
Tagged with:
-
Yes, I changed it when the placeables limit bug came to light after the initial release. Looks to be an issue with the UVs being mangled. You'll need to decompile the affected model and then load it up in Max/GMax and look at the UVs. Or just attach the model and I'll have a look at it.
- 17 replies
-
- 1
-
- modules
- placeables
-
(and 2 more)
Tagged with:
-
If you want to add stuff to K1, I would suggest considering adding them directly to the room model where possible. That will require lightmapping the placeable meshes (or at least faking it) and possibly room animation, but it will cause less grief for end-users.
- 17 replies
-
- modules
- placeables
-
(and 2 more)
Tagged with:
-
I assumed you were using an existing placeable, hence why I didn't cover that part. I would advise against adding new placeables to K1 unless absolutely necessary, at least for public releases. As far as collision goes, most placeables already include it. Is that a TSL placeable? Did you recompile the model for K1? You should have got a PWK, which, as the letters suggest, is the Placeable Walkmesh. That needs to go in the Override folder along with the MDL/MDX.
- 17 replies
-
- 1
-
- modules
- placeables
-
(and 2 more)
Tagged with:
-
You only specify the exact placeables you want to spawn. If you just have that one, then your script would be: void main() { if ((GetEnteringObject() == GetFirstPC())) { if( GetObjectByTag( "PLC_TSLCpnl" ) == OBJECT_INVALID ) { CreateObject(OBJECT_TYPE_PLACEABLE, "PLC_TSLCpnl", Location(Vector(179.16,65.40,0.00), 180.0)); } ExecuteScript("k_ptar_02aa_ORIG", OBJECT_SELF); } } Note that the "180.0" is the rotation, so you will need to set that appropriately. I would start with 0.0 (it's a float, so it must always have a decimal) and adjust as needed. Your new script must be the exact name of the original OnEnter script. If you are editing M02AA then it would be k_ptar_02aa_en and the original would need to be renamed something else, remembering that you do not want to exceed 16 characters in a filename. I have provided a suitable example in the script above. Once your new script is compiled, put it, the renamed original OnEnter script, and your UTP in the Override folder and test it in-game.
- 17 replies
-
- 1
-
- modules
- placeables
-
(and 2 more)
Tagged with: