-
Content Count
4,626 -
Joined
-
Last visited
-
Days Won
523
Content Type
Profiles
Forums
Blogs
Forum & Tracker Requests
Downloads
Gallery
Store
Calendar
Everything posted by DarthParametric
-
The only route would be via making them disguises, but that's a pain in the ass for separate bodies and heads.
-
JC's Cloaked Jedi Robes & Supermodel Port for K1
DarthParametric commented on JCarter426's file in Modder's Resources
-
JC's Cloaked Jedi Robes & Supermodel Port for K1
DarthParametric commented on JCarter426's file in Modder's Resources
-
The vanilla game only uses RIMs for module files (and ERFs for DLGs in TSL). Any MOD files there are from whatever mods you have installed. The only place the vanilla game uses MOD files is in the Lips folder.
-
It's not that they can't be fixed, it's that I personally can't be assed to fix them because I don't give a toss about TSL (not because of bugs - I just don't like it period). K2CP is @JCarter426's baby, and he was AWOL for the last 12 months or so, hence why it hasn't been updated recently. Edit: To clarify, TSL is fundamentally broken narratively, and that indeed can never be fixed. TSLRCM scratches around at the edges of it, but you can never make TSL complete solely through mods. But that is not the purpose of K2CP, so it's not particularly pertinent to this discussion.
- 6 comments
-
- 1
-
-
- compilation
- fix
-
(and 4 more)
Tagged with:
-
TOR Ports: Kira Carsen Female Player Head for K1
DarthParametric commented on DarthParametric's file in Mods
After having a look at it, it seems like it is the teeth meshes clipping through the face. They extend a lot further beyond the edges of the vanilla teeth meshes. Since they aren't skinned, there's nothing preventing them from clipping during extreme facial deformation. I made some adjustments and it seems to have cured it, based on some quick tests. Try the attached and see how it goes. K1_Kira_Teeth_Fix_Beta.7z -
TOR Ports: Kira Carsen Female Player Head for K1
DarthParametric commented on DarthParametric's file in Mods
-
[KotOR] A visor will not stay hiddem despire the flag
DarthParametric replied to Salk's topic in General Kotor/TSL Modding
You can check out the rigmarole I had to go through to get Carth to co-operate with the hide flags in the post-Leviathan scene for K1CP. It required some reworking of the DLG. -
[K1] Volume change for one ambient sound
DarthParametric replied to Salk's topic in General Kotor/TSL Modding
You'd be better off editing the UTS, since that will allow you to customise specific instances without affecting use of it globally. But if you're lazy, the WAV is in streamsounds. Note that it is an actual WAV with fake MP3 headers, so you'll want to strip those first with SithCodec before editing it (and use it to re-add them afterwards). -
Btw, I just realised what the problem with your original script was. if (nPersuade = 0) should have been if (nPersuade == 0) Not sure how I missed that.
-
This version works. Tested it with Eli's store. I've added some debug elements to it to post info to the Feedback screen via SendMessageToPC, which you'll want to remove in the final version. void StoreOpen(object oMerch, object oNPC, int nMarkUp, int nMarkDown, int nSkill) { SendMessageToPC(oNPC, "PC's Persuade = " + IntToString(nSkill)); SendMessageToPC(oNPC, "nBonusMarkUp = " + IntToString(nMarkUp)); OpenStore(oMerch, oNPC, nMarkUp, nMarkDown); } void main(){ object oPC = GetFirstPC(); int nPersuade; int nPersuadeAdj; AssignCommand(GetFirstPC(), ClearAllEffects()); nPersuade = GetSkillRank(SKILL_PERSUADE, oPC); if (nPersuade > 0 && nPersuade <= 17) { nPersuadeAdj = nPersuade - 10; } else if (nPersuade > 17 && nPersuade <= 30) { nPersuadeAdj = (2 * nPersuade) - 27; } else if (nPersuade > 30) { nPersuadeAdj = 33; } else { nPersuadeAdj = -10; } DelayCommand(0.1, StoreOpen(GetObjectByTag("kas_czerkastore", 0), oPC, (nPersuadeAdj * -1), 0, nPersuade)); } Declaring the skill has been moved to after the ClearAllEffects, since I presume you are trying to remove buffs first.
-
1 * nPersuade is just nPersuade, so I'd drop the superfluous 1 *. As to nBonusMarkUp = -nPersuadeAdj, I'd try nBonusMarkUp = (nPersuadeAdj * -1) instead. void main(){ object oPC = GetFirstPC(); object oStore = GetObjectByTag("kas_czerkastore", 0); int nPersuade = GetSkillRank(SKILL_PERSUADE, oPC); int nBonusMarkUp; int nPersuadeAdj; AssignCommand(GetFirstPC(), ClearAllEffects()); if (nPersuade = 0) { nPersuadeAdj = -10; } else if (nPersuade > 0 && nPersuade <= 17) { nPersuadeAdj = nPersuade - 10; } else if (nPersuade > 17 && nPersuade <= 30) { nPersuadeAdj = (2 * nPersuade) - 27; } else if (nPersuade > 30) { nPersuadeAdj = 33; } nBonusMarkUp = nPersuadeAdj * -1; DelayCommand(0.1, OpenStore(oStore, oPC, nBonusMarkUp, 0)); } Have you tried using the nBonusMarkDown term in OpenStore by the way? Seems like that's what it should be for, rather than using a negative value for nBonusMarkUp (even though I see vanilla scripts do that).
-
Replacing Alien Voice with Audio Files
DarthParametric replied to nadrino's topic in Work In Progress
You could try running it under Wine or something like that. Or perhaps @JCarter426 can upload the source and you could try compiling it for Mac. A random sample from K1 suggests 32,000 Hz, 48 kbs - NM11AAGADO02016_.mp3 -
A DLG will always initiate the first available branch. The way a vanilla DLG is ordered is that early branches all have starting conditionals, which allows the engine to fall through them until it reaches one with a valid condition. Failing that, it reaches the final branch which doesn't have any starting conditional. If you add new branches under this branch (typically Entry 0), they will never fire. You need to move your added branches higher up the tree and give them an appropriate starting conditional so they only fire under the correct circumstances. This may require the addition of new globals, depending on what exactly it is you are trying to do.
-
Creating new facial animations
DarthParametric replied to Alvar007's topic in General Kotor/TSL Modding
If you only weight it to the head (as you would have to in a separate head model) then they will be completely rigid and clip through the body with even the slightest head movement. Danglymeshes will also clip. I figured there wasn't much likelihood of a sim being practical, so that's fine. Thanks for giving it a shot though. -
-
No, Xor will not appear on Dantooine. Doing so would require editing the messengers include function and then recompiling the messenger trigger script in the Enclave module. Note that K1CP already edits this script.
-
Dark Jedi Wear Robes (for JC's Cloaked Jedi Robes Mod)
DarthParametric commented on DarthParametric's file in Mods
-
Dark Jedi Wear Robes (for JC's Cloaked Jedi Robes Mod)
DarthParametric commented on DarthParametric's file in Mods
Jedi Diversity literally recommends using it in conjunction with this mod. Not sure where you got the idea they are incompatible. Did you actually read the mod description? Both this mod and Jedi Diversity require JC's TSL supermodel ports. As long as those are present in the Override, you don't technically need to fully use one of his robe mods, which would allow you to use the movie robes mod. -
Dark Jedi Wear Robes (for JC's Cloaked Jedi Robes Mod)
DarthParametric commented on DarthParametric's file in Mods
-
TOR Ports: Kira Carsen Female Player Head for K1
DarthParametric commented on DarthParametric's file in Mods
-
TOR Ports: Kira Carsen Female Player Head for K1
DarthParametric commented on DarthParametric's file in Mods
-
How to edit maps in Kotor 2? Like Placing NPC?
DarthParametric replied to Jj117's topic in General Kotor/TSL Modding
Typically you do not want to be editing module OnEnters outside of for personal testing purposes unless it is absolutely required. It's terrible for compatibility purposes. For a mod that is to be publicly released, you'll want to instead rely on other methods. For NPCs that should always be present, simply adding it to the GIT's creature list is the way to go. For NPCs that need to spawn under specific scenarios, adding a trigger with a custom script would be preferable to editing the OnEnter. Or as LoneWanderer suggested, a DLG is a common vector, primarily when the NPC appears during, or as a result of, a cutscene/conversation. -
Fair Strides' Script Shack
DarthParametric replied to Fair Strides's topic in General Kotor/TSL Modding
Those were pulled in from the include files by Bioware's compiler. Just as nwnnsscomp does, all the constants in any listed includes get pulled in, even if they aren't actually referenced by the script. But you can't just blindly delete them every time. Sometimes they will be used (or some of them anyway), most commonly when referencing local boolean constants from k_inc_utility (SW_PLOT_BOOLEAN_01, SW_PLOT_HAS_TALKED_TO, etc.). But anything to do with AI will typically reference a bunch from multiple different includes. -
Fair Strides' Script Shack
DarthParametric replied to Fair Strides's topic in General Kotor/TSL Modding
Both scripts are for the DS route and fire consecutively (as you can see for yourself in unk44_evilbast.dlg). The first one is k_punk_bastjoin, which removes Jolee and Juhani from the party and spawns a level-appropriate Bastila (determined by the player's current level). Then k_punk_bastjoin2 adds the new evil Bastila to the party (the stunt Bastila you've been interacting with up to this point is then destroyed on the DLG exit node). Btw you don't need all that include garbage in your script. A clean version of the original is simply: void main() { ActionPauseConversation(); AddPartyMember(NPC_BASTILA, GetObjectByTag("bastila", 0)); ActionResumeConversation(); } Note however that K1CP makes some minor alterations to this script, which you'll want to include for compatibility purposes - https://github.com/KOTORCommunityPatches/K1_Community_Patch/blob/master/Source/k_punk_bastjoin2.nss Your problem with the equipping can likely be resolved simply by a change in the order of operations. Try the following (K1CP additions incorporated): void AddBast(object oNPC) { AddPartyMember(NPC_BASTILA, oNPC); } void main() { object oBastila = GetObjectByTag("Bastila", 0); object oJolee = GetObjectByTag("jolee", 0); object oJuhani = GetObjectByTag("juhani", 0); object oDblSbr = GetItemPossessedBy(oBastila, "g_w_dblsbr002"); object oBastSbr = CreateItemOnObject("bast_dblsbr_151", oBastila, 1); ActionPauseConversation(); AssignCommand(oBastila, ActionEquipItem(oBastSbr, INVENTORY_SLOT_RIGHTWEAPON, TRUE)); DelayCommand(0.2, DestroyObject(oDblSbr)); DelayCommand(0.4, AddBast(oBastila)); // Turn off scripted saber blade activation overrides. SetLightsaberPowered(GetFirstPC(), FALSE); SetLightsaberPowered(oJolee, FALSE); SetLightsaberPowered(oJuhani, FALSE); DelayCommand(0.5, SetLightsaberPowered(oBastila, FALSE)); DelayCommand(0.6, ActionResumeConversation()); }