DarthParametric

Modders
  • Content Count

    4,567
  • Joined

  • Last visited

  • Days Won

    514

Everything posted by DarthParametric

  1. Don't use the TSLPatcher.exe from there or that will break some modules due to the filename bug (same bug ERFEdit had at one point). Use the exe included with K1CP instead. Although at a quick glance there shouldn't be any problem with 702KOR specifically. Also note that if you want to compatibility for M4-78, they replace the Academy with a whole other module (703KOR I believe?), so that will require a separate patch.
  2. The texture is PLC_map01. There is no "glass", not unless you are using a modified version of the placeable (PLC_EndS.mdl/mdx). The vanilla placeable is just a simple double-sided plane using self-illum and a tiny bit of mesh alpha with a texture that has an alpha mask and the blending additive TXI semantic.
  3. You could leave it on the human rig and just do a local talk override animation to get a suitable amount of snout movement. How much does the vanilla one move anyway?
  4. I assume you are going to swap to the standard human rig? Doesn't seem to have the giant-sized hands of the KOTOR model.
  5. Well you're the one that has decide that, since you made the request. But from my own perspective it looks fine to me. It's not something I have ever noticed in-game personally, although I don't use those sorts of reskins as a general rule, so I don't know how obvious it is with the vanilla texture.
  6. Given how uniform it is, I would suggest that was a deliberate choice.
  7. @Frykas: Per your stated permissions, we've incorporated the relevant elements of your mod into K1CP, with attribution to you (and mention of the OP on the Obsidian forums). More info here.
  8. So I created a thing:

    https://github.com/DarthParametric/KOTOR_Registry_Install_Path_Editor/releases/latest

    Screenshot.png.cbd779b3e245e0448813f6ef8f295e86.png

    Hopefully it should help with those struggling with install path registry edits. Simply download the CMD file and double-click it to run it. Alternatively, you may need to right-click on it and choose Run As Administrator. The script will scan the registry looking for any install info for the CD, GOG, and Steam versions of both games. If it finds them it will display the listed install path currently stored in the registry. You can choose to edit the CD version's key using the install path of either the GOG or Steam versions (assuming they exist on your system), or create the CD registry key with that info if it doesn't already exist.

    If anyone has an alternative version of either game, say from Origin or some other store, I'd be interested in finding out what registry keys those versions use so I can add them to the script.

  9. It's very much not recommended for people to be using in-progress builds, and the repo is deliberately set up to prevent you simply downloading it directly as an archive as a safeguard against doing so. If you insist on it however, then you'll need to learn how to use Git to clone a repository locally: https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository We do not offer support for this, so if you have questions you'll need to Google it.
  10. TSLPatcher's registry lookup only works for the registry keys of the CD versions of the games. Look at the threads about adding those keys for KTool for how to add them. For example here. In the [Settings] section at the top of changes.ini you need to set LookupGameFolder=1 to enable a registry lookup and then either LookupGameNumber=1 for K1 or LookupGameNumber=2 for TSL.
  11. That is the Aspyr version. Roll back to the prior unmolested version. Not sure if/how you do that if you are using Galaxy. Check the official GOG forum.
  12. You might need to screencap the messages window. And the branch/node in DLGEditor.
  13. P2 is the righthand tag offset, i.e. the suffix length. It's the number of characters that GetStringRight will count back from the end of the string you feed it (the tag of the current item in the player's inventory in this case). Then with sEnd == sDLGTag you check that fragment against the suffix string that you feed into the String Param field (e.g. _scheme). P3 is being used as a minimum string length check for the item's tag via GetStringLength(sTag) > nDLGInt3. It's probably not strictly necessary, but I figured it was worth adding as a safety cutout since I don't know what happens when you feed a string to GetStringRight that has fewer characters in total than the count you give it. I assume it returns a null string, but I'd have to test it. You can try this version which will pipe some debug info to the message screen if you want to see what it is doing: int StartingConditional() { object oPC = GetFirstPC(); object oItem; string sTag; string sEnd; string sDLGTag = GetScriptStringParameter(); int nDLGInt1 = GetScriptParameter(1); int nDLGInt2 = GetScriptParameter(2); int nDLGInt3 = GetScriptParameter(3); int nDLGInt4 = GetScriptParameter(4); int nDLGInt5 = GetScriptParameter(5); SendMessageToPC(oPC, "========== SCRIPT DEBUG =========="); if (GetHasFeat(nDLGInt1, oPC)) { SendMessageToPC(oPC, "Player has feat ID " + IntToString(nDLGInt1)); oItem = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItem)) { sTag = GetTag(oItem); sEnd = GetStringRight(sTag, nDLGInt2); SendMessageToPC(oPC, "Current item tag = " + sTag); SendMessageToPC(oPC, "Tag suffix = " + sEnd); if (GetStringLength(sTag) > nDLGInt3 && sEnd == sDLGTag) { SendMessageToPC(oPC, "Item tag contains suffix " + sDLGTag); return TRUE; } oItem = GetNextItemInInventory(oPC); } } return FALSE; } Note though that the message window buffer is pretty small, so if you have a gazillion items in your inventory you'll likely miss a chunk of it since you won't be able to scroll back far enough.
  14. Well the feat check is not going to work for the PC in the current script (either yours or mine) since OBJECT_SELF will be the DLG owner. For TSL, yes, you can use GetScriptStringParameter to grab a string and GetScriptParameter to grab up to five ints. You could try this: int StartingConditional() { object oPC = GetFirstPC(); object oItem; string sTag; string sEnd; string sDLGTag = GetScriptStringParameter(); int nDLGInt1 = GetScriptParameter(1); int nDLGInt2 = GetScriptParameter(2); int nDLGInt3 = GetScriptParameter(3); int nDLGInt4 = GetScriptParameter(4); int nDLGInt5 = GetScriptParameter(5); if (GetHasFeat(nDLGInt1, oPC)) { oItem = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItem)) { sTag = GetTag(oItem); sEnd = GetStringRight(sTag, nDLGInt2); if (GetStringLength(sTag) > nDLGInt3 && sEnd == sDLGTag) { return TRUE; } oItem = GetNextItemInInventory(oPC); } } return FALSE; } That would let you specify the tag string fragment, the feat ID, the minimum tag length, and the tag fragment length all in the DLG. Like this:
  15. Try this: int StartingConditional() { object oPC = GetFirstPC(); object oItem; string sTag; string sEnd; if (GetHasFeat(245, OBJECT_SELF)) { oItem = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItem)) { sTag = GetTag(oItem); sEnd = GetStringRight(sTag, 7); if (GetStringLength(sTag) > 8 && sEnd == "_scheme") { return TRUE; } oItem = GetNextItemInInventory(oPC); } } return FALSE; } Since it is using OBJECT_SELF, I assume the GetHasFeat is checking a companion?
  16. It's load_legal.tpc which is in both the Xbox and PC versions. Might have been an early version of Legal.tpc. Seems like the sort of thing you'd fancy up late in development.
  17. You might want to consider some sort of version control-based backup system (e.g. Git, SVN, etc.). You could do it locally, or via somewhere like Github using a private (i.e. non-public) repo.
  18. The log file indicates that you are trying to install the mod over the top of an existing K1CP installation. DO NOT EVER DO THIS. You must always start with a completely clean fresh installation. Since you are obviously using the Steam version, go into the game's folder (C:\Steam\steamapps\common\swkotor in your case) and delete the Override and Modules folders. Then in Steam, right-click on the game's entry in your library, select Properties, Local Files, and click the "Verify integrity of game files" button. Then start the entire mod installation process from scratch, including replacing the exe and patching it for widescreen, assuming you were doing that (in which case you probably just want to save a backup of the patched exe first).
  19. Can't say I can recall seeing that error before. Attach the whole log file.
  20. There are shirtless underwear models (and fully nude models) on Nexus. There's also redrob's player and party underwear models for TSL. You'd probably have to kit bash some of those to get exactly what you want.
  21. Zip up your save/s and attach the file. This is why the game explicitly tells you: "Save often, and in more than one slot".
  22. Sounds like a recurrence of this issue here, which neither I nor the original author were able to reproduce in subsequent testing. Based on other similar cases elsewhere in the game, I believe this is caused by excessive clicking when a script is trying to execute, causing it to terminate prematurely. You can download a revised copy of the script and put it in your Override folder. Note that this won't help you fix an existing sequence break, but hopefully it should prevent it reoccurring if you load an earlier save and try again.
  23. I've heard of this problem once before. Are you using the K1 Community Patch?