DarthParametric

Modders
  • Content Count

    4,568
  • Joined

  • Last visited

  • Days Won

    514

Everything posted by DarthParametric

  1. This is not something you can do with placeables. Well not existing placeables anyway. What you are talking about is room model editing and/or creation. This has to be done in 3DS Max/GMax. It's not a topic that can be easily summarised in a couple of lines. As for screenshots, you can enable them in the ini under the [Game Options] section, setting EnableScreenShot=1 and in K1 you can also use GUIsInScreenShot=0 to always take screenshots without the GUI just like in first person mode (doesn't work in TSL though). Using the PrintScreen button will save screenshots in the game folder as TGAs.
  2. Seems like I can probably split the Dantooine component out into a separate optional installation. I'll take a look at it over the weekend and upload an updated version.
  3. It's possible. The requirements for doing so, and the difficulty, depend on whether or not you've already installed it.
  4. In future, you shouldn't use K1R and K1CP together. Versions of K1CP after 1.7 aren't compatible. If you are getting crashes with the fade, try Disable Vertex Buffer Objects=1 in the [Graphics Options] of swkotor.ini if you don't already have that added. That's the only thing I can think of with that. It shouldn't be related to the script itself. As I said before, fading is the default behaviour that a lot of vanilla scripts use, so if you are encountering crashing elsewhere then that could be the cause.
  5. A conversation is initiated between two objects. One is the owner of the dialogue (and all scripts attached to it) and the other is the listener. This is typically the player, but not always. The owner of a DLG is considered the default speaker of entry nodes unless someone else's tag is specified in the Speaker field for that node. All scripts attached to the DLG are executed by the owner. In practical terms, this means you don't need to use a tag for the owner, you can use OBJECT_SELF. You also don't need to assign commands to the owner - any command that isn't assigned to someone else defaults to the owner. But, as I said, a script (and the DLG itself) will immediately terminate when their owner is destroyed. This can create problems if you need a scene to continue on past a creature being destroyed and it was the owner. In essence, whoever you assign an ActionStartConversation to is the owner of that DLG and its scripts. If you assigned it to a placeable then the placeable is the owner. The game uses a lot of invisible placeables as owners for cutscenes, because it frees the designer up to do whatever they want to the NPC participants. As to your crashes, that is not normal behaviour. Not for a simple fade. That is the default behaviour anyway, so you'd be getting that all the time during the vanilla game. If you are using an EndConversation/EndConverAbort script then yes, I'd expect that could be the issue, since you are presumably destroying the owner of the DLG just as it tries to fire another script due to the delay.
  6. Is the NPC the owner of the DLG/script? That can sometimes cause problems, since a script will immediately terminate as soon as its owner is destroyed. You can still destroy the owner as the final function in an exit node script, but this will usually happen in plain sight of the player unless you jump them somewhere else first. You can also command them to walk somewhere, like the module exit, first before destroying themselves. In general though, it's pretty straightforward: DestroyObject(oNPC, 0.0, TRUE, 0.0); The variables here are the creature to destroy, the delay in seconds before destroying them, not fading them out (so FALSE if you do want them to fade), and the delay in seconds before they start fading (which only matters if the previous term was set to FALSE). If the creature is the script owner then you can swap the object reference to OBJECT_SELF. But in that case I would delay calling the function until everything else in the script has finished executing, like so: DelayCommand(2.5, DestroyObject(oNPC, 0.0, TRUE, 0.0)); This will delay calling the function by 2.5 seconds, the value of which you can adjust as needed. If you want a creature to destroy itself after walking somewhere first, you can add the command to its action stack. This is commonly seen when an NPC "exits" an area. Often this can be part of the creature's UserDefine script, the case for which can be called at the end of the conversation. For example: ActionMoveToObject(GetObjectByTag("k_exit", 0), FALSE); ActionDoCommand(DestroyObject(OBJECT_SELF)); SetCommandable(FALSE); To issue those commands from a script owned by a different creature/object, you'd need to use AssignCommand to assign them to the NPC of interest. If you want more specific details, you need to provide more info about the circumstances of your scene and how it is currently set up.
  7. You aren't doing it right. Left click drag a TPC over the window. Don't let go of the mouse button. Now hold down the ALT key. You'll see a message bar on the window pop up saying Export TGA. Now let go of the mouse button.
  8. What you quoted tells you exactly how to convert to TGA.
  9. I'd imagine that's a Blender script issue, not Max/KMax. As long as you don't compile to binary and then decompile, the smoothing you defined is stored in the ASCII. I don't really follow the status of KOTORBlender. You'd have to ask @ndix UR about it, but perhaps you can try the version on Github if you are still using an older version - https://github.com/ndixUR/kotorblender
  10. Uninstall it (either an included uninstaller or via the Control Panel). Their installer sets a registry key for the initial destination you choose, and future installations will reuse that without asking unless you run the uninstaller.
  11. Plot locals (i.e. 0 to 10) are in k_inc_utility in both games. The ones in other includes are AI (for the most part) related. 0-10 are the only ones you should be using for general purpose use. You'll potentially break things if you start using higher numbers.
  12. They also work on triggers as well. It's common practice to set a local on a trigger the first time it fires. Gives more flexibility than outright destroying it for cases where you might want to reuse it. All of K1's random loot placeables use locals in their heartbeat scripts to stop them respawning (although Obsidian added a new function for TSL to just remove the script altogether after firing, to cut down on overhead on the Xbox). K1 makes extensive use of module locals for various quest states via the module includes.
  13. If you are going to get into scripting, you'll be spending lots of time rewriting stuff. Comes with the territory. If you are making something for you self, by all means hack it together however you want. If you are planning on releasing something publicly though then you should be willing to refine it to make sure you don't do anything that isn't strictly necessary. It will make your life easier in the long run anyway when you come to setting up a TSLPatcher config. TalkedTo isn't anything special or unique. It's just local boolean constant 10. They added an extra utility function for it, but under the hood it's still just Get/SetLocalBoolean. If you want to use the strings and the functions for them outside generic scripts, you'll need to set k_inc_utility as an include.
  14. You can set a local on a placeable or even the entire area. It's not limited to creatures.
  15. There's no need to create a new global unless you need to track something across multiple modules. If you are only interacting with a single object/creature via one DLG then you can just use one of the existing locals that are set up for that purpose.
  16. No, Xoreos Tools doesn't properly convert all textures. The best solution is to use ndix UR's TPCView - https://deadlystream.com/files/file/1552-tpcview Not only does it correctly convert them, but it also exports a TXI for any texture that needs it. To mass convert, select the TPCs, drag them over the TPCView window, hold down the ALT key, and release.
  17. By default, mapnotes (like pretty much every other string in a GFF) use a StrRef - i.e. a line from dialog.tlk. If you want to use a local string, in KGFF right click on the Mapnote node in the GIT and choose Add String. That will add a local string child node that will let you type in your description. Make sure the StrRef field in the parent node is set to -1.
  18. There is nothing about them that could be "backwards". Unless you actually mean "inverted". Regardless, check your Override folder for N_TSFOff_F01.tga (or tpc) and N_RepSold_F.mdl/mdx for the regular female officer and N_TSFCmdr_F01.tga (or tpc) and N_RepOff_F.mdl/mdx for the female commander.
  19. In the interim, this should fix it - https://www.darthparametric.com/files/kotor/k1/[K1]_Jedi_NPCs_Wear_Player_Robes.7z
  20. A long term solution would be for @Hunters Run to add either a pass card to the soldier that can be looted that will open the door, or respawn the guard in the module OnEnter. In fact I seem to recall there is already something like the former already in the game's files, it's just unused. In the short term, you can get around the issue a couple of different ways. Perhaps the easiest would be to install an armband or similar mod that will allow you to open doors. For example, the Sonic Screwdriver or JC's Toolbox.
  21. You're using Workshop mods? Or a combination of Workshop TSLRCM and regular mods? And yes, by doing a verify integrity you pretty much 100% destroyed your install. Some people have a nasty habit of recommending this, but you should NEVER DO THIS for TSL unless you are exclusively using Workshop mods (which you should also never do). Your terminator guy could be either a texture issue or an appearance.2da issue. Impossible to say without knowing the full extent of your installation. Regardless, it suggests an incorrect/incompatible/broken set of mods.
  22. Sure, go ahead. Just warn people that there will be a hard incompatibility with any other mod that edits that file. It can only be resolved with manual merging, since TSLPatcher doesn't allow for dynamic patching of VIS files (or LYTs).
  23. You can't run nwnnsscomp by double clicking it. It's a commandline program. You need to run it from a DOS prompt. Open a command window Start -> Run -> cmd and navigate to the location of nwnnsscomp (you'll have to Google how to do that) Alternatively, on Windows 10 go here and download one of the REG files to enable a context menu "Open command window here" in any folder Run your command. Alternatively to all that, create a batch file that will compile all NSS files in the current directory: @echo off rem CHANGE THIS TO YOUR LOCAL NWNNSSCOMP FOLDER: set nwnsscompdir=F:\Star Wars Knights of the Old Republic\-=TOOLS=-\NWNSSCOMP\K1 rem NOTE THAT YOU NEED SEPARATE VERSIONS FOR K1 AND TSL, EACH WITH rem THEIR OWN GAME-SPECIFIC VERSION OF NWSCRIPT.NSS for %%F in (*.nss) do ( if not "%%~nF"=="nwscript" ( "%nwnsscompdir%\nwnnsscomp.exe" -c "%~dp0%%~nF.nss" -o "%~dp0%%~nF.ncs" ) else ( echo Skipping: %%F ) ) pause Just copy and paste it into a text file and save as xxx.bat (note that you will need specific K1 and TSL versions, as described). As far as the other question, TRUE is 1 and FALSE is 0. So whatever statements you set to 0 will be set to FALSE.
  24. Ah, missed the corridor outside the engine room. Try this: m12aa.vis
  25. To fix the saber workbench issue, a crystal UTI needs to be added to the mod. The resref for this is the "template" referred to in upcrystals.2da. Additionally, the longmdlvar therein needs to point to the hilt UTI, which is j_juhsaber01 in this case. For future users, @Stormie97 will need to rectify this with an update to the mod. Fortunately, thanks to a handy tool by @VarsityPuppet, it's possible to fix this for anyone that has already installed the mod (at least for those on Windows). Grab the ZIP below and extract it somewhere. Copy the upcrystals.2da file from your Override folder, paste it into the extracted PATCHER folder. Run the BAT file and follow the prompts and it will patch your 2DA with the corrected values. Copy and paste upcrystals.2da back into your Override folder. Also make sure you grab the UTI and TGA from the FOR OVERRIDE folder and paste those into your Override as well. Stormie97_Juhani_Saber_Patch.zip