Salk

Members
  • Content Count

    1,346
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by Salk

  1. Finally I got the chance to install this modification on top of my heavily customized game. I did follow the installation instructions accurately but something went wrong. The main install.log did not report any error and the only warning was about finding the liv_m99aa.mod file in the modules folder of my game. Most files were added and some were instead replaced. I have a total of 79 new or modified files in my override directory after installation. Unfortunately I cannot provide the log of the main install because it seems TSL Patcher overwrites (pretty stupidly, in my opinion) the current one with the one coming from the additional component (Visible Forcefield), which I installed just afterwards. I attached that log here for scrutiny but it reports a successful installation. I describe what the problem is. When I disembark the EH, the party is spawned at the standard location used in the original game (the corridor) and I have no way to even go back (there is no "exit"). I noticed some changes in the corridor which confirmed that the main installation should have been successful, just like the install.log reported and the pictures I am attaching here showing the RIM and the modified MOD of the area are further confirmation about it. Yavin before: Yavin AFTER: I can provide screenshots of the party spawning, if needed. I have also installed the High Quality Cockpit Skyboxes files and the EH reskin but I doubt that is relevant. Thanks! installlog.rtf
  2. I seem to recall having also not succeeded with it in the past. What alternatives do I have (if any)?
  3. Hello! I was wondering if anyone has ever used the GetObjectSeen() function successfully in the KotOR game. I am trying to use it as trigger in the following code: while (GetIsObjectValid(oCreature)) { if (((GetStandardFaction(oCreature) == STANDARD_FACTION_HOSTILE_1) || (GetStandardFaction(oCreature) == STANDARD_FACTION_HOSTILE_2) || (GetStandardFaction(oCreature) == STANDARD_FACTION_INSANE)) && ((GetDistanceBetween(oCreature, oLeader) < 17.5) || (GetDistanceBetween(oCreature, oNPC2) < 17.5) || (GetDistanceBetween(oCreature, oNPC1) < 17.5))) { nCombatZone = 1; } oCreature = GetNextObjectInArea(GetArea(oSelf), OBJECT_TYPE_CREATURE); } if (IsNPCPartyMember(NPC_MISSION)) { int nUndisturbed = 0; if ((oNPC2 == OBJECT_INVALID) || (!GetObjectSeen(oNPC2, oMission))) { if ((oNPC1 == OBJECT_INVALID) || (!GetObjectSeen(oNPC1, oMission))) { nUndisturbed = 1; } } if ((GetGlobalBoolean("SURVIVAL_INSTINCT")) && ((nUndisturbed == 0) || (nCombatZone == 1) || ((!GetSoloMode()) && (GetPartyMemberCount() > 1)))) { AssignCommand(oMission, ClearAllEffects()); SetGlobalBoolean("SURVIVAL_INSTINCT", FALSE); } if ((!GetGlobalBoolean("SURVIVAL_INSTINCT")) && (nCombatZone == 0) && (nUndisturbed == 1) && (GetSoloMode() || GetPartyMemberCount() == 1)) { AssignCommand(oMission, SurvivalInstinct()); } } The goal is to verify Mission does not detect the presence of other party members so I thought of GetObjectSeen() for the purpose. There is GetLastPerceived() but it is said to be used in OnPerception scripts and that is not my case. Cheers!
  4. This is quite a find. Good job reporting it.
  5. Thanks to advice from both TamerBill and DarthParametric, I finalized Mission's unique feat (tested and working): Survival Instinct Unique Ability: Mission Mission grew up on the streets of Taris where she learned self-preservation. She gains a +1 bonus to dodging and saving throws when she is the last one standing in combat.
  6. Hello again! I was just looking at that as reference (although now I changed a few things around). Very true. I have moved that part to the henchmen's heartbeat. I actually moved everything to the henchmen's heartbeat because my testing was not successful when trying to apply the bonus via k_hen_damage01 while it did work using the heartbeat. I don't like it because of the delay (I think the worst case scenario is the bonus being applied 6 seconds after the death of the other party members) so I am open to alternate solutions. This is the code I introduced in the henchmen's heartbeat: void BuffUp(object oSelf) { SetGlobalBoolean("STREETWISE", TRUE); effect eACUp = EffectACIncrease(1, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL); effect eSTUp = EffectSavingThrowIncrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_ALL); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eACUp, oSelf); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSTUp, oSelf); BarkString(oSelf, 36946); } void FeatStreetwise() { if (GetHasFeat(129, OBJECT_SELF)) { object oFirstPM; object oSecondPM; if (GetPartyMemberCount() == 3) { if (GetPartyMemberByIndex(0) == OBJECT_SELF) { oFirstPM = GetPartyMemberByIndex(1); oSecondPM = GetPartyMemberByIndex(2); } else if (GetPartyMemberByIndex(1) == OBJECT_SELF) { oFirstPM = GetPartyMemberByIndex(0); oSecondPM = GetPartyMemberByIndex(2); } else { oFirstPM = GetPartyMemberByIndex(0); oSecondPM = GetPartyMemberByIndex(1); } if ((GetCurrentHitPoints(oFirstPM) < 1) && (GetCurrentHitPoints(oSecondPM) < 1) && (!GetGlobalBoolean("STREETWISE"))) { BuffUp(OBJECT_SELF); } } else if (GetPartyMemberCount() == 2) { if (GetPartyMemberByIndex(0) == OBJECT_SELF) { oFirstPM = GetPartyMemberByIndex(1); } else { oFirstPM = GetPartyMemberByIndex(0); } if ((GetCurrentHitPoints(oFirstPM) < 1) && (!GetGlobalBoolean("STREETWISE"))) { BuffUp(OBJECT_SELF); } } } } void main() { object oLeader = GetPartyMemberByIndex(0); object oNPC1 = GetPartyMemberByIndex(1); object oNPC2 = GetPartyMemberByIndex(2); (...) if (IsNPCPartyMember(NPC_MISSION)) { if ((GetGlobalBoolean("STREETWISE")) && (!GetIsInCombat(oMission))) { AssignCommand(oMission, ClearAllEffects()); SetGlobalBoolean("STREETWISE", FALSE); } if ((!GetGlobalBoolean("STREETWISE")) && (GetIsInCombat(oMission)) && (GetCurrentHitPoints(oMission) > 0)) { if (GetIsObjectValid(oNPC2)) { if (GetCurrentHitPoints(oLeader) < 1 || GetCurrentHitPoints(oNPC1) < 1 || GetCurrentHitPoints(oNPC2) < 1) { AssignCommand(oMission, FeatStreetwise()); } } else if (GetIsObjectValid(oNPC1)) { if (GetCurrentHitPoints(oLeader) < 1 || GetCurrentHitPoints(oNPC1) < 1) { AssignCommand(oMission, FeatStreetwise()); } } } } (...) } By the way, do you know if BarkString() plays .wav files associated with the string called? And if not, how do I play a sound that is in the Streamsounds folder of the game? Would Playsound("p_mission_bat4") work? Thanks!
  7. Hello! I have not tested yet but I did recompile the game's persuasion scripts (k_con_perseasy, k_con_persmed and k_con_pershigh). It should be all, correct?
  8. One more thing I realize now is that my code wouldn't work when there are only two party members (unlikely to happen but surely possible). I'll have to remedy that.
  9. DURATION_TYPE_TEMPORARY sounds ideal but I have never seen it used anywhere. But other than duration type, would you say things should work? I am unsure about the effect being applied on the player controlled party member and that's my main concern.
  10. Alright. Thanks for the advice! Do you see a problem with my revised k_hen_damage01 script, @DarthParametric? The goal is to have Mission gain some bonus once the other two party members are down and remove the bonus once combat is over (feat.2da and globalcat.2da have been modified accordingly, of course). void FeatStreetwise() { if (GetHasFeat(129, OBJECT_SELF)) { if (GetPartyMemberByIndex(1) != OBJECT_INVALID && GetPartyMemberByIndex(2) != OBJECT_INVALID) { object oFirstPM; object oSecondPM; if (GetPartyMemberByIndex(0) == OBJECT_SELF) { oFirstPM = GetPartyMemberByIndex(1); oSecondPM = GetPartyMemberByIndex(2); } else if (GetPartyMemberByIndex(1) == OBJECT_SELF) { oFirstPM = GetPartyMemberByIndex(0); oSecondPM = GetPartyMemberByIndex(2); } else if (GetPartyMemberByIndex(2) == OBJECT_SELF) { oFirstPM = GetPartyMemberByIndex(0); oSecondPM = GetPartyMemberByIndex(1); } if ((GetCurrentHitPoints(oFirstPM) < 1) && (GetCurrentHitPoints(oSecondPM) < 1) && (!GetGlobalBoolean("STREETWISE"))) { SetGlobalBoolean("STREETWISE", TRUE); effect eACUp = EffectACIncrease(1, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL); effect eSTUp = EffectSavingThrowIncrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_ALL); ApplyEffectToObject(DURATION_TYPE_INSTANT, eACUp, OBJECT_SELF); ApplyEffectToObject(DURATION_TYPE_INSTANT, eSTUp, OBJECT_SELF); } } } } void main() { object oMission = GetObjectByTag("Mission"); if (IsNPCPartyMember(NPC_MISSION)) { if ((GetGlobalBoolean("STREETWISE")) && (!GetIsInCombat(oMission))) { SetGlobalBoolean("STREETWISE", FALSE); AssignCommand(oMission, ClearAllEffects()); } if ((!GetGlobalBoolean("STREETWISE")) && (GetIsInCombat(oMission)) && (GetCurrentHitPoints(oMission) > 0)) { AssignCommand(oMission, FeatStreetwise()); } } ExecuteScript("k_ai_master", OBJECT_SELF, KOTOR_HENCH_EVENT_ON_DAMAGE); }
  11. Hello! Does anyone know whether the OnDeath() script triggers for party members that are incapacitated during combat or if they do need to be "properly" killed?
  12. Thanks to Sdub's help I have a new icon for T3-M4's unique feat which now includes the droid's capability of functioning as a portable workbench. I have also modified the k_inc_utility script to allow for Carth's new unique feat. Due to his status as decorated soldier of the Republic his presence in the party grants a +1 bonus to Persuasion checks made by the Player. I would have loved to give Mission TSL's Stealth Run feat but it is unfortunately not doable so I will have to think of something different for her.
  13. I take your work very seriously, Amano Jyaku. And since I'm old enough l can tell you for personal experience that many a argument on a Forum or a chat would hardly ever take place between smart people talking face to face. I've not the slightest doubt both you and DrMcCoy are both smart and competent. It's been an awful period for the world (still is) and you're dealing with your own real life issues. Hard sometimes to keep tempers and words in check but I appeal to your intelligence, hoping we can all dismiss the latest exchange as unworthy of you both. Keep up the excellent job done on either side when you can. We'll be here waiting and thankful for future and past contributions! Cheers!
  14. Just chiming in to say I'm sorry to see two valuable contributors arguing over something that should be a common interest and passion. I barely understand a fraction of the whole problem but l know both of you put lots of effort and time into your work and it seems to me that the great divide is mostly a formality but again... I might have misunderstood it all.
  15. Oh okay, thanks. Then one other possibility was to add the lights around the perimeter where it was missing.
  16. Excellent! I don't remember at the moment but l guess other hangars don't need the forcefield?
  17. Movement speed can be changed via script though. I will have to try and check if I can speed up Mission when in stealth mode. But I guess it won't work.
  18. Oh I understand what you mean now. I'll have to take a two weeks hiatus from any modding activity but I will make sure to explore this possibility once I am back. Cheers!
  19. DeathScepter, would you care to elaborate? What do you mean with armbands and hides being able to help me with my ideas? I'm not sure l understand. Thanks.
  20. Hello! Does anyone know if it is possible to import a K2 feat into K1? I'd like to have Mission have Stealth Run as unique feat for herself.
  21. For Mission I would like to use K2's Stealth Run feat and I am wondering if it is possible to "import" it into K1. Does anyone know if it is feasible? I guess I should ask in the appropriate section...
  22. Hello again, Sdub! I have made a few text modification to your nice unique feat list and I started adding a small bonus to Jolee. Now the Hermit feat is so described: Unique Ability: Jolee Jolee has survived in the harsh Kashyyyk wilds for quite some time. With that experience he has learned to make efficient use of any medpack (+10% bonus). I used TamerBill's Content Pack: Feats and Powers (K1 ver) 1.67 as reference. If I can come with some decent ideas, I would like for Carth's and Mission's unique feats to grant some small bonus as well. Cheers!
  23. Hello! I have a minor suggestion. The other party members unique feats are introduced as "Prerequisites:" (Zaalbar, T3-M4 and Juhani) or "Unique Ability:" (Bastila). The ones you added have instead "Restricted to:". Perhaps we coud, for consistency's sake, adapt the text to the original so that Mission, Jolee, Carth and Canderous would have "Unique Ability: " while HK-47 woud have "Prerequisites:". It would also be nice if it was possible to give a very small bonus of some kind for those party members whose new unique feats do not translate into any kind of benefit (Mission, Jolee, Carth) but I don't know if that is possible. Cheers! PS: There is a typo in Mission's feat description. PS2: One interesting thing to mention is that K1's dialog tlk file includes a few strings where unique feats were planned for 2 party members (Bastila and Jolee) that either ended up with none or with a different one: BODY FUEL Unique Ability: Bastila Body Fuel is an activated ability that lasts for 30 seconds. During this time Bastila regenerates all of her Force points every round (3 seconds). However, whenever she uses a Force Power, she takes Vitality damage equal to the Force Point cost of the power. PSYCHIC STATIC Unique Ability: Jolee Psychic Static is an activated ability. It lasts for 6 seconds per level. For its duration, all enemies in the area of effect (8-meter radius around Jolee) come under a confusion effect. There is a 20% chance that the creature acts normally, a 40% chance that the creature attacks its nearest ally and a 40% chance that the creature does nothing.
  24. Interesting, JC! Does this mean that a K1 item protecting against any of the physical damage types (bludgeoning, piercing, slashing) would protect against universal?
  25. Hello! Thanks for the report about damage types. A question: does protection against damage type Universal mean you are protected only against weapons that do Universal damage (disruptors)? EDIT: Taking a quick look at K1's baseitems.2da's damageflags column, I noticed that the Universal damage number there is 7, rather than 8, and that many items do not have a damage type at all. The only used values are 1, 2, 4, 7 (?), 1024, 2048, 4096.