Salk

Members
  • Content Count

    1,379
  • Joined

  • Last visited

  • Days Won

    47

Everything posted by Salk

  1. Do you happen to have also decompiled k_ptat_17ae_area.ncs, @DarthParametric? I'd need to check how the game handles a few globals that are there. Cheers!
  2. I'm sorry I can't help you with the technical problem you're having but I just wanted to say your new Force power really looks great. Perhaps our omnipresent angel of modding @DarthParametric will once again save the day. Excellent job!
  3. Oh yes, of course. My bad. But the answer is still the same. The order shouldn't matter at all because they change two different files. I don't have Power Blast and Sniper Shot Fix installed at the moment so I cannot test whether it does what it promises but it should apply to bowcasters too. I will see if I can test it myself today and update you about it.
  4. No, the fix would override the changes made by K1R (if K1R even makes any change to that .2da file which I don't think it does).
  5. Hello! We can wait for @R2-X2 confirmation but I think the two modifications are already compatible and do not require any specific patch.
  6. Well, I am truly delighted. Thanks, AmanoJyaku! And DP too, of course. I cannot even begin to count how many headaches having these means one year ago would have spared.
  7. I modified the necessary files so that the game shows the desired times in dialogues creating this following new file, called on heartbeat in the area: void SetTokenRaceTime(int nToken, int nRacerTime) { // calculate the time components int nMinutes = nRacerTime/6000; int nSeconds = (nRacerTime - (nMinutes * 6000)) / 100; int nFractions = nRacerTime - ((nMinutes * 6000) + (nSeconds * 100)); //building the time string string sTime = IntToString(nMinutes) + ":"; if (nSeconds < 10) { sTime = sTime + "0"; } sTime = sTime + IntToString(nSeconds) + ":"; if(nFractions < 10) { sTime = sTime + "0"; } sTime = sTime + IntToString(nFractions); SetCustomToken(nToken,sTime); } void main() { int QUEEDLE_TIME = 3012; int CASSANDRA_TIME = 2616; int JAX_TIME = 2363; int CHAMP_TIME = 2298; SetTokenRaceTime(18, QUEEDLE_TIME); SetTokenRaceTime(19, CASSANDRA_TIME); SetTokenRaceTime(20, JAX_TIME); SetTokenRaceTime(21, CHAMP_TIME); } This code changes the custom tokens (I have a similar one for Tatooine) in the dialogues so that the times displayed in dialogues are the ones I want. But at the end of each race the game uses a global variable to check whether the player has won or lost and that variable is set using the original racing times. That's why I tried to create a new WON/LOST conditional script that no longer depends on checking that variable but rather compares the Player's time in the last race (which is stored in CUSTOM17 for Manaan) and the opponent's record time. The problem is that there is no way, it seems, to retrieve that CUSTOM17 value from script. And that goes against what that person that wrote the tutorial said. The reason I cannot try and change things directly in the original script is, of course, that it doesn't decompile. Cheers!
  8. I'm trying to change the record times to beat for the different tiers in the swoop races on Manaan and Tatooine.
  9. It does work in the dialogue file. It's when assigned to a string that doesn't work.
  10. I suppose there is no solution then. It's really quite frustrating that Bioware didn't bother writing a simple GetCustomToken function to retrieve the value and it's even more frustrating to find a "tutorial" whose author didn't even bother to test the veracity of their own code. If someone else has any other idea however, I'd be overjoyed. Thanks!
  11. Weird... The BarkString DOES return the token's value instead... Either I need more coffee (which I don't drink) like our friend above or the April's fool is on me today. void main { string sLastTimeManaan = GetStringByStrRef(49415); BarkString(OBJECT_SELF, 49415); SendMessageToPC(GetFirstPC(), sLastTimeManaan); } The BarkString() correctly retrieves the value of the token while the message feedback reports <CUSTOM17>. More ideas? Cheers!
  12. That's exactly what I did but GetStringByStrRef() returns <CUSTOMxx>, not its value. My STR 49415 is <CUSTOM17> (this should be the token used to store the time for the player's latest race on Manaan). and this is my code: int Result (int nResult) { SetGlobalBoolean("MAN_JUST_RACED", FALSE); return nResult; } int StartingConditional() { if (GetGlobalBoolean("MAN_JUST_RACED") == TRUE) { string sLastTimeManaan = GetStringByStrRef(49415); string sLastTimeManaanMinutes = GetSubString(sLastTimeManaan, 0, 1); string sLastTimeManaanSeconds = GetSubString(sLastTimeManaan, 2, 2); string sLastTimeManaanFractions = GetSubString(sLastTimeManaan, 5, 2); //string sOpponentTimeManaan; if (GetGlobalNumber("CRI_SWP_RESULT") == 1) { //sOpponentTimeManaan = "0:30:12"; if (StringToInt(sLastTimeManaanMinutes) > 0) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 30) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 12) { return Result(1); } else { return 0; } } else if (GetGlobalNumber("CRI_SWP_RESULT") == 2) { //sOpponentTimeManaan = "0:26:16"; if (StringToInt(sLastTimeManaanMinutes) > 0) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 26) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 16) { return Result(1); } else { return 0; } } else if (GetGlobalNumber("CRI_SWP_RESULT") == 3) { //sOpponentTimeManaan = "0:23:63"; if (StringToInt(sLastTimeManaanMinutes) > 0) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 23) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 63) { return Result(1); } else { return 0; } } else { //sOpponentTimeManaan = "0:22:98"; if (StringToInt(sLastTimeManaanMinutes) > 0) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 22) { return Result(1); } else if (StringToInt(sLastTimeManaanSeconds) > 98) { return Result(1); } else { return 0; } } } else { return 0; } }
  13. Hello again! I was wondering if someone would know how to retrieve the value of custom tokens. The game doesn't unfortunately have a GetCustomToken() function but earlier I found something that gave me hope, although it was short-lived. There is this tutorial from I don't know when and by I don't know who which says: Custom Tokens: The Custom Tokens are slightly different from the Game Tokens. For one thing, to use them them you have to use the format <CUSTOM#>, where "#" is a number between 0 to 2147483647. In practice, however, the game uses 0-9 and the WhereAmI band mod uses 61 and 62, so I'd avoid those in TSL. Also, in K1, the K1R mod uses 1998-2030(or around there) for the Pazaak Tourney, so I'd really avoid those...:) To set a Custom Token: void main() { // Syntax for the function: SetCustomToken(int iTokenToSet, string sMessage) SetCustomToken(2000, "Hi, I'm token 2000!"); } Though there is no GetCustomToken function, you can still check the value in a script: void main() { string sToken = "<CUSTOM2000>"; if(sToken == "Hi, I'm token 2000") { SendMessageToPC(GetFirstPC(), "Yep, this is it."); } else { SendMessageToPC(GetFirstPC(), "No, it's not it."); } } Unfortunately it seems that string sToken returns "<CUSTOM2000>" rather than the content of the token. The NWN Lexicon here under "Token Duplication" speaks of another method using two other functions that are not present in KotOR (SetLocalString() and GetLocalString()). The game uses <CUSTOM17> and <CUSTOM 26> to store the time for the latest swoop race and I need to retrieve those values. Any idea? Thanks a lot!
  14. I'm not sure I understand the question correctly but yes, it is very possible to spawn creatures in the SW:KotOR 1 and 2 games. What kind of mod were you looking for?
  15. STR 4261: it's own -> its own STR 4574: find my self -> find myself
  16. STR 18169: your Selkath -> you Selkath (although the VO erroneously says "your")
  17. Salk

    TOOL:tpcview

    Great tool! Thanks, ndix UR!
  18. A clear improvement. The issue I reported seems to be gone. Cheers!
  19. It seems there is a problem with at least the comm_a_f head model. The issue is more prominent under certain light conditions and is affecting the corners of the mouth. Since a picture tells more than 1000 words...
  20. Hello! While examining the man26_sunry.dlg file (manm26aa module), I noticed that there should be a way to confront Sunry about his affair with Elora by showing him an item (W_RDATAPAD) if you fail to persuade him to admit to it. Apparently, this item is non existent but I might be interested in introducing it. I was thinking of placing it in the Sith Embassy (the mysterious man speaks of visiting the Sith Embassy too to gather more evidence about the Sunry Trial). Any suggestion/advice? Cheers!
  21. Hello! Somehow the modification swapped place for the conditional script k_pman_comp66 which is moved to the Script to Fire slot in the man26_bigcomp.dlg file. The original game file does not have this problem.
  22. I love the custom animation you created for the protagonist! I am not familiar with Battlefront2 but the effect of this new Force Power (very nice icon as well) seem a little odd to me... The enemies are... levitating and at the same time being chocked? Perhaps it would feel like it belongs more to the KotOR series if the enemy would instead be all caught into a whirlpool animation but I realize that was not your initial intention. Very good initiative though and, again, wonderful custom animation and icon! Congratulations!
  23. Thanks Kexikus! I'm happy to report my testing was successful and now the scuba walk has appropriate footsteps sounds.
  24. Hello! I don't like the footstep sounds for the water suit on the sea floor of Manaan. I believe they are completely inappropriate and I'm trying to understand if it is possible to replace them. From what I understand I would first need to create a new set of footstep sounds (they usually come in triplets fs_XXXXXXXXXX.wav) which I have done, then either add a new row to footstepsounds.2da or use one of the unused existing slot in that table (it has 11 slots and it seems 4 and 7 are unused). Lastly, I should input the slot number under the footsteptype column in appearance.2da. This same table also has a column called soundapptype. Does anyone know what it is used for? Any advice? Thanks!