Leaderboard
Popular Content
Showing content with the highest reputation on 04/28/2022 in Posts
-
1 pointthe name field doesnt have to have an entry,the resref field must the file name( w/o the .uti)
-
1 pointView File Upscaled (TSL Specific) Protocol Droids Upscaled (TSL Specific) Protocol Droids A Mod for Star Wars Knights of The Old Republic 2 Authors: @Dark Hope, @ScrierOne, and Sith Holocron Release Date: 27 MAR 2022 Background: Let’s make my description short for once. Dark Hope made a mod with hi-res textures for KotOR1 droids. ScrierOne noticed that Dark Hope didn’t do a droid texture for TSL (probably because she mainly does work for KotOR1) so he did one of those AI upscales for the Czerka droid texture. Meanwhile, I was working from Dark Hope’s textures to upscale a texture that apparently was in M4-78 EP that I didn’t recall. Seeing a theme, I decided to combine Dark Hope and ScrierOne’s work into one texture. I made versions using Dark Hope’s take on eyes and my own version. See screenshots above to determine your taste. This mod package doesn’t include Dark Hope’s original takes on Protocol Droids which would also work in TSL. It is highly recommended that you grab those too. Installation: First, extract 7z file to your desktop. Do not extract it to your Override folder. (That way lies madness.) Now with choice comes responsibility. You must choose which version of the textures you wish to use - either the "Original DH Eyes" version or the "Obsidian Version". (You can always delete the files mentioned and check out the other version.) Copy and Paste the files from the respective folder to the Override dfolder. You MUST overwrite the files already inside the override folder. If you don’t have M4-78 EP, I would suggest skipping using the C_prot_781.tga and C_prot_781.txi files. You won’t need them. Uninstallation: Remove or Delete the files from your Star Wars Knights of The Old Republic 2 override folder. Copy the contents of the Backup folder into your override folder (The Backup folder contains the M4-78EP skybox) Known Bugs: None. Incompatibilities: Incompatible with anything that edits the texture for the Czerka Droid. And there aren’t any textures that reskin that M4-78 EP droid as far as I know. Permissions: All materials and copyrights belong to LucasArts, Bioware and Obsidian Entertainment Inc., I own none of the materials, and I'm not making any money out of this mod. It is to be distributed as-is without alteration, unless by permission of the mod author. This mod is not to be distributed for profit, either. Use of these files are at your own risk and the authors take no responsibility for any damage caused to your computer by the usage of these files. I hereby state that I specifically do NOT wish this mod to be uploaded to Steam Workshop. I may release this on NexusMods at a later date but I don't wish others to do so. Usage in other mods must be requested AND approved by me before your use. Special Thanks: · Dark Hope and ScrierOne for their kind permission in using their materials for this mod. · Everyone who downloads the mod. (Please leave feedback!) Submitter Sith Holocron Submitted 04/27/2022 Category Skins TSLRCM Compatible Yes
-
1 point
-
1 pointHaving lurked around the forums a fair bit as of late following a lengthy absence from the community, I've decided to dip my toe back into the waters of KotOR modding. Seeing all of the innovations and changes over the past few years in terms of what we're able to achieve has really given me the itch again! For my first contribution, i've decided to publish this tutorial which I wrote more years ago than i'd care to admit which focusses on the correct way to recruit a new party member and build your own custom dialog tree and quest line for them. I did publish a tutorial soley on the dialog tree aspect of this on LucasForums many moons ago, but I later wrote this more fully fleshed out tutorial and fell off the map before I got around to publishing it. I've gone back to polish this off and tweaked/refined it a little to make things more readable and easier to follow, so hopefully it should be easily understood. I've tried to keep my naming conventions for things as close to the existing ones in the vanilla game files for consistency and so that game files can be easily examined whilst following along if need be. Admittiedly this will mostly be useful to people who are not so familiar with modding the KotOR games and possibly people who are experienced in other areas of modding but haven't dabbled in scripting or anything yet, so if you're already a reasonably well rounded modder in terms of breadth of experience across different areas, this may not be for you. That's enough waffling anyway. Enjoy! Step 1 - Preparing your NPC template: The most logical place to start in my opinion is by creating the template file which contains all of the vital information which the game needs to know about our new party member. Personally, I would start off with the .UTC file from an existing party member and modify it to suit. I personally like to go old school and use K-GFF to modify template files, so the field names I use here may not match whatever is in KotOR Tool, but they'll be similar enough for you to work out which is which. The vast majority of the fields in KotOR Tool or whichever editor you are using are completely self explanatory, so i'll just go over a few of the ones you may not be too familiar with. Here we go: IMPORTANT: When it comes to editing the new party member's scripts, you will need to ensure that the below fields match the values I have given. When it comes to setting your new party member's tag, you need to remember to use the tag of the vanilla party member you are replacing. DO NOT use a custom tag. The vanilla tags are as follows: The TemplateResRef is the unique identifier we assign to the party member's template so that the game can refer to it. In my case, I set it to "p_yuthura" and named the file "p_yuthura.utc" to match. Step 2 - globalcat.2da entries: For this step, all you'll need to do is add a couple of lines to globalcat.2da so that the game can track your progress through your new dialog tree/quest. For my example, I added two new rows: The K_SWG_YUTHURA global will essentially track which stage of the quest you have reached whilst the K_SWG_YUTHURA_LEVEL one will keep track of your PC's level as you progress through the quest. Their values will both be checked and modified by scripts whenver you reach a new stage in the tree, but more on that in the next step! Step 3 - Recruitment: This stage will cover the process of actually recruiting your new NPC and adding them to your party. This tutorial assumes that you will speak to Yuthura Ban in the Dantooine Courtyard before you recruit her. In order to have the conversation end and have Yuthura immediately available for selection, you would use this script: //recruit.nss void main() { RemoveAvailableNPC(5); AddAvailableNPCByTemplate(5, "p_yuthura"); DelayCommand(1.5, ShowPartySelectionGUI()); } If you follow it line by line, it's very simple to follow. It removes whichever NPC is currently occupying slot 5 in your party selection screen. It then adds a new party member to that slot based on the template you have specified. In this case, we have gone with p_yuthura because that's the template we created in Step 1. There will then be a short delay of 1.5 seconds before the party selection screen appears, just like when you recruit a new party member in the vanilla game. This line can be left out if it doesn't suit what you're trying to do. Obviously the number for the party member slot will change depending on which party member you are replacing, so here the different values for each slot in the game: Simply attach this script to an appropriate conversation node in your dialog file and you're good to go. In this case, since we are recruiting an NPC which we have physically encountered, there will now be a duplicate of your NPC still in the location you met them, even if you have recruited them already. This is very easily solved with another simple script attached to the final node in the recruitment dialog: // destroy.nss void main() { object oYuthura = GetObjectByTag("dan13_yuthura"); SetGlobalFadeOut(1.0, 0.5); DelayCommand(1.0, DestroyObject(oYuthura)); DelayCommand(1.0, SetGlobalFadeIn(0.7, 0.0)); } Again, very easy to understand if you go through it line by line. The SetGlobalFadeIn() and SetGlobalFadeOut() commands are used here to fade the screen to black and back to normal again with the disappearance of the NPC taking place in between the two. This adds a nice polished appearance to the affect. For a barebones recruitment mod, you could just stop there. If you've followed everything so far, you'll have a new party member join you and they'll work exactly as any other party member would, just without any sort of quest to follow. Step 3 - Dialog Tree: This is the step where you really flesh out your mod and give your NPC some life. Adding a new quest line based around your new NPC is a great way to not only add exciting new content to the game, but also to bring your new content more in line with the experiences players have with the vanilla party members. This is nowhere near as difficult as you might think when you start out. I'm certainly no programmer, but with a little common sense and applied logic, this who process becomes very simple. The first script we create here is the one which checks whether or not Yuthura's quest line has started yet: //k_swg_yuthura01.nss #include "k_inc_debug" int StartingConditional() { int nResult = GetGlobalNumber("K_SWG_YUTHURA") == 0; return nResult; } As you can see, this script checks that the currently set value of the K_SWG_YUTHURA global we created earlier is 0. If the current value of K_SWG_YUTHURA is indeed 0, then the value of nResult will be positive and the dialog node which this conditional script is attached to will be available. If the value of K_SWG_YUTHURA is anything other than 0, the node will be ignored and the game will move on to the next note in the tree. Once the initial conversation has been completed, we'll need to increase the value of K_SWG_YUTHURA so that a different conversation option becomes available next time. We achieve this by attaching the following script to the final node in the conversation tree: //k_swg_yuthura20.nss #include "k_inc_debug" void main() { int nPlot = GetGlobalNumber("K_SWG_YUTHURA"); int nLevel = GetHitDice(GetFirstPC()); SetGlobalNumber("K_SWG_YUTHURA", (nPlot + 1)); SetGlobalNumber("K_SWG_YUTHURA_LEVEL", nLevel); } Once again, this is simple to follow. We start by assigning values to nPlot and nLevel so that we can reference them later in the script. nPlot is assigned a value equal to the current value of our K_SWG_YUTHURA global and nLevel is assigned a value equal to the PCs current level. K_SWG_YUTHURA then has its value increased by 1 and K_SWG_YUTHURA_LEVEL has its value set to the PC's current level. Moving on to the second stage in the quest/conversation is really simple. All we do is attach this script to the relevant node in the dialog file: //k_swg_yuthura02.nss #include "k_inc_debug" int StartingConditional() { int nResult = GetGlobalNumber("K_SWG_YUTHURA"); int nLevel = GetHitDice(GetFirstPC()); int nLastLevel = GetGlobalNumber("K_SWG_YUTHURA_LEVEL"); if ((nResult == 1) && (nLevel > nLastLevel)) { return TRUE; } return FALSE; } A little more going on here at first glance, so let's break it down. We start by assigning values to nResult, nLevel and nLastLevel. Here, nResult is the current value of K_SWG_YUTHURA, nLevel is the PC's current level and nLastLevel is the current value of K_SWG_YUTHURA_LEVEL. If the value of K_SWG_YUTHURA is 1 and the players current level is greater than the stored value, then the conversation node will be available. You can basically copy and paste this script to cover the rest of the quest line, just by altering the nResult value which the script checks for. Every time you advance a stage in the quest, you increase it by 1. Summary: All in all, this is a fairly simple process to go through and doesn't take too long at all when you consider that the majority of the conditional scripts for your quest are going to end up being copies of eachother with just that one value changed. I've attached my example scripts to save you needing to copy/paste them if you want to use them as a basis for your own. Of course, there's still so much more you could do with your mod to make the experience even more immersive. In terms of dialog, you can make certain conversation options available only if other conditions are met, like needing to have collected a certain number of Star Maps to have been collected or needing to have reached a certain point in another quest. There are so many possibilities and the vast majority of them can be implemented using the same principles outlined in the tutorial above. Get creative with it! mf_recruitment_scripts.zip
-
0 pointsStaff response: I am glad @Marius Fett was able to calm things down before things devolved further, so thanks goes to Marius Fett for that timely wisdom. @Revanbeta50 Reading back over things, it seems you have attempted in the past to work with the files to attempt it. I'm confused by your recent comments about not having a PC when you had one earlier on, but I know things happen. I am not familiar with the Android version's differences myself, but I can look things over (unfortunately, I cannot say exactly when) and try to help you. I may do some of the work myself, though this doesn't mean I'll do all of it. If I can have success, I can show you how to do it on your end. If that blows up, I can help some more. Another matter to address: you said that you would like someone to explain the rules. I would like to direct you to the following picture, which shows where to go to find the rules for the community. Please take your time to read through them, and you can PM me if there's a rule you don't understand. I know @N-DReW25 already linked you to the rules at least once and pointed out that several were being violated. If you don't understand how a rule is being referenced after you read it, again please PM me or another member of staff. I will say that there are general posting abouts against reviving old threads and posts about things that have recent threads open. The other post that you made about Lonna Vash for example is a duplicate of the issue you're having with a Lonna Vash mod and mobile TSLRCM, which is a recent thread. We try to not encourage spamming or lots of the same thread, so I will be deleting the other thread as the other one has more activity. Hope everyone has a great day! 😃
-
0 pointsIn my experience, the hardest thing about compatibility is merging the Korriban tomb's TSLRCM content with the mod's content WITHOUT restoring the vanilla bugs. You certainly won't be getting modders for this project by making your own copy of this very thread. This user created this thread and managed to follow the rules when creating their post and yet the community didn't have answer to give! Keep this in mind, Vabulletizer asked their question in a reasonable and sensable manner and was ignored... in your thread you wrote the following: From what you have shown the other modders on this site is that you cannot follow most of our General Posting Habits, Spam or Bumping rules... why would any of us want to work on a project you are requesting?