DarthParametric

Modders
  • Content Count

    4,568
  • Joined

  • Last visited

  • Days Won

    514

Everything posted by DarthParametric

  1. Yes, a decompiled NCS will never exactly match the original source. That's impossible. The more extensive and complex the code, the greater the difference will be. What you will also be seeing is a heap of stuff from the includes that are only referenced in the source, but have to be pulled in for the binary script. A single function in the original source like GN_DetermineCombatRound(); will probably result in several hundred lines of added code in the decompiled source. Giving the 3rd party script a cursory once-over, it looks like he has completely removed events KOTOR_HENCH_EVENT_ON_PERCEPTION (2002), KOTOR_HENCH_EVENT_ON_COMBAT_ROUND_END (2003), KOTOR_HENCH_EVENT_ON_ATTACKED (2005), and KOTOR_HENCH_EVENT_ON_DAMAGE (2006).
  2. There's always interest. Progress is just gated by the tools so it gets put on the backburner.
  3. Btw by donate I assume you mean buy a premium account? That's all I can see rather than an actual donation option.
  4. Perhaps you should have a more prominent option for people to donate? Maybe some sort of benefits? Cosmetic DLC?
  5. You don't need to decompile most global scripts (like k_ai_master) as their official source can be found in scripts.bif (in KTool BIFs -> scripts.bif -> Script, Source).
  6. Ah, well there you go. I probably should have dug a bit deeper. But the proposed approach may still prove useful for other use cases.
  7. Search for CM_Baremetal.tga/.txi/.tpc in your Override folder. Delete them.
  8. In the same DLG. I'd run it on a prior node though so it is already set beforehand. The logical choice would be whatever the starting node is, or one directly afterwards. Although maybe the tokens are set in the save? The ones in k_con_tokens don't appear to be set every time after all.
  9. Not by default in K1 I don't believe. However, you could script it using a custom token object oPC = GetFirstPC(); int nSex = GetGender(oPC); if (nSex == GENDER_FEMALE) { SetCustomToken(666, "her"); } else { SetCustomToken(666, "him"); } Then your TLK line would be something like I am no longer <CUSTOM666> now. I'm not sure what the upper bound of custom tokens is though. You can check k_con_tokens for vanilla ones. Look like they go up to at least 45, so you'd need to be above that.
  10. Just be aware that only Trimeshes can be Danglymeshes, not skinned meshes. If it is currently part of the head you'll need to split it out to a separate mesh.
  11. The boxes are the constraints for each vertex with a weight greater than zero. You're best to switch to the "scaled by weight" option. You can select a vert or group of verts and hit the "read values" button to see what their individual weights are. You can also weight selected verts with the options in the top half of the tool's panel (the options are similar to skin weights, either relative or absolute). As you can see, only the lower two rows of verts in her topknot have any weighting, so it's almost imperceptible in-game. I would guess that was done to prevent clipping into the back of her head/neck, since there is no collision. With your more vertical hair mesh, you could have more of it with weighting, just probably reduced in magnitude (or dial down the global Flex value in the modifier's base settings) since it is much closer to the back of the head.
  12. KOTORMax has a built-in tool for it, although as I recall it incorrectly sets a minimum weight of 1, whereas your anchor points need a weight of 0 to be static. I don't think there would be any practical way of doing it in Blender. Although it's ultimately just vertex painting, so you might be able paint it in Blender and then export it as an FBX or something to get it in to Max.
  13. Make sure you look at other hair danglymeshes so you can add a bit of life to that topknot. I don't think her vanilla one uses it.
  14. My standard policy is that any time someone asks when something is coming out, I delay it for another 12 months. So thanks for taking the pressure off. See you in 2020.
  15. You'd have to add a CD version registry entry pointing to the GOG install: https://deadlystream.com/topic/4568-kotor-tool-wont-work/?tab=comments#comment-47386
  16. Presumably you were right on the cusp of folder depth with the first one, and the extra length of M4-78 put it over the edge. Google "Windows MAX_PATH" if you want to know more.
  17. Then in that case, where are you installing from? What is the full path of where the installer is located?
  18. Where are you trying to install it to? Some Steam Workshop directory buried deep under a bunch of sub-directories?
  19. You'll typically also want to set a boolean on the trigger, or destroy it after it has triggered, assuming it is intended to be a one-and-done event. Alternative options include checking the creature or object that is assigned the conversation for a boolean, or checking a global boolean/number, as appropriate. Here's one example: #include "k_inc_utility" int HasNeverTriggered() { int bReturn; if (UT_GetPlotBooleanFlag(OBJECT_SELF, SW_PLOT_BOOLEAN_01) == FALSE) { bReturn = TRUE; UT_SetPlotBooleanFlag(OBJECT_SELF, SW_PLOT_BOOLEAN_01, TRUE); } return bReturn; } void Main() { object oDLGOwner = GetObjectByTag("DLGOwner"); object oEntering = GetEnteringObject(); if (GetIsPC(oEntering) && HasNeverTriggered()) { AssignCommand(oDLGOwner, ActionStartConversation(GetFirstPC(), "DLGString")); } } You can also cut out the middle-man and just do it like this: void Main() { object oDLGOwner = GetObjectByTag("DLGOwner"); object oEntering = GetEnteringObject(); int SW_PLOT_BOOLEAN_01 = 0; if (GetIsPC(oEntering) && !GetLocalBoolean(OBJECT_SELF, SW_PLOT_BOOLEAN_01)) { SetLocalBoolean(oTarget, OBJECT_SELF, SW_PLOT_BOOLEAN_01); AssignCommand(oDLGOwner, ActionStartConversation(GetFirstPC(), "DLGString")); } }
  20. TSL allows for upgrades like underlays. There might be some buffs in the upgrades you can't normally use for robes that you could add as base properties. Also look at what the other named robes do for ideas.
  21. Should be a bunch of separate items as I recall. That's why she comes up with that "talk to me if you want to refocus it" crap. They need to destroy the one you have and give you a new one.
  22. They do, I just switched the menu via an ini edit on a LS save to get the screenshot. The player menu will load whatever the appearance of the current "player" is (so should be HK during the droid factory, etc.).
  23. Yeah I'm aware of it. It irks me every time I go through the training sequence. It's not something we'll bother with for 1.8, but you should add an issue for it and maybe we'll deal with it in 1.9. I've never looked at it in sufficient detail to know offhand if it could be alleviated with a simple starting conditional and an added node or two, or whether the whole DLG would need to be rebuilt (which is a serious pain in the ass).