Kaidon Jorn 196 Posted October 29, 2022 So I just did a test uninstall/reinstall and SLM took over 25 minutes...because of the companion dialogs. SO... I really am just going back to hard replaces on those since I really don't think it's necessary to write all the saber building sections of the companion dialogs with the patcher. Who agrees? Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 3, 2022 I've decided to make Learn Schematic into a feat rather than a Force Power, because that's the way I think I intended it to be in the first place. So I think the main script that Fair Strides originally wrote is going away and I will have to devise a new script to just check if you have the feat and the schematic you are trying to build. Saber schematics will just be datapads again like in the original mod. No more equippable forearm shields. Just datapads. 13 of those in inventory isn't a huge deal. But you'll have to keep them on you if you want to build that particular lightsaber. I'll just have to re edit the workbench dialog and my append.tlk files once I get a working script. Question: Isn't there a vanilla script function that checks whether you have a feat or not? Haven't been able to scour KT for such a thing yet. Thanks KJ Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 4, 2022 ^^^ Nevermind. I'm not doing that. Quote Share this post Link to post Share on other sites
DarthParametric 3,785 Posted November 4, 2022 // 285: Determine whether oCreature has nFeat, and nFeat is useable. // - nFeat: FEAT_* // - oCreature int GetHasFeat(int nFeat, object oCreature=OBJECT_SELF); Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 5, 2022 Thanks DP. I don't think I'm going to be able to do that this time around. I am running out of time. Quote Share this post Link to post Share on other sites
Sith Holocron 2,478 Posted November 5, 2022 Then just name it SLM 2023. Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 5, 2022 There's a lot more to it than a name. Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 8, 2022 What might cause this? Anyone? the Claivoyant video effect or something else? It's always worked fine until now. All files were inserted into the modules on this install. EDIT: Never mind. I'm a schmuck. I installed the waypoint files but not the .git file for the area. Derp. Quote Share this post Link to post Share on other sites
DarthParametric 3,785 Posted November 8, 2022 Note that you typically don't need to create UTW files. You can just add the entry to the GIT using the global TemplateResRef (sw_waypoint001) and change the tag, etc. in the GIT struct. Most vanilla waypoint entries do this. 1 Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 9, 2022 Aight. 1 Quote Share this post Link to post Share on other sites
Nsinger998 17 Posted November 16, 2022 On 11/5/2022 at 5:53 AM, Kaidon Jorn said: Thanks DP. I don't think I'm going to be able to do that this time around. I am running out of time. What do you mean "running out of time"? Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 16, 2022 I have to sell the house and move. I could just wait to release next summer or something. Probably will… My brother died from a stroke a few weeks ago and it’s now imperative that i get out from under it (the house) i may be able to get it done before xmas 2 1 Quote Share this post Link to post Share on other sites
DeepFriedDimebag 4 Posted November 17, 2022 Sounds like you have a lot going on tbh. I'm sorry to hear about your brother though, KJ. Condolences to you and your family during this difficult time. 1 Quote Share this post Link to post Share on other sites
ConansHair 48 Posted November 17, 2022 I'm so sorry for your loss, prayers and condolences to you and your family during this most difficult time... 1 Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 17, 2022 Thanks all. But let's move on... 1 Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 25, 2022 Welp. I just screwed up my whole mod last night. Don't know if I can fix it. Yeah....maybe next year. 1 Quote Share this post Link to post Share on other sites
DarthParametric 3,785 Posted November 25, 2022 Define "screwed up". Quote Share this post Link to post Share on other sites
Guest Qui-Gon Glenn Posted November 25, 2022 Unless you deleted most of it, I feel confident you can recover. That said, it isn't always obvious how you screwed up. Hopefully it wasn't something where you saved over a file accidentally, or messed up a cut & paste/find & replace and saved it before realizing. I have definitely hosed myself scripting with messed up cut/paste and not saving enough revisions of code. As DP asked, please explain how you screwed up and maybe (shot in the dark maybe is better than nothing) we can help. Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 25, 2022 Well it was my changes.ini and yeah i recovered. Everything got shifted down because I added a section, so i had to rebuild half of the modules section. That was a b****. I didn’t have a backup changes.ini but i do now Quote Share this post Link to post Share on other sites
DarthParametric 3,785 Posted November 26, 2022 You might want to consider some sort of version control-based backup system (e.g. Git, SVN, etc.). You could do it locally, or via somewhere like Github using a private (i.e. non-public) repo. Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 26, 2022 Right yeah Thing was, my dumba** forgot to go back and manually re-number the existing (install to modules) section after I added a new part, so it all got installed to the wrong modules. smh Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 29, 2022 OK! Progress! Could someone help me out with writing this check script? I need to basically check to see if you have the particular scheme item tag, as well has checking to see if you have the feat. So I took the script "c_have_any_co_cr", changed the item tags and am trying to add the check for feat to it. I know this is definitely not the way to go about it, but if I had some pro at the helm I would be doing good. Here's what I have. Would this work like this? int StartingConditional() { int int1 = 0; int int2 = 245; object oPC = GetFirstPC(); if ((GetIsObjectValid(GetItemPossessedBy(oPC, "hero_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))) { int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "raid_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))) { int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "enfo_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))) { int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "cbat_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))) { int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "dres_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))){ int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "egrd_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))){ int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "ckni_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))){ int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "reva_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))){ int1 = 1; } else { if ((GetIsObjectValid(GetItemPossessedBy(oPC, "sinq_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))){ int1 = 1; } else { if (GetIsObjectValid(GetItemPossessedBy(oPC, "sage_scheme"))) && (GetHasFeat(int2, OBJECT_SELF))) { int1 = 1; } } } } } } } } } } return int1; } And I do have 3 more schematic tags to add down there at the bottom. Which are... dvet_scheme, shdw_scheme, and stal_scheme. How do we condense this all down and make it all concise and pretty? Many many thanks in advance. Quote Share this post Link to post Share on other sites
DarthParametric 3,785 Posted November 30, 2022 Try this: int StartingConditional() { object oPC = GetFirstPC(); object oItem; string sTag; string sEnd; if (GetHasFeat(245, OBJECT_SELF)) { oItem = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItem)) { sTag = GetTag(oItem); sEnd = GetStringRight(sTag, 7); if (GetStringLength(sTag) > 8 && sEnd == "_scheme") { return TRUE; } oItem = GetNextItemInInventory(oPC); } } return FALSE; } Since it is using OBJECT_SELF, I assume the GetHasFeat is checking a companion? Quote Share this post Link to post Share on other sites
Kaidon Jorn 196 Posted November 30, 2022 It could be. I made the feat pickable for jedi classes ( and now I realized the problem with that, cause I dont want the PC to be able to pick it until it's granted) But for the PC it's granted on saber quest completion just like before. (via script not .2da) So what I wished I had was the basic "c_have_item.ncs" but it also checks for the feat. So that I could put the tag of the scheme in the string parameter of the dialog, then maybe the feat row number in the first little box(P1)? Sorry I'm braindead. wishful thinking? Honestly the feat is completely arbitrary, but I had to be able to gate this s*** somehow. Quote Share this post Link to post Share on other sites
DarthParametric 3,785 Posted November 30, 2022 Well the feat check is not going to work for the PC in the current script (either yours or mine) since OBJECT_SELF will be the DLG owner. For TSL, yes, you can use GetScriptStringParameter to grab a string and GetScriptParameter to grab up to five ints. You could try this: int StartingConditional() { object oPC = GetFirstPC(); object oItem; string sTag; string sEnd; string sDLGTag = GetScriptStringParameter(); int nDLGInt1 = GetScriptParameter(1); int nDLGInt2 = GetScriptParameter(2); int nDLGInt3 = GetScriptParameter(3); int nDLGInt4 = GetScriptParameter(4); int nDLGInt5 = GetScriptParameter(5); if (GetHasFeat(nDLGInt1, oPC)) { oItem = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItem)) { sTag = GetTag(oItem); sEnd = GetStringRight(sTag, nDLGInt2); if (GetStringLength(sTag) > nDLGInt3 && sEnd == sDLGTag) { return TRUE; } oItem = GetNextItemInInventory(oPC); } } return FALSE; } That would let you specify the tag string fragment, the feat ID, the minimum tag length, and the tag fragment length all in the DLG. Like this: Quote Share this post Link to post Share on other sites