AmanoJyaku

Members
  • Content Count

    243
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by AmanoJyaku

  1. I have TSL from Steam and installed TSLRCM from DeadlyStream two months ago without any problems. AFAIK, the only way to get the Workshop version is to install it from the Workshop. You have the regular version if you downloaded a Windows installer from here, and the installer should be pointed at the Steam directory Kaidon Jorn posted.
  2. I have zero modding experience, so I cannot say for certain the following is correct: The same trigger that starts the dialog with the thugs (exchthugs01.utt) is the same trigger that checks if they're dead. When you enter the trigger it will initiate the conversation (tr_exch_thugs_01.ncs). When you exit it checks to see if they're dead (tr_exch_thugs_ex.ncs). If they're dead the quest updates (journal entry "InterGRU"). There's also a global number that should be updated (302NAR_ExchThugs_01), but it's not listed in @Hassat Hunter's globals thread so I don't know what it does. So, you just have to enter then exit the trigger. I have no idea how big it is, I don't know how to read the coordinates.
  3. You're correct that checks against strength, persuade, and credits prevent you from killing the guards on entry. However, since I just arrived on Nar Shaddaa I tested by leaving the guards alive and going straight to Saquesh. Killing him turns the guards hostile. Killing them and then running to the exit updates the quest. You're not crazy, I've seen the "bug". But I don't don't believe it's a bug, we simply don't know what triggers the update. If you want I can investigate the game files to figure out exactly how this quest is updated and PM you the results.
  4. Zelda said they killed the guards and still couldn't complete the quest, leading them to believe the "Intergalactic Reunification" quest is bugged. You do not have to make a dark choice to kill the guards on entry. Don't ask about Lootra, tell them you can't pay the toll, and they'll attack you to try and steal your stuff. OTOH, if you leave them alive and kill them later you just have to run back to Aaida. When you enter the module take the path to the left, there is a trigger somewhere between the module entrance and the ramps leading down to the refugee area. I don't know if there is a trigger for the other two entrances from the Serocco territory, so that may be something to add in a future update.
  5. Reached level 32.

    Went to Fassa to finish the pylon quest...

    ... He doesn't give you quest rewards once you're past level 25.

    *sigh*

    1. Thor110

      Thor110

      So much in this game needs fixing! I have taken note of it but I expect someone else will get around to fixing it before me.

    2. Mephiles550

      Mephiles550

      Do you not get any rewards if you just use the energy cell from the Ithorian nearby?

    3. AmanoJyaku

      AmanoJyaku

      @Mephiles550

      Fassa doesn't reward you for fixing the power distribution. You can get XP, but only if you choose the right option (computer skills) and do it in the right order (fix the power before speaking with Fassa or Lasavvou).

      Fassa only rewards you for prioritizing the freighters, and it's based purely on your level.

      I suspect the rushed development is what led to this. I don't blame Obsidian, I blame LucasArts for every obstacle they put in place (short development window, tiny budget, no access to K1 information, etc...)

    4. Show next comments  6 more
  6. The code is written to the log, yes. But as Zelda said, older entries get flushed. There needs to be a way to retrieve the updated code/count, or have the value written to the journal with a message about subtracting the number of droids you had to kill. Then I guess I'm lucky, because I just completed 1.5. What about 1.5 "doesn't work"? Yes, unnecessary hostility is a problem. It's the reason I backed off after attempting to help with another of Zelda's requests, and put them on ignore after they filled several threads with dark side points and/or nasty posts. I come here to have fun, and watching the members be antagonized is not fun. I can't speak for @Malkior, or even pretend I've read and remembered all the rules. But from what I've seen when a mod has a bug thread that's where the bugs are filed. There is a bug thread for M4-78, Zelda's comments probably belonged there rather than here.
  7. You may want to reread the thread. I answered before you purchased the digital copy. You replied with hostility for no reason. And then you did as I suggested and purchased the digital copy. "Not helpful, not helpful at all." But don't worry, I won't be replying to you on this or any other topic. Based on your other posts and reactions you're quite difficult.
  8. It wasn't obvious to me because I couldn't think of a reason why anyone would want to play a version that is inferior. So, I just assumed the Aspyr version was released on disc at some point. But you confirmed that never happened, so you want to play the inferior version. Never heard of the Collection release. What is it? As for the Aspyr update, I mentioned it specifically because you wouldn't need to recover files from scratched CDs. The digital copy would also bring you the most bug fixes and compatibility, so it's the superior option in almost every way. I'm not dismissing anything. You aren't getting any patches for the official CDs from a trustworthy source. The only source was through the LucasArts downloader that has long since stopped functioning. Which leaves fan patches and mods. Except, even those are often designed to work with specific versions of the games. What I was attempting to do was encourage you to use a version that is less likely to have compatibility issues with a modern OS (e.g. Win10) and mods (e.g. TSLRCM). Regarding bugs, I was referring to those still in the original game even after the last official patch. I have perfect original CDs of KoTOR and TSL, and yet I purchased digital copies rather than spend time searching down all of the fan-made patches. Why? Because the Aspyr versions have fewer bugs and tweaks for modern hardware. I know, I've tried patches and mods with varying degrees of failure. ("Flawless" Widescreen...) It's your computer, feel free to do whatever makes you happy. Just try not to crap on people when you ask for help, because next time they won't.
  9. Are these copies of the original game released in 2004? Because I don't think the update released by Aspyr was released on disc. Bugs are reason enough to avoid the original game, in addition to missing technical enhancements such as 1080p resolution.
  10. If you have this much experience and you're still struggling that would explain why someone told you to give up (if that's even true). You may be overestimating your capability, or attempting too much. But, I see no reason why you've been asking for the help you have when there are so many solutions available from people who ran into the same problems. For example, I also had the issue with KoTOR Script Tool that you encountered. So I just stopped using it and directly used nwnnsscomp, and haven't had any problems since. At some point you have to become self-sufficient. If you need help it shouldn't be because of old problems. It should be because of things no one has ever seen (I found a bug in nwnnsscomp, now I may have to write a replacement for it), or because the project is too large for one person to complete in a reasonable time frame (for example, TSLRCM). tl;dr Learn to use a search engine, and try things before you ask for help.
  11. It sounds like you're trying to do too much. I can learn NWScript in a few days because I have years of experience writing scripts and programs. It doesn't seem like you have any scripting or programming experience, so it will take you months of dedicated practice to learn how to write scripts. Afterward, you will need to learn the basics of the files that make up the games. You also need to accept that other modders have lives of their own, they don't always have the time to help you. Lastly, you need to learn to listen. I tried to help you with your scripting and you didn't follow my instructions. I gave you a numbered list so you could start from step 1 and you failed to follow it. That might be why so many people ignore you.
  12. In other words, everything SithHolocron said is true? From my experience people are willing to help. If everyone is mean to you it's because you're doing something no one likes. Maybe you aren't reading the tutorials on the site and the internet. Maybe you aren't giving people time to reply. Maybe you're asking too much all at once. I don't know what it is, but no one else seems to have this problem.
  13. So, if you were level 20 when you added her she could be leveled up to 17 immediately?
  14. Is she trainable as a Jedi? If not, the Wisdom attribute is a waste. Also, how likely is she to get to level 20 if you obtain her at level 1 so late in the game?
  15. The continue statement is as old as the C language NWScript is derived from. It exists in K1, and probably NWN, it simply was never used. Another example is do-while; there is only one script out of 2,600+ that has a do-while statement. I haven't seen the ternary operator, the const keyword, or the bitwise operators, either.
  16. So, I finally discovered a bug in nwnnsscomp... I think. The purpose of a reverse compiler is to recreate the syntax of the high-level language. This can only be accomplished if we understand statements, expressions, and values. Statement: HK-47 is ready to serve, master. - HK-47 If you care for others, then dispense with pity and sacrifice and recognize the value in letting them fight their own battles. - Kreia Battle is a pure form of expression. - Handmaiden So, what's all this got to do with nwnnsscomp?
  17. I installed 1.8.6 on Windows and the loading screen says 1.8.5, as well. I'm guessing it was never updated, because the included Read Me file is versioned 1.8.6.
  18. The Bad Batch is turning out to be a bad batch. It's a shame, because it started off great.

    1. LDR

      LDR

      Yeah it's definitely been meandering as of late.

  19. As I said, you will not be using KotOR Scripting Tool. You will use a text editor like Notepad to write your script, and nwnnsscomp to compile the script. KotOR Scripting Tool is just an interface to nwnnsscomp. But, it is a broken interface because the version of nwnnsscomp it's designed for doesn't work. The reason KotOR Scripting Tool won't work with the good version of nwnnsscomp is because it sends options to nwnnsscomp that only work with the broken version. (Specifically, -g, which tells the old nwnnsscomp to compile for either KotOR1 or TSL.) Once again, the instructions for PowerShell: In Explorer, create a directory with nwnnsscomp and all of the NSS files from either KotOR1 or KotOR2 In Explorer, place your new NSS file, named <filename.nss>, in that directory In Explorer, use the File menu to open PowerShell In PowerShell, type .\nwnnsscomp -c <filename.nss> If you prefer to use the Command Prompt, you will have to open it in the Windows Search Bar. Then type cd <path>, where <path> is the directory that holds nwnnsscomp.exe. The only advantage to using Command Prompt is you can leave out the .\ when running nwnnsscomp. To summarize, stop using KotOR Scripting Tool.
  20. From the link: But, you probably want to open PowerShell in the directory that has nwnnsscomp, so: In Explorer, open the directory that has nwnnsscomp Go to File Select Windows PowerShell Select Open Windows PowerShell Make sure your script is in the same directory, along with the nwscript.nss file. Then type nwnnsscomp -c <filename.nss>. If your script uses include files they will need to be in the directory, as well. Nwnnsscomp defaults to checking for nwscript.nss and does not allow you to specify the file with the functions. This prevents you from putting both games' NSS files in the same directory. I have two directories on my computer, one for KotOR1 and another for KoTOR2. Each has a copy of nwnnsscomp, along with every NSS file that comes with each game.
  21. What I meant was you need to download TSLPatcher1210b1.7z to get the version of nwnnsscomp that works, it's different from the version included in KotOR Scripting Tool. Nwnnsscomp is a command line tool. You will need to open PowerShell to run it: https://docs.microsoft.com/en-us/powershell/scripting/learn/ps101/01-getting-started?view=powershell-7.1 Alternatively, you can run it from the Command Prompt. Just follow the instructions in the link above and replace "PowerShell" with "Command Prompt".
  22. The problem is nwnnsscomp.exe. Download this one (TSLPatcher1210b1.7z) : You'll have to use a normal text editor to write your scripts, then run nwnnsscomp.exe from PowerShell or the Command Prompt.
  23. I wrote my first NWScript in order to test the findings from the previous post. The script: I specifically chose to add a single local variable and return a vector (struct of three floats) to prove the results. Let's break down the test subroutine: Part 1 is where the local variable I is declared and initialized. Part 2 is where the vector is returned. Part 3 is where things get interesting. Part 3 (Original) clears the local variable. Part 3 (New) clears the return values and local variables. Since Part 3 (Original) is not removed there is a jump over it in Part 3 (New). That jump is followed by the compiler quirk, the MOVSP that clears the last expression from the stack. That expression is the result of GetPositionFromLocation(), a vector. It's good to finally understand this weird JMP/MOVSP business, but this is awesome for two other reasons. The first is code analysis can be simplified to look for this JMP/MOVSP combination, it's no longer necessary to calculate stack changes for each op code in order to determine if a subroutine returns values. This eliminates the majority of bugs. It's also faster, but that's not as much of a concern. The second reason is it fundamentally changes the reverse compiler construction. I'll explain more in an upcoming post, but the tl;dr is it's now possible to find the beginning and end of statements! Notice a pattern? 🤔
  24. "Might as well jump!" - Van Halen The last update mentioned the mystery of the unconditional jump at the end of a subroutine, and explained it's a return statement. Let's look at it in a bit more detail. 7054 CONSTS [ 7059 CPTOPSP -4 1 7067 ADDxx 7069 CONSTS ] 7074 ADDxx 7076 CPDOWNSP -6 1 7084 MOVSP -4 7090 JMP 7108 *7096 MOVSP -1* //Dead code *7102 MOVSP -3* //Dead code 7108 MOVSP -1 7114 RETN Why is this happening? It's the result of the compiler building the subroutine in stages. Let's separate the op codes into subroutine Parts: Part 2 7054 CONSTS [ 7059 CPTOPSP -4 1 7067 ADDxx 7069 CONSTS ] 7074 ADDxx 7076 CPDOWNSP -6 1 Part 3 (New) 7084 MOVSP -4 7090 JMP 7108 7096 MOVSP -1 Part 3 (Original) 7102 MOVSP -3 Part 4 7108 MOVSP -1 7114 RETN Oho! This subroutine returns a value (Part 2), clears local variables (Part 3), and clears arguments (Part 4). But, why are there two Part 3's? Top to bottom, the stack looks like this: Temporary return values Local variables Arguments Return values The compiler first writes the code for clearing the arguments (Part 4), which is easy because there is a fixed number. Then, it writes code for clearing the local variables (Part 3 - Original). In the example, the subroutine has 3 local variables. Next, the compiler calculates the number of values returned in Part 2 and adds that to the number of local variables. The result is 3 + 1. The compiler does not remove the original Part 3, so it's necessary to jump over it (Part 3 - New). So, why is there a MOVSP after the jump? As far as I can tell, it's a quirk of the compiler. Part 2 returns a value by evaluating a set of expressions. The result is then copied down the stack past the arguments. The result is then cleared in the new Part 3. However, the compiler inserts a MOVSP after the jump that would have cleared the result of the last expression. That leaves us with two MOVSPs that are jumped over: one to clear the local variables, and one to clear the last expression (in this case, the return value). I'm rewriting my code to take advantage of this. Instead of calculating all of the changes made to the stack in order to find the subroutine signature, it could be easier to look for a jump and evaluate the code around it. The question is how to handle subroutines that don't return values, and therefore lack the jump... This newfound knowledge is useful for another reason: I now know how to properly analyze switch statements. More in a future post.
  25. I just ran it again and did not receive any .Net errors this time. Strange... The only advice I can give is to add the paths to KoTOR to the registry, then right-click kotor_tool and choose "Run as administrator". You may want to reset the compatibility mode since it doesn't seem to be necessary. And .Net 1.1 doesn't seem to be necessary, either. AFAIK, there isn't much that can be done. It either works or it doesn't. Link for adding paths to the registry: