Fair Strides

Administrators
  • Content Count

    2,337
  • Joined

  • Last visited

  • Days Won

    73

Posts posted by Fair Strides


  1. @JC and SS: I can see how it happened and they didn't try contacting people. Do you have any idea just how many games were on the Filefront network? I'd say at least 30 or more. There were around 250+ files for each KotOR game, so multiply that by 30 (even more for games like Jedi Outcast or Battlefront). Since they're dead-set on it being a time-related job, they didn't see themselves having the time or the effort to research the author/email of every file they pulled. (nevermind how easy a regex or database lookup would have been)

     

    @SH: With that part, I imagine being volunteers to the site would include a clause about anything you write being the property of Filefront. So if that clause existed, Filefront would technically own the content after it was written, to do with what they will/wanted to.

    • Like 1

  2. I could also take a crack at doing a Polish translation. The only KotOR copy I own is in Polish (sadly, as the translation often fails to catch the finest subtleties) and the Polish-English mix is really weird :P

     

    I can send you the necessary lines any time you want, most likely within the next day or so (if not today). There will also be lines from the Caalin Ette content mixed in as well, but if you don't mind translating those, I can add that when we make that mod.

     

    Honestly I'd love to see your reaction to the Pazaak Tournament but I remember it being broken in 1.1 so somebody will have to do a 1.2 run-through of it probably.

    Actually, the Pazaak Tournament is only "broken" in two ways:

     

    1. Asking Ceeiia Rylo questions after you initially beat her.

    2. Losing to Skirata breaks everything, since I forgot to add the script that updates the results to his "I win!" line.

     

    So don't ask Ceeiia questions and save before Skirata.

     

    By the way, I've changed Ceeiia's dialog for 1.2 so that you can only ask her questions after you've faced her. I believe I did the same with Irog, but I forget on Sykallin.


  3. People complained about the Vulkar Base? When I was first testing the 1.0 version, I loved how different it felt with the added level.

    The Vulkar Base as it was in the 1.0 had Caalin Ette and many other NPCs that were one modder's custom content and were purely fan-made for the mod. It should be mentioned that Caalin Ette's stats were set by the modder and Caalin was literally harder than the Sith Governor at the end of the planet.

    I lobbied to remove all such content from the Vulkar Base (and from Tatooine) in the 1.1 version, but then people complained that the added level felt empty and incomplete... :|

    Nice option to have a few things not automatically restored/altered!

     

    I'll likely keep Vulkar base and Iriaz, especially now that the latter case has been quieted down

     

    Heh, I believe I was one of the people to comment on the party members on the ocean thing. I wasn't aware others had felt the same

    Actually, you were the only one to complain about the party members. However, when I investigated your issue about flourishing the weapon, I discovered an odd thing: You can only play the flourish animation if the character had a melee weapon equipped...


  4. How long do you think it will take to get 1.2 ready? I was going to reinstall KotOR 1 today, but if it won't be too horribly long, I can hold off for a bit.

     

    Also, the TSL Patcher installer will be the one to use if you already have files in override, right? I ask because the first thing I always install is a simple visual adjustment that removes force speed motion blur.

    My goal is to have both installers done by the start of June. K1R will still be English-only unless and until we get people willing to do some translation of the text (German, Polish, Spanish, and Italian I'd say are the top 4 that most people would need).

     

    You would indeed need to use the TSL Patcher installer for that route, but I'm 95% sure you could install your mod after K1R is installed...


  5. Just wanted to let everyone know that I have one last mod to integrate (Kainzorus Prime's Manaan and Korriban Music Fixes) and then...

     

    I CAN MAKE THE INSTALLER(S)!!!

     

    I will be making two installers this time: a TSL Patcher installer for compatibility concerns, and a TSLRCM-esque installer for convenience concerns.

     

    The TSLRCM-esque installer will be the recommended installer, but that will also just replace all of your files, so it's to be installed first and foremost in your mod builds.

    • Like 1

  6. I believe LiliArch is correct. In most other remains, you can walk right over them with no collision. The Rancor and Krayt Dragon are a very different story in terms of weight and size, and the way the game has it set up, their remains have collision and force you to walk around the bodies.

     

    I mean, it wouldn't look realistic if they let you walk through a corpse that was taller than you are (not to mention how odd the camera would look...).


  7. This tutorial is to help someone out when they ever have to use this feature, especially since it took me a while to figure it out myself. I'm going to show you how to store and restore your current party any time you want in either game.

     

    An example from KotOR 1 where this is done is when you are at the Hrakert Station on Manaan and you travel through the airlock and back. You lose your party when you go out, but the people are restored to your party instantly when you go back inside.

     

    Similarly in KotOR 2, You can pick your party members at various points. The most notable is picking a team to go to Freedon Nadd's Tomb on Duxn. The game does the same thing here as it does on Manaan: programmatically adding people to your party.

     

    (All examples assume it's just you in the party before running them)

    The code for it is actually very simple. Say you wanted to add Bastila to the party :

    object oBastila = SpawnAvailableNPC(NPC_BASTILA, GetLocation(GetFirstPC()));
    AddPartyMember(NPC_BASTILA, oBastila);
    

    That seems simple now, but it took me the longest time to figure out that the number at the beginning of AddPartyMember was the NPC's place in the party table. On the Leviathan, I was just working with Bastila and Carth, so 0 and 2 still worked for party member slots (despite the fact that the PC should be in the 0 spot) and I didn't realize the number's meaning.

     

    Similarly if you wanted to add Juhani or Kreia, you'd use NPC_JUHANI or NPC_KREIA. But what if you didn't know who to summon?

     

    Investigating the Manaan airlocks and the Duxn Tomb's levels, I found that the NPCs' numbers are stored in Global Numbers. These numbers are then retrieved and used in the code above. Here's the code for the Duxn Tomb's OnEnter script:

    void sub3() {
    	object object1 = SpawnAvailableNPC(GetGlobalNumber("403DXN_PARTY2_NPC2"), GetLocation(GetObjectByTag("sp_cnpc2", 0)));
    	object object4 = SpawnAvailableNPC(GetGlobalNumber("403DXN_PARTY2_NPC3"), GetLocation(GetObjectByTag("sp_cnpc3", 0)));
    	AddPartyMember(GetGlobalNumber("403DXN_PARTY2_NPC2"), object1);
    	AddPartyMember(GetGlobalNumber("403DXN_PARTY2_NPC3"), object4);
    }
    

    In KotOR 1, there are two Global Numbers that you can use freely: "K_PARTY_STORE1" and "K_PARTY_STORE2". If you want to see if those have been used, the game (and you) should check and use the Global Boolean "K_PARTY_STORED".

     

    In KotOR 2, Those globals aren't available, so you can either make your own or you'd have to re-purpose the Duxn ones. Re-using the Duxn ones should be safe, since using them before Duxn will have them reset and using them after Duxn shouldn't be a problem.

    • Like 1

  8. I tried to explain about how the game doesn't do anything about clipping once before, but gave up when you kept insisting it could be done.

     

    As for the disguise thing, any eqippable item can have the Disguise property.


  9. If you wanted to, you can just add this right at the bottom of the void main():

     

    AssignCommand(GetObjectByTag("mandalor03"), ActionAttack(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, GetObjectByTag("mandalor03"))));

     

    If that doesn't work, try

     

    AssignCommand(GetObjectByTag("mandalor03"), ActionAttack(GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHARACTER_IS_PC, GetObjectByTag("mandalor03"))));

     

    And in case the tag is not "mandalor03", then change it and hope it works. You might also need to wrap all of that up in a DelayCommand for 0.1.


  10. The .mod and the .rim formats are slightly different, but they accomplish the same purpose in the end.

     

    .Rim files are the vanilla resources for levels. The .are, .ifo, and .git make up the normal ".rim" file. Then all of the resources for the level (dialogs, scripts, gff files, .etc) go into a second "_s.rim" file.

     

    .Mod files take precedence over .rim files (meaning the game will use .mod before .rim if it finds both) and combine all of the resources into one file only.

     

    If you have .mod files, those are from mods or your own creation. Also, to avoid incompatibility issues, when you're making the installer you will want to try inserting the files into the .mod and doing whatever modifications are necessary (given this project, probably nothing that isn't done outside of the files).

     

    What I generally do is make .mod files of the original .rim files (so it's a vanilla .mod, basically), and will tell TSL Patcher to install that to the modules folder if the .mod doesn't already exist. Then I can install files to the .mod without fear that the .mod won't be there. The only downside is that people complain about warnings in the installation if they already had the .mod files (since I DO NOT set them to be replaced).


  11. If you open the dan14_cutscene.dlg in DLG Editor (so not KotOR Tool), and click on the top line (the file path/black line), you'll see some DLG-wide properties like skippable, animated camera, and a script to launch when the conversation is over (regardless of what happens in said conversation).

     

    The k_pdan_endcut14 is in the "Script that fires when conversation ends" slot, as well as the "Script that fires when conversation aborts" slot.

     

    I suppose deleting it from both slots will do the trick, or you can simply make a new blank script, call it k_pdan_endcut14, and compile.

    • Like 1

  12. Took me a surprising amount of time to track down, but the script is k_pdan_endcut14 inside the level itself. It's set in the DLG file to fire when the conversation ends (and when it aborts early), and here's the contents:

    void main() {
    	object object1 = GetItemPossessedBy(GetFirstPC(), "dan16_key");
    	int int1 = 1;
    	object oNearest = GetNearestObject(8, OBJECT_SELF, int1);
    	while (GetIsObjectValid(oNearest)) {
    		SetLocked(oNearest, 1);
    		AssignCommand(oNearest, ActionCloseDoor(oNearest));
    		(int1++);
    		oNearest = GetNearestObject(8, OBJECT_SELF, int1);
    	}
    	DestroyObject(object1, 0.0, 0, 0.0);
    }
    

    So it basically locks and closes the doors to the Estate and then takes away your key forever.

    • Like 1

  13. I have just looked in his mod's folder. That texture isn't one of those included in his mod. But thanks for the suggestion anyway!

    Think Squall might have been referring to the texture possibly being showcased in the WIP thread, not the WIP release.


  14. I've just loaded up the classes.2da and it shows the following:

     

     

    ZFbELno.png

     

     

    And here's the featgain.2da:

     

     

    QTaCCjw.png

     

     

    From what I can see, the only leg he has to stand on in justifying that statement is that the order of the classes is switched around in the column order, but...