-
Content Count
55 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Blogs
Forum & Tracker Requests
Downloads
Gallery
Store
Calendar
Everything posted by R2-X2
-
View File Bastila rejoins at player level This script "fixes" the script that lets Bastila rejoin the player on the Unknown World temple summit: The script checks for the caller's level, and depending on that, you get a different one of the six Bastila UTC files joined as your new party member: Levels <= 15: Bastila level 15 (p_bastilla001.utc) Level = 16: Bastila level 16 (p_bastilla002.utc) Level = 17: Bastila level 17 (p_bastilla003.utc) Level = 18: Bastila level 18 (p_bastilla004.utc) Level = 19: Bastila level 19 (p_bastilla005.utc) Level = 20: Bastila level 20 (p_bastilla006.utc) The different Bastilas of course not only have a different level, but also more feats and force powers as the levels progress (appropriate change per level). The script however was called in a dialogue line of Bastila, which during that time is a level 18 Jedi Guardian, so it always selected the "p_bastilla004.utc". I believe the intention was however to have this scaled to the player level, to have a same-level Bastila rejoin the party. So I adjusted the script to check for the PC's levels rather than Bastila's (that are always 18). Now, I don't even recommend using this, and I won't be using it myself, as I feel that when Bastila joins you at level 18 that's better both for low, and high-level characters: At low level, the upcoming fights are going to be quite hard, so having a level 18 partymember should help you out a bit (especially since the other two Jedi will be unavailable at that point), and if you are at a level > 18, which is common if you did most quests, then having Bastila join at level 18 at least allows you to steer her remaining development very slightly with the two remaining levelups she'll get. (If she joins at level 20 there's nothing at all you can do anymore to adjust her rather questionable Dark Side build). But I wanted to put it up here for anyone who might find that little discovery interesting. Enjoy. Installation instructions: Put the file "k_punk_bastjoin.ncs" into your Override folder. Submitter R2-X2 Submitted 11/27/2024 Category Mods K1R Compatible Yes
-
Improved AI also has a version with this mod already included, it was updated recently so go re-download it if you downloaded before that. Due to how these mods work, they're not easy to combine without setting up scripting tools, so Improved AI contains a file that already has it merged and fully included - you won't actually need to install this one separately/in addition.
-
Version 1.0.0
21 downloads
This script "fixes" the script that lets Bastila rejoin the player on the Unknown World temple summit: The script checks for the caller's level, and depending on that, you get a different one of the six Bastila UTC files joined as your new party member: Levels <= 15: Bastila level 15 (p_bastilla001.utc) Level = 16: Bastila level 16 (p_bastilla002.utc) Level = 17: Bastila level 17 (p_bastilla003.utc) Level = 18: Bastila level 18 (p_bastilla004.utc) Level = 19: Bastila level 19 (p_bastilla005.utc) Level = 20: Bastila level 20 (p_bastilla006.utc) The different Bastilas of course not only have a different level, but also more feats and force powers as the levels progress (appropriate change per level). The script however was called in a dialogue line of Bastila, which during that time is a level 18 Jedi Guardian, so it always selected the "p_bastilla004.utc". I believe the intention was however to have this scaled to the player level, to have a same-level Bastila rejoin the party. So I adjusted the script to check for the PC's levels rather than Bastila's (that are always 18). Now, I don't even recommend using this, and I won't be using it myself, as I feel that when Bastila joins you at level 18 that's better both for low, and high-level characters: At low level, the upcoming fights are going to be quite hard, so having a level 18 partymember should help you out a bit (especially since the other two Jedi will be unavailable at that point), and if you are at a level > 18, which is common if you did most quests, then having Bastila join at level 18 at least allows you to steer her remaining development very slightly with the two remaining levelups she'll get. (If she joins at level 20 there's nothing at all you can do anymore to adjust her rather questionable Dark Side build). But I wanted to put it up here for anyone who might find that little discovery interesting. Enjoy. Installation instructions: Put the file "k_punk_bastjoin.ncs" into your Override folder. -
If it's done via additional dialog.tlk strings instead of in-uti texts, that should work in other languages. It's just that the texts in ut_ files or dlg files are language-specific, and will display as empty strings when the tlk file of the game installation has a different language setting. Adding new entries to the tlk that are referenced within the items (using TSLPatcher) would of course not translate the texts, but at least make them visible at all.
-
Hey, I noticed a problem with your mod: The included items have their names and descriptions baked in (sadly KotOR Tool does this automatically, I recommend using Holocoron Toolset instead), instead of referring to the dialog.tlk entries. This breaks the mod for non-English language game installations, which will not display anything but a blank field for the items. Hence I recommend using either Holocron Toolset or K-GFF and fixing the StringResRefs to refer to the IDs the original items did, and delete the in-item non-localised texts.
-
-
So I typically use duckduckgo for my searching, but it turns out that deadlystream is never in the search results, even when very specifically searching for it. Now, being aware, this isn't a problem for me since I can just use google for any searches relating to DS. But I could imagine that some people less familiar with the site and using these search engines (such as if using MS Edge where Bing is default) might be confused. But more interestingly, any idea on what causes this?
- 1 reply
-
- 3
-
So I was curious about columns in 2da files, and so far I can tell: You cannot add columns to the feat.2da in order to have custom feat lists/granted feats, when setting a featstable in the classes.2da for this custom list. The game will crash when leveling up/creating your character and clicking on feats. The addition of extra columns didn't seem to bother the other, vanilla feat tables though. They kept working fine. What you can do, is add new featgain or spellgain progressions. Extra columns in those files work fine, and will be correctly called if you specify a matching tag for them in classes.2da. Shame, the coolest stuff never works
-
-
I was just made aware of this mod, and that you are using my code for the repeating blaster attacks. Would have been nice if you had messaged me about it, but oh well, glad that I have inspired you on how to implement finesse. However, my code had a flaw, caused by scheduled scripts not persisting across some situations sometimes, such as savegames, party member changes or module transitions. Depending on how close your code is to mine, you might run into the same issue. I updated my mod a few days ago (after many years), where the issue has been fixed. You should probably check the new code (source and comments included in download just as before) and update your mod. Lastly, I'd appreciate it if you included in your description that the blaster attacks restoration is there because you included my mod (which I don't mind on principle, but I did state to ask me first) and provided a link to it, rather than just stating it as a feature of your mod and relegating me to a footnote.
-
I believe I encountered an issue with the UTI editor: When trying to add an OnHit property, the parameters are not correctly shown: Seen here is the attempt to add an OnHit stun effect - I can set the DC, but not the duration and chance. (The additional DCs ("SK" in my localisation) were added by me and work flawlessly.) When instead editing a holdout blaster and its stun effect, the parameter values are shown correctly: And when editing the stunbaton 2, the DC settings are instead broken: I know this worked fine in KotOR Tool, but I would prefer being able to correctly edit these files in Holocron Toolset if possible. Any ideas?
-
After far too long (years), I finally released an update to my Repeating Blaster Attacks Restoration mod. This fixes a bug that could cause your party members to get locked out of the bonus due to scheduled scripts not executing after a party change, module transition or savegame. It's a complete rewrite and should be very stable now. So if you were using the mod before, or considering it, I'd encourage you to update to the new version.
-
I found a different workaround. By adding an effect that can be checked for, but that does not seem to have any actual impact (and if working as intended, an absolutely miniscule one), I can check for the effect and prevent re-application after all. The effect in question being EffectMissChance with a value of 1 (meaning 1%) - which is actually incorrectly detected as "EFFECT_TYPE_CONCEALMENT", but alas that works anyway. I also checked, it does not clash with disguises being worn or stealth being active. Still it's really ugly, a shame I didn't find a better way. I wish we had some reverse engineer geniuses that patched the engine, like other lucky games found over the years. Thanks! Not just in combat. k_ai_master is run for basically everything. All the OnDefHeartbeat, OnHenHeartbeat etc. just call k_ai_master with the parameter of their respective portion (switch case) of the solitary function in k_ai_master.
-
Ahh Discord servers, where useful information goes to die Thanks, I'll see what a search through the server can yield. And damn, very unfortunate, so that's off the board anyway. Do you know by chance which local booleans are used or available in KotOR 1?
-
I'm thinking to perhaps run a cycle through a LocalNumber. I'd been trying not to do that because I was mislead by nwscript info saying there's only a range of 0 to 0, implying only one LocalNumber available, but it seems to be incorrect. However, information on what LocalNumbers are available is hard to come by, especially for KotOR 1. Edit: Actually, that just ends up at the same problems as a boolean again anyway.
-
Yeah, kind of. It's a really strange issue I haven't encountered in other programming situations, since the NSS scripting in KotOR is extraordinarily limited even in its most basic parts compared to writing ordinary code. I have not tested non-party NPCs, though I assume they would be impacted by saves or module transitions of the player the same way.
-
So the extra attacks effect is listed as "Invalid Effect" by the game, returning a 0. Great. I think globals wouldn't work, since the effect should apply to both party members and generic NPCs, so an arbitrary number of variables would need to be saved. @Salk Basically, I cannot control how frequently this gets called. I need it to be called at some point, but there isn't really a "game started, initialising" script to hijack. So k_ai_master is the best place, since that one runs for everyone. However, here we run into problems: I need to define a duration for the extra attacks effect. But I cannot know when the function will be called again, and the buff effect can stack with itself if applied before the previous ran out. So what I previously did, was to have the script do some things: - Set a local boolean (on the character) that will be set when the buff is applied, in order to not re-apply the effect when it has already been placed. It will only evaluate the other conditions if this one is set to not already on. - Call itself precisely after the buff expires, and knowing that the buff has expired, ignore the boolean when running this way. - Set the boolean back off when the script is being evaluated and no more repeaters detected. This works fine when you are within a module and don't change the party. However, when changing a module or party member, you can run into an issue: The boolean will be on the "buff present, don't run again" status, which usually isn't an issue since the cycle of re-checking itself has been started. But this scheduled execution of the function can get lost during module/character change, causing the boolean to stay stuck on the blocking status because the script that would repeat the evaluation and either restart the buff cycle or reset the buff to "off" when detecting different weapons never executes. It might just be a logical puzzle I haven't solved. But what I'm seeing are the following constraints: - 1. I have a script that gets called a random amount of times over a random span of time. - 2. I can set a local boolean for a character which may randomly be 0 or 1 by the time the script first runs (e.g. after a scene transition, savegame load, etc.) - 3. I only ever want one stack of the effect active, but the effect will stack with itself if called again before expiry. - 4. I cannot detect if the effect is active, nor can I remove it via script. -> My thought was to initiate a recursive script call cycle that is separate from the unreliable heartbeat / AI script runs. But I don't see a way to safely establish this in a way that persists across modules/savegames/party changes due to constraints 1 and 2.
-
Checking a local boolean is exactly what the current version of the mod script does - which appears to work fine on the PC, but on other party members it will reliably break under certain unequip/save/load circumstances, which is why I want to get away from it. That looks really helpful, yes! Can I use it without the community patch? I'm playing on a non-english language and the handful of bugs in K1 have never bothered me enough. Edit: Ah and regarding not checking NPCs, yeah I'd put the baseitem check before the effect check. Now that said, the effect check hasn't worked for me yet, but I'm not done trying yet.
-
Ah, this is unfortunate. So I can't even find a value via trial-and-error, since it might be different on someone else's device. Sadly my go-to program (RivaTuner Statistics Server) won't detect KotOR and so I can't limit the fps that way. Because sadly this code here does not appear to work: RemoveEffect(oCheck, eRepAtk); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRepAtk, oCheck, 4.5); The effect will never correctly be removed it seems, so the ApplyEffect just stacks the effect instead. And I haven't seen a "GetHasEffect" condition in the scripting functions either, sadly. I'm not sure if iterating through "GetNextEffect" every 3-6 seconds for every character on a given map would be very reasonable (I'll now proceed to test if it works in the first place). It should not be a very demanding operation, but with this engine... Any ideas/recommendations?
-
So I am finally getting around to fix a long-standing bug in my little repeating blaster attacks restoration mod. Due to the previous implementation having an issue with variables malfunctioning upon area transfer and savegame loading (and the script admittedly not being very well written), I have decided to go back to a more simple implementation: Call it on every OnHeartbeat, and add the bonus for the duration of the heartbeat cycle if the weapon baseitem is correct. Now common knowledge is that the OnHeartbeat runs every 6 seconds. This is definitely incorrect, since when applying a buff that lasts for 6 seconds, it will quickly be applied twice and stabilise on that level. So I tried 3 seconds, and could observe that the bonus was never stacked, but had a short window of not being applied. This window varies from cycle to cycle but is below one second. So I would assume the OnHeartbeat runs every 3 to 4 seconds, but not regularly - or the application of effects that happen in the OnHeartbeat script only happens at certain intervals that don't perfectly line up with a say 3 or 4 second cycle. Does anyone by chance know more about this? Edit: When setting the bonus duration to 3.75, the bonus is mostly applied one time, as it should, but there are both times where it is not applied, and times where it is super briefly applied twice. Most confusing.
-
Hi, R2-X2 here, I will get to this soon hopefully. Was pretty busy the last years and had the mind elsewhere (though it was always in the back of my head). But I think it can be fixed by coding it more crudely, merely using the OnHeartbeat and probably less than half the code, which would have the negative effect of allowing for weapon switches to malfunction for a few seconds (granting an extra attack still or not granting one for a moment), but I guess unless you actively try to game the system, that shouldn't be an issue.
-
I can't seem to find a way to reliably have the script run the way I intended it. Will probably make it a 6-second buff triggered by the OnHeartbeat function, which runs every 6 seconds, as far as I am aware. This would cause more latency when it comes to changing weapons, but that's probably something that can be endured. How often do people switch their weapons anyway... As for not working together with force speed buffs, I have no idea what could cause this. I'm creating an entirely different effect that has one effect of the same type. Maybe there's something hardcoded in the game that prevents two sources to this effect from being active at the same time.