• Content Count

  • Joined

  • Days Won


Everything posted by DarthParametric

  1. No, your install is broken. Nuke your entire game and start again. And this time actually extract the mod archives, don't run the installer from inside it.
  2. You're going to need to list all the mods you have installed. And was this a clean installation?
  3. Doesn't look like it is TSLRCM. All their Assassins are using the vanilla quarterstaff prop items. Your single saber reference makes me inclined to think this is from one of Shem's mods.
  4. A stunt weapon that is not intended to drop as loot. Are you using any mods that affect Assassins?
  5. Only global scripts have Bioware's original source. The module scripts are binary only. But I have cleaned up the generated source for a lot of the module scripts in the course of working on K1CP over the last couple of years, especially Dantooine. #include "k_inc_dan" void main() { object oPC = GetFirstPC(); if (GetLevelByClass(CLASS_TYPE_JEDICONSULAR, oPC) == 0 && GetLevelByClass(CLASS_TYPE_JEDIGUARDIAN, oPC) == 0 && GetLevelByClass(CLASS_TYPE_JEDISENTINEL, oPC) == 0) { TurnPlayerIntoJedi(); } ClearAllActions(); } Many of the module scripts make heavy use of planet-specific include scripts, which you can find in the global source. As such what at first glance seem like large scripts often turn out to be quite simple, once you've cleaned out all the external functions.
  6. You are probably going to wind up disappointed if you expect characters to reliably perform scripted animations during combat. For starters you cannot play arbitrary animations in K1 using PlayAnimation/ActionPlayAnimation. Only TSL can do that. In K1 you are limited to a small pool of anims predefined in nwscript.nns like ANIMATION_LOOPING_DANCE, ANIMATION_FIREFORGET_SALUTE, etc. There is the CutsceneAttack function, which, as the name suggests, is designed for choreographing cutscene fights. That does let you specify attack animations, but I have no idea if that will even work outside of a cutscene. void CutsceneAttack(object oTarget, int nAnimation, int nAttackResult, int nDamage); It also lets you specify whether the attack is a hit or miss, and what the damage is. I suppose you could experiment and see what it does when fired during a regular combat round. I'm not sure if anyone has done that before. There may be a problem with the target not responding with the appropriate animation, assuming it works at all, so they might also need to be forcibly scripted in the same manner.
  7. You need to provide more detail about what it is exactly you want to achieve. I gather you want a scriptable attack animation? What is the scenario you envisage this executing in? What's the goal? Are you looking for some simple combat buff, or some sort of cinematic thing? Interactive armbands work exactly the same in both games. You give it an "Activate Item" property which links to spells.2da, this in turn fires a script. The script then does whatever you want, within the limits of the engine. So you can start a conversation/cutscene, open/close doors, spawn items/creatures/objects, kill/destroy items/creatures/objects, add/remove party members, jump the player/party to different positions, warp the party to a different module, set plot states, etc. You can also do this with other interactive items the player equips, like medpacs or stims. You can add an Activate Item property to any item, but a creature hide is not exposed to the player. It is not interactive, so the player can never activate it. The same goes for most other equippable items - there's no way for the player to manually activate them. If you are looking for combat effects, you can apply On Hit status effects to weapons, like slow and stun, etc., but these don't fire scripts. Items can also grant feats, so you could just make a blaster that grants the full Rapid Fire series of feats. So if you wanted to have a manually activateable item, you could just use an armband. K1 doesn't have a pre-existing user limitation for Carth, so you'd have to jump through some hoops to limit it to only him. You could use this in conjunction with your creature hide idea, where the script checks if the activating creature has the hide equipped and the effect fails if not. But how you go about it goes back to my first quest - what is it you are trying to do exactly?
  8. It's a global script. You don't need to decompile it because the game already includes source for it. Look in the NSS folder of the same BIF you got the NCS from.
  9. I mean you could do something as simple as void main() { object oPC = GetFirstPC(); object oStore = GetObjectByTag("STORE_TAG_HERE", 0); int nPersuade = GetSkillRank(SKILL_PERSUADE, oPC); int nBonusMarkUp = -nPersuade; OpenStore(oStore, oPC, nBonusMarkUp); } Looking at the scripts for Yavin Station in K1, it seems like Suvam's discounts are either -5 or -20, so using the negative value of the PC's Persuade total as-is could work. Although you could modify it using if statements like I said before, perhaps something like: void main() { object oPC = GetFirstPC(); object oStore = GetObjectByTag("STORE_TAG_HERE", 0); int nPersuade = GetSkillRank(SKILL_PERSUADE, oPC); int nBonusMarkUp; int nPersuadeAdj; if (nPersuade <= 5) { nPersuadeAdj = 2; } else if (nPersuade > 5 && nPersuade <= 10) { nPersuadeAdj = 5; } else if (nPersuade > 10 && nPersuade <= 15) { nPersuadeAdj = 7; } else if (nPersuade > 15) { nPersuadeAdj = 10; } nBonusMarkUp = -nPersuadeAdj; OpenStore(oStore, oPC, nBonusMarkUp); } You can use whatever mathematical operations you like to scale the values as you require. Google the C formatting for whatever operations you want to do if you are unfamiliar with the syntax. You'll need to check each individual module. Check the merchant's DLG file to find out what script/s fire when they open the store. You'll then need to decompile the binary script (NCS), since only the global scripts have included source. You can pull the Tag of the store from the UTM file, although the scripts you'll be editing will already have it. You'll need DeNCS (requires Java) to decompile the scripts. You'll want DLGEditor to browse the DLGs (don't use KTool's included editor - it doesn't work properly with TSL DLGs). You can use KTool or KGFF to examine the various GFF files like UTCs, UTIs, UTMs, etc.
  10. Depends entirely on the specifics of what you want. A simple colour switch from one solid colour to another is relatively straightforward, at least in PS (and I assume Gimp has similar functionality). If you want patterns and so forth then it starts to become more complex. You could also edit the item to switch it to a different base armour model, if that might get you closer to what you want. Although that obviously adds a whole extra layer of complexity. If you think that doing it yourself is too much, you can always make a post asking for someone else to do it in the Mod Requests forum.
  11. It would require a texture edit. KTool can extract the texture, but it is not a texture editor. You'd need something like Photoshop, GIMP, Paint.NET, etc.
  12. You could do it all in one script. It would just be a series of if statements. But you'd have to edit the individual scripts for every merchant in the game. They aren't defined universally.
  13. You don't edit any 2DAs. You edit the supermodel/s that holds the original anim/s, delete it/them, and replace it/them with TSL's version/s, giving it/them the same name as the original/s. Some knowledge/experience is required ideally, yes. I have no idea how you'd go about a rig transfer in Blender. Someone like @seedhartha would have to chime in with information about that. in KMax, there's an animation tool that lets you import an animation from an external model and map it to the scene rig (Anim Tools -> Mapper). It should be a simple case of autogenerating the bone name matches, since the rigs are more or less the same at the core, TSL's just has some added bones for flappy sleeves and cloaks. Given the complexity of supermodels, I'd suggest the easiest approach would be to remap the anim/s onto an empty copy of the target rig, export that, then edit the ASCII copy of the supermodel to swap the anim/s. You'll need to edit the ASCII anyway to add the sound events anyway, at least using KMax, since that doesn't import/export them properly. Strictly speaking you don't actually need to do the rig transfer. You could do the whole thing in a text editor, just swapping the anim blocks. But doing the transfer allows you to check that everything is working as intended, and adjust/fix it if not. K1 and TSL bone positions/rotations aren't entirely 1:1, which is why head model ports have facial animation issues. There is also a bit of a trick to compiling supermodels, since they are a bit wonky. @JCarter426 is the resident authority on the matter, and did detail the process in a post somewhere, although I can't find it at the moment.
  14. You can't do that in K1 anyway. It's possible, yes. How practical it is depends entirely on how conversant you are with the game's models and animations, and importing/exporting them. I'm guessing "not at all"? Probably not the best place to start then. It will require editing one of the supermodels and replacing the existing anim with the TSL version. Before that you'll probably want to transfer it to the K1 rig to make sure it doesn't need any editing.
  15. Might as well throw mine up as well. But I'm not going to bother with their life stories since I'm an altoholic so there are too bloody many. Click for embiggening.
  16. It's simple. You renamed the OdysseyBase to Dia_Nu but didn't change the other instances of the original base name. They are all still linked to PFHA02, which no longer exists. So MDLEdit throws an error.
  17. Here you go. k_fab_enter.nss a_xtracrystals.nss
  18. From k_ai_master: case 1008: //KOTOR_DEFAULT_EVENT_ON_DISTURBED { //NOT USED } break;
  19. Sure, go ahead. Usual deal, credit blah blah blah.
  20. I'd guess it's the fact that that particular mesh (or meshes) has the dirt flag enabled. You'd need to edit the model/s to change it, but you need to flip some of the UVs anyway judging by your first pic.
  21. void main() { object oPC = GetFirstPC(); object oComp = GetItemPossessedBy(oPC, "bao_cmpnts"); DestroyObject(oComp); object oMesh = GetItemPossessedBy(oPC, "bao_mesh"); DestroyObject(oMesh); AddJournalQuestEntry("bao_armor", 50, FALSE); }
  22. Unless you can recalculate the positions of a multi-hundred/thousand vertex point cloud in 3D space in your head, no.
  23. Win 10 with a GTX 1080 Ti. But the thread OP also had a 1080, and I believe we were both running on the same Geforce driver revision at the time, so I have no idea what the root cause is.
  24. I don't have the issue at all. I only ever saw it one time on a single texture on an XP machine.