-
Content Count
1,379 -
Joined
-
Last visited
-
Days Won
47
Content Type
Profiles
Forums
Blogs
Forum & Tracker Requests
Downloads
Gallery
Store
Calendar
Everything posted by Salk
-
Hello! I am sure some of you noticed that sometimes you go visit Suvam Tan on the Yavin Station and you hear the sound of Gizka even if there are none around. Conversely, it is possible to find a Gizka there which does not instead produce any sound (unless talked to by the player). This is a bug and it is caused by this: if (((GetIsObjectValid(GetObjectByTag("yav47_gizka", 0)) == 0) && (GetGlobalNumber("YAV_GIZKA") < 3))) { int nRandom = d6(1); if (((nRandom == 1) || (nRandom == 2))) { SetGlobalNumber("YAV_GIZKA", 1); } else { if (((nRandom == 3) || (nRandom == 4))) { SetGlobalNumber("YAV_GIZKA", 2); } else { if ((nRandom == 6)) { SetGlobalNumber("YAV_GIZKA", 3); CreateObject(1, "yav47_gizka", GetLocation(GetObjectByTag("gizspawn", 0)), 0); } } } } together with these two scripts (yav47_gizka08.ncs and yav47_gizka09.ncs) that are triggered by gizsound1.utt and gizsound2.utt: void main() { object oEntering = GetEnteringObject(); if (((GetGlobalNumber("YAV_GIZKA") == 1) && (GetGlobalNumber("YAV_SUVAM") > 0))) { PlaySound("cs_gizkabeg"); if ((GetIsPC(oEntering) == 1)) { AssignCommand(GetObjectByTag("yav47_suvam", 0), ActionStartConversation(oEntering, "yav47_gizkas", 0, 0, 0, "", "", "", "", "", "", 0)); } } } void main() { object oEntering = GetEnteringObject(); if (((GetGlobalNumber("YAV_GIZKA") == 2) && (GetGlobalNumber("YAV_SUVAM") > 0))) { PlaySound("cs_gizkabeg"); if (((GetIsPC(oEntering) == 1) || (GetObjectByTag("yav47_suvam", 0) == oEntering))) { AssignCommand(GetObjectByTag("yav47_suvam", 0), ActionStartConversation(oEntering, "yav47_gizkas", 0, 0, 0, "", "", "", "", "", "", 0)); } } } Apparently, from what I understand, upon loading the area, the onEnter script rolls a 1D6 die and depending on the result changes the YAV_GIZKA global variable to either 1 (rolling 1 and 2), 2 (rolling 3 and 4) or 3 (rolling 6) while it does not change it at all if rolling 5 (?). Now, with the global on 1 and 2, you will be able to hear the Gizka's sound without seeing it because it simply isn't there while with 3, it will be there but won't make a sound. It also seems like if the Gizka is spawned the Global will stay at 3 until later, when a certain event will take place, because the initial IF condition requires the Global to be lower than 3. Any suggestions about what should be done about it? Thanks!
-
If this other project meets complete success perhaps it may become possible to open up to more than two henchmen.
-
Hello, my friend! I like your finalized concept for your Sherruk "Legends". If I may give you a suggestion... Perhaps making the color of the beard more similar to that of the hair? Other than that, thumbs up!
- 17 replies
-
- 1
-
-
- mandalorian
- work in progress
-
(and 4 more)
Tagged with:
-
Thank you for your intervention, Ragnarök! I happen to feel practically the same and share your opinion about a much needed overhaul of the skill system inside KotOR but I fear that is not really feasible so I have mostly focused on what I believe is the worst offender in an undeniably not well thought-out implementation. I am less critic about the Cross Class Skill and Class Skill (even because locally I made some changes that help in this sense) because I find such restriction to be compatibly with the Class system. We may discuss whether or not having a Class system is a good idea or not but since KotOR offers (forces?) the Player to choose a path then I believe it is just a consequence to face limitations in the development of a certain set of skills. And I agree: Persuade is THE skill to have and it is penalizing for the Soldier and the Scout to not have it as Class Skill. The developers must have realized that and patched this problem partly by making it a Class skill for each Jedi class. I find that the most annoying limitation, more than having to spend double amount of skill points to raise it, is that Cross Class Skills can be invested into up to a rank that is given by (Current Level + 3) / 2 rather than the Current Level +3 which applies to the Class Skill. But back my initial issue: Security is the one skill that truly seems useless because at least Repair and Computer Use open new scenarios (even plot-related like for HK-47) and allow you to have alternatives. Security is the one skill whose purpose is to let you save a little time and gain some XP but that's it. That's why I would welcome a modification that would introduce some sort of drawback for NOT having it. It would already be a big step in the good direction, even if it would not magically solve the inconsistencies and the general poor Skill implementation. There would be other critical issues (namely AI) which I was hoping would mostly be resolved by this project. Unfortunately the author is away and who knows when and if he ever returns to it? Thanks again for your contribution!
-
Hello! Since this is a support thread I believe replying in here even after 7 years is not against the rules but if it was so, please feel free to delete my post. I think Canderis had a very nice, low-key idea to work around the experience cap but I was wondering why there's been changes made to classpowergain.2da and featgain.2da. I am also wondering if this is going to affect the joinable NPCs starting level upon their being recruited into the party. To make the characters level up at half the original speed, shouldn't be enough to just change the values in the exptable.2da file? Thanks!
-
bead-v, while testing this method I noticed how sometimes the party members seem to turn away but I could not make it happen consistently so I was tentatively trying to remedy this by adding the following after ClearAllActions(): SetFacingPoint(GetPosition(GetPCSpeaker())); so that the new k_hen_heartbt01.nss is: void resetorientation(); void resetorientation() { SetFacingPoint(GetPosition(GetPCSpeaker())); ExecuteScript("k_ai_master", OBJECT_SELF, KOTOR_HENCH_EVENT_ON_HEARTBEAT); } void main() { if(GetIsConversationActive() && GetCurrentAction() == ACTION_FOLLOWLEADER) { ClearAllActions(); resetorientation(); } else { ExecuteScript("k_ai_master", OBJECT_SELF, KOTOR_HENCH_EVENT_ON_HEARTBEAT); } } Do you see a glaring problem with this? I wouldn't want to break anything although I doubt there could be any critical negative consequences. Cheers!
-
Hello! Today when I tried to use, after a long time and on a new OS (W10) the latest version of the Toolset (but I tried with the one in the official download section), I got an error message: "The application was unable to start correctly (0xc0000142). Click OK to close the application." Anyone else is experiencing something like that? UPDATE: It was a local problem - a conflict with some running application.
-
A shame. Thanks for all your help with this!
-
bead-v, would you know if it is possible to make a small addition to your code so that we may also make the party members face the current speaker? I attempted this: if(GetIsConversationActive()) { SetFacingPoint(GetPosition(GetLastSpeaker())); if (GetCurrentAction() == ACTION_FOLLOWLEADER) { ClearAllActions(); } } but I failed because GetLastSpeaker() doesn't really do what I hoped (the party members face PLAYER, rather than the current speaker). I would need to address what you in your guide define SPEAKER.
-
Thanks again! I think that solution may be even more desirable. I will test this and see if it is reliable enough. By the way, I noticed that something similar was already present in the original k_hen_heartbt01.nss but that it was commented out together with many other lines: else if(GetSoloMode() && GetCurrentAction(OBJECT_SELF) == ACTION_FOLLOWLEADER) { ClearAllActions(); } I hope it was not cut because it'd cause problems. Cheers!
-
Thanks a lot, bead-v! I am wondering if a simple ClearAllActions() could be forced at higher level so that it wouldn't need to be used for each separate dialogue.
-
Kexikus, I am curious about the rendering process. How long do you expect your computer will take to render one skybox, considering you have significantly increased the resolution?
-
Hello, bead-V. Thanks for your answer. I read your very interesting guide and indeed it may be possible that most of your finds also apply to KotOR. About giving an example, I was just talking of the file dan14_mdroid.dlg found in the danm14_ab module. There is a banter there that should happen between Cart and Bastila (E47 and E48) but they don't seem to be facing each other at all there and I was trying to figure out how things work. Cheers!
-
Hello! I have been thinking lately how the Bash action makes practically useless the Security skill (or almost useless). So I was wondering if a community effort may be taken in order to make bashing less effective. My suggestion would be, if possible at all, to make Bash work only with exceptional Strength values and/or with weapons capable of delivering exceptional damage. Another option, if possible, would be to give a chance to items in containers to be turned into trash, like in the KotOR II but that would still allow for no penalty for bashing doors open. Ideas? Thoughts? Thanks!
-
Opening dialog.tlk file for KOTOR 1 and 2?
Salk replied to goedmonton's topic in General Kotor/TSL Modding
Hello! I think the best tool for this job is here on Deadlystream. -
Thank you, DarthParametric and JC! Very precious advice, as usual. I was very confused because, like you, I do remember situations where the Speaker/Listener combo works as it should. Having to resort to scripts for the many party interjections seems a bit too much even for me though. Since there is no quick reliable solution using the DLG Editor and the problem is so wide spread, I will tolerate this minor issues. Thanks for providing a possible solution, I may be tempted, one day, to go for it even if it means checking hundreds of files. Cheers!
-
Since we have a support topic for DLG Editor, I thought I could ask my questions here. At this moment I am trying to figure how to make party members face each other when they interject in dialogues, rather than look at the protagonist. At first I thought it was a simple matter of having their name in the Speaker and Listener fields but it doesn't seem to be enough. Any advice? Thanks!
-
Impressive work, Kexikus! May I ask whether you plan a KotOR II release or an update to your KOTOR skyboxes first?
-
ebmar, first of all, very good initiative. Sherruk in Dantooine is the male counterpart of Selven in Taris so it does seem very right to see you update this NPC as well! I like the preview of the WIP, including the choice of having a mask and the sound of the filtered voice. I like what marmann said above, especially the suggestion to age him. I would try and see if it was possible to make his red armor a little special, possibly showing some wear too. I imagine Sherruk to be 50 or even a little older. A true veteran. As for Selven, I would be so very grateful if you could come with optional installation choices about not altering the challenge difficulty (I find it is a rather tough fight already and I play a No Reload game each time) although I approve of their using special, customized weapon as long as they are not droppable. Keep up the excellent work! (I am excited by your other improvement to other Dantooine NPCs, including Belaya!) Cheers!
- 17 replies
-
- 1
-
-
- mandalorian
- work in progress
-
(and 4 more)
Tagged with:
-
JC, I did test my little hack with a number of merchants and it seems to be working fine already the way it is, as surprising as it might be. I will soon leave for Tatooine and do the same trick with Fazza. Cheers!
-
Hello, Kexikus! Yes, I remember now I asked about this in the past (my memory, really...) and it was indeed quite easy. Now this small cutscene works as intended. Belaya approaches the player if they killed Juhani. The only minor gripe I have is that that during the running animation the camera is on Belaya's face. I should use another static camera angle instead. I added cameras before when I worked on restoring Xor on Tatooine. Of course I forgot everything. 😉 Cheers!
-
Hello, ebmar! I have been working long and hard on the Sandral/Matale feud quest in the past and I am attempting to polish it even further. I have improved the flow of the mission in more than one way and today I decided to remove the droid outside of the Sandral estate once the Sandral/Matale quest starts. It will return (hence the need to spawn it again in the same spot - and it does, I just tested it) once you have talked with Alan Matale first (it makes more sense that way under a narrative point of view). It is part of a rationalization/bug fixing process for a quest that was originally very broken. And since I am in Dantooine I killed for the first time Juhani and noticed how Belaya reacts to her death BUT only if the player decides to talk to her. I found it plainly wrong so I am trying to change things a bit with the following addition made to k_pdan_belaya_d.ncs called from within k_pdan_init_bel.ncs if DAN_JUHANI_PLOT is 2 (Juhani killed): if ((GetUserDefinedEventNumber() == 11)) { ClearAllActions(); ActionMoveToObject(oPC,TRUE,7.5); ActionStartConversation(oPC, "", 0, 0, 1, "", "", "", "", "", "", 0); } This works but I would like to know how to make it into a proper cutscene. The way it is now is such that there is no pause in the game. Instead I would like to make it so that a cutscene removes control from the player and the screen changes to letterbox to make the whole sequence more cinematic. When doing this with the Infinity Engine (I scripted a little there when modding Baldur's Gate) there was a specific function called StartCutSceneMode() and I wonder if something similar exists here. Thoughts? Cheers!
-
JC, first of all, thank you again. I owe you, DarthParametric and others like the very missed Fallen Guardian a lot and I would like to repay sometimes in the future. Said that, I will make more tests about the store prices soon and will keep you and everyone else who may have an interest updated. I also didn't expect it to work, honestly. But I tried and I was as surprised as you are. Once in Tatooine I will like to follow your suggestion and increase the wraid plates purchase price for Fazza. Very good suggestion! I checked the calculator and it is a bit complex for me. In what field should I enter those X,Y,Z positions values I found in the GIT file? Cheers!
-
Thanks for the suggestion, JC. The ChangeItemCost() function does keep the altered price for the item but I reset it with DelayCommand(1.0, ChangeItemCost(GetTag(oItem), 1.0)); which seems to work, returning the original value of the crystals. Since I am here asking for help and you are kindly giving assistance, would you know how to convert the X, Y, Z Orientation/Position I get for an object in the GIT file into valid coordinates for the Vector parameter in the CreateObject() function? Case in point. Under Creature list: XOrientation: 0 XPosition: 339.387878417969 YOrientation: 1 YPosition: 145.786026000977 ZPosition: 56.140998840332 If I was to spawn a creature at exactly the same place what X,Y,Z values should I use for Vector? Thanks! UPDATE: I shamelessly ask for more scripting advice. Can I use GetIsObjectValid() as condition to check whether or not a certain creature is already present in an area?
-
Thank you for the suggestion!