-
Content Count
4,607 -
Joined
-
Last visited
-
Days Won
521
Content Type
Profiles
Forums
Blogs
Forum & Tracker Requests
Downloads
Gallery
Store
Calendar
Everything posted by DarthParametric
-
Crashes like that are usually a sign of a model or appearance.2da problem. By that point you would have already encountered multiple Sith Troopers, so notionally it shouldn't be that, but I suppose it's possible that a mod altered that particular UTC to point to a unique appearance. Alternatively, it could be something else nearby perhaps, like one of the placeables. But the view distance for all of that should be pretty far. At what point does it actually crash? Can you see the door, the trooper, the turrets in the distance, or does it crash before that?
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
Fair Strides' Script Shack
DarthParametric replied to Fair Strides's topic in General Kotor/TSL Modding
It's in the module OnEnter. This is the K1CP version, which is mildly tweaked to make sure the fade-in from the opening crawl/level load works correctly. #include "k_inc_end" void main() { if (GetIsPC(GetEnteringObject())) { if (HasNeverTriggered()) { SetGlobalFadeOut(); PlayMovie("01A"); SetReturnStrref(FALSE, 32228, 0); //String 32228 is "Return To Hideout". Should technically be 38550, "Transit Disabled", instead. SetGlobalNumber("K_CURRENT_PLANET", 5); SpawnStartingEquipment(); SetGlobalFadeOut(); NoClicksFor(1.0); DelayCommand(0.1, SetGlobalFadeIn(0.9, 1.5)); DelayCommand(0.1, AssignCommand(GetTrask(), ActionStartConversation(GetFirstPC(), "m01aa_c01", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE))); SetMinOneHP(GetFirstPC(), TRUE); } } } SpawnStartingEquipment is the Include function (k_inc_end.nss) that you are after: void SpawnStartingEquipment() { object oLocker = GetObjectByTag(LOCKER_TAG); int nClass = GetClassByPosition(1,GetFirstPC()); if(nClass == CLASS_TYPE_SCOUNDREL) { CreateItemOnObject(SCOUNDREL_WEAPON,oLocker); CreateItemOnObject(SCOUNDREL_ITEM01,oLocker); CreateItemOnObject(SCOUNDREL_ITEM02,oLocker); } else if(nClass == CLASS_TYPE_SCOUT) { CreateItemOnObject(SCOUT_WEAPON,oLocker); CreateItemOnObject(SCOUT_ITEM01,oLocker); CreateItemOnObject(SCOUT_ITEM02,oLocker); } else if(nClass == CLASS_TYPE_SOLDIER) { CreateItemOnObject(SOLDIER_WEAPON,oLocker); CreateItemOnObject(SOLDIER_ITEM01,oLocker); CreateItemOnObject(SOLDIER_ITEM02,oLocker); } if(GetHasSkill(SKILL_STEALTH,GetFirstPC())) { CreateItemOnObject(STEALTH_UNIT,oLocker); } } The specific UTI tags are defined in the include's constant list: string SOLDIER_WEAPON = "g_w_blstrrfl001"; string SOLDIER_ITEM01 = "g_i_adrnaline003"; string SOLDIER_ITEM02 = ""; string SCOUT_WEAPON = "g_w_blstrpstl001"; string SCOUT_ITEM01 = "g_i_adrnaline002"; string SCOUT_ITEM02 = "g_i_implant101"; string SCOUNDREL_WEAPON = "g_w_blstrpstl001"; string SCOUNDREL_ITEM01 = "g_i_secspike01"; string SCOUNDREL_ITEM02 = "g_i_progspike01"; string LOCKER_TAG = "end_locker01"; string STEALTH_UNIT = "g_i_belt010"; I'm pretty sure editing the starting items has been covered multiple times on the site (probably even in this thread), and there are several pre-existing mods that already do it. You should try searching for those for some further info. -
Fair Strides' Script Shack
DarthParametric replied to Fair Strides's topic in General Kotor/TSL Modding
#include "k_inc_end" void main() { object oTrask = sTraskTag(); if (GetXP(GetFirstPC()) == 0) { GivePlotXP("end_tutorial", 5); } if (GetTraskState() < 2) { SetTraskState(2); if (!GetTraskWillInitiate()) { SetTraskWillInitiate(TRUE); DelayCommand(20.0, SignalEvent(oTrask, EventUserDefined(100))); } } } I assume this is from end_m01aa (Endar Spire Command Module)? I didn't download your attachment, just referred to my local copy. -
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
It enables a procedural dirt effect over the selected mesh when rendered in-game. You should be careful when enabling it. It's not compatible with envmaps if I recall correctly. To enable it, simply tick the checkbox.
- 120 replies
-
- 2
-
-
- modelling
- blender-addon
-
(and 1 more)
Tagged with:
-
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
k_hcan_state08 is the name of the starting conditional. The actual value it is looking for is GetGlobalNumber("G_CAND_STATE") == 7 && GetHitDice(GetFirstPC() > GetGlobalNumber("T_LEVC") && GetGlobalBoolean("LEV_MALDREAM") == TRUE The T_LEVC global is your level the last time you got one of his conversations. As I said, if you were already at level 20 at that point then you are boned because you will never pass this check (or any of the subsequent checks). This is vanilla behaviour, nothing to do with K1CP.
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
It has nothing to do with K1CP. You're boned because virtually all companion conversations require you to level up between entries, which you can no longer do once you are level 20. All K1CP does with Canderous is remove the requirement for his final conversation taking place on Lehon, and allowing it to progress if you are level 20. But it won't help if you are stuck on prior stages. You'd need to edit all those starting conditional scripts to change the level check as well.
- 275 comments
-
- 1
-
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
TOR Ports: KOTOR Comic Republic Uniforms for K1
DarthParametric commented on DarthParametric's file in Mods
-
Female Czerka Officer's Uniform - Modder's Resource
DarthParametric commented on DarthParametric's file in Modder's Resources
-
They should be higher resolution versions from TSL.
- 17 replies
-
- improvement
- bugfix
-
(and 4 more)
Tagged with:
-
- 275 comments
-
- 1
-
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
- 275 comments
-
- patch
- compilation
-
(and 4 more)
Tagged with:
-
- 10 comments
-
- 1
-
-
- voice over
- ai vo
-
(and 7 more)
Tagged with:
-
-
-
Sure, that's just a combination of what I suggested above. I think 9 total is a bit low though. I haven't checked what the actual trigger arrangement is yet, but an alternative approach would be to nix the heartbeat altogether and switch to the triggers each spawning a single group.
-
The mooks spawned on Deck 2 and Deck 3 both use the same setup (with only minor differences in the UTCs spawned). The module heartbeat that spawns them has a check against a global number (K_STA_HORDE), which stops spawning once it hits 9 and a global boolean (K_STA_SPAWNER) which is an on/off switch. There is a trigger OnEnter that resets the global back to 0, but that has a local boolean check so that it should only fire once. However, on Deck 2 there are three reset triggers and on Deck 3 there are five reset triggers. On top of that, there's a start trigger that also sets the global back to 0 and sets K_STA_SPAWNER true to start the spawning. On Deck 3 there is only one of these triggers (which you'd expect), but on Deck 2 there are five of these, effectively acting as reset triggers. I'd guess these work in conjunction with cutscenes, but I haven't checked that. By my count, that should mean a maximum of 40 mooks on Deck 3 but 56 on Deck 2. You'd need to add a counter script to verify it though, since it's entirely possible that other resets happen during cutscenes. In terms of stopping them, the easiest solution is probably to add a new global number that increments with each spawn and then have it terminate the spawning script once it reaches whatever arbitrary cap you decide on. Alternatively, a less intrusive option would be to simply lower the K_STA_HORDE check value, so the spawner terminates sooner each timer it resets. Edit: So I just did a quick run through with some kill blasters and with a counter added to the scripts. I ran around until they stopped spawning. I got a total of 28 mooks on Deck 2 and 47 on Deck 3. I think I may have hit some reset triggers early on Deck 2, which reduced the count there, but Deck 3 gave me more than I expected, so I gather there must have been additional resets somewhere. Maybe via door OnOpen scripts or something.
-
Fair Strides' Script Shack
DarthParametric replied to Fair Strides's topic in General Kotor/TSL Modding
Yeah, or just download the whole mod from the releases page and extract the already compiled NCS. -
Fair Strides' Script Shack
DarthParametric replied to Fair Strides's topic in General Kotor/TSL Modding
That's k_ptar_takearmor: void main() { DestroyObject(GetItemPossessedBy(GetFirstPC(), "ptar_sitharmor")); CreateItemOnObject("ptar_sithpapers", GetFirstPC(), 1); } I already altered this script to handle multiple sets of disguises as part of a mod request - https://github.com/DarthParametric/K1_Taris_Sith_Uniform_Disguise_Extension/blob/master/Source/k_ptar_takearmor.nss -
Fair Strides' Script Shack
DarthParametric replied to Fair Strides's topic in General Kotor/TSL Modding
#include "k_inc_tar" void LockArmour() { object oArmour; oArmour = TAR_StripSithArmor(); if (GetIsObjectValid(oArmour)) { SetItemNonEquippable(oArmour, TRUE); } } void main() { object oEntering = GetEnteringObject(); if (GetIsPC(oEntering)) { DelayCommand(1.0, LockArmour()); } } -
Custom Lightsaber Modelling
DarthParametric replied to Numeric II's topic in General Kotor/TSL Modding
Be wary of old tutorials, especially for sabers. The old approach using MDLOps 0.5/0.7 and the Replacer function is no longer valid.