subtledoctor Posted September 10, 2021 Share Posted September 10, 2021 (edited) 7 hours ago, temnix said: If whoever had that idea originally had wanted to avoid interference of file names, he should have I'll make sure to tell him. He will no doubt be happy to be corrected, all these years later. 7 hours ago, temnix said: I'm not surprised this "community" has stuck with an inferior solution through the years I know. At some point, surely everyone should have foreseen/prophesied the coming of your genius, and put in the time to change thousands of instances across hundreds of mods, to no actual effect, rather than foolishly sticking with an inferior solution just because it works perfectly. What is wrong with these people. 7 hours ago, temnix said: In effect, suffixes allow free file naming, only shorter Congratulations, you have the lead in the "craziest thing I've heard today" contest. Someone will be in touch with your prize money if you win. Edited September 10, 2021 by subtledoctor Quote Link to comment
Greenhorn Posted October 27, 2021 Share Posted October 27, 2021 Strange, this mod prevents running of change-log utility while it is installed: Quote [WeiDU.exe] WeiDU version 24600 In state 1414, I expected one of these tokens: [38] PLUS [48] BEGIN [64] LT [80] MINUS [107] BASR [138] GT [151] BXOR [162] DIVIDE [198] BLSR [223] BOR [229] BLSL [246] MODULO [250] QUESTION [253] TIMESTIMES [298] OR [319] AND [330] TIMES [338] EQUALSEQUALS [361] LTE [388] THEN [392] BAND [415] EQUALS [434] GTE [436] NOTEQUALS Parse error (state 1414) at ~~ [CD_APPRAISER/CD_APPRAISER.TP2] PARSE ERROR at line 132 column 1-41 Near Text: ~trigger.ids~ GLR parse error [CD_APPRAISER/CD_APPRAISER.TP2] ERROR at line 132 column 1-41 Near Text: ~trigger.ids~ Parsing.Parse_error ERROR: parsing [CD_APPRAISER/CD_APPRAISER.TP2]: Parsing.Parse_error FATAL ERROR: Parsing.Parse_error When uninstalled Change-log works normally. Any workaround beside installing this mod last and installing/uninstalling according to need? Quote Link to comment
CamDawg Posted October 27, 2021 Author Share Posted October 27, 2021 (edited) Try updating your weidu.exe to version 247. It looks like it's trying to parse tp2's with v247 syntax (e.g. Bardic Appraisal using RESOURCE_CONTAINS) and choking. edit: You can just rename setup-cd_appraiser.exe to weidu.exe, since it's already v247. Edited October 27, 2021 by CamDawg Quote Link to comment
Greenhorn Posted October 27, 2021 Share Posted October 27, 2021 (edited) 29 minutes ago, CamDawg said: Try updating your weidu.exe to version 247. It looks like it's trying to parse tp2's with v247 syntax (e.g. Bardic Appraisal using RESOURCE_CONTAINS) and choking. edit: You can just rename setup-cd_appraiser.exe to weidu.exe, since it's already v247. It worked like a charm, thank you! Edited October 27, 2021 by Greenhorn Quote Link to comment
Quester Posted April 5, 2022 Share Posted April 5, 2022 @CamDawg, it would be nice if you could look into adding compatibility between Bardic Appraisal and the multiclass bards introduced by Might and Guile. Quote Link to comment
subtledoctor Posted April 5, 2022 Share Posted April 5, 2022 (edited) 4 hours ago, Quester said: @CamDawg, it would be nice if you could look into adding compatibility between Bardic Appraisal and the multiclass bards introduced by Might and Guile. If interested in adding this, the code might be something like: Spoiler ACTION_IF (FILE_EXISTS_IN_GAME ~d5__bards.d5~) BEGIN COPY_EXISTING ~kitlist.2da~ ~override~ COUNT_2DA_COLS cols READ_2DA_ENTRIES_NOW rows cols FOR (row = 1; row < rows; ++row) BEGIN READ_2DA_ENTRY_FORMER rows row 1 kit READ_2DA_ENTRY_FORMER rows row 5 clab PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_BARD~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_BLADE~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_JESTER~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_SKALD~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_GALLANT~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_MEISTER~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_JINXER~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_ELEGIST~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_AGENT~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_LORESINGER~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_LORESINGER_CT~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_HEXBLADE~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_HERALD~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_WHISTLER~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_BLADESINGER~) BEGIN SPRINT $mng_bards(~%clab%~)~1~ END END BUT_ONLY ACTION_PHP_EACH mng_bards AS table => ind BEGIN ACTION_IF (FILE_EXISTS_IN_GAME ~%table%.2da~) BEGIN [append or whatever] END END END (Yes, the category of "bards" with that mod encompasses 6 mage/thief kits, 4 fighter/thief kits, 1 fighter/mage/thief kit, 1 fighter/thief kit, 1 cleric/thief kit, 1 thief kit, and 1 cleric kit. And a partridge in a pear tree.) Edited April 5, 2022 by subtledoctor Quote Link to comment
CamDawg Posted April 5, 2022 Author Share Posted April 5, 2022 Alright, this gives me an excuse to modernize some other stuff as well. @Quester are you willing to be a guinea pig? It looks like it works on my end, but another set of eyes wouldn't hurt. Quote Link to comment
Graion Dilach Posted April 6, 2022 Share Posted April 6, 2022 Hold on a second, doc, that won't work. Multiclass kits stop using the kit clab 2das afterall and those innates then need to be applied directly to the QD multiclass helper SPLs/EFFs because rerunning the qd_multiclass function duplicates all kit effects on the innates, as @Skitia proved accidentally with Vienxay's custom kit on EET. Quote Link to comment
subtledoctor Posted April 6, 2022 Share Posted April 6, 2022 (edited) 13 hours ago, Graion Dilach said: Hold on a second, doc, that won't work. Multiclass kits stop using the kit clab 2das afterall and those innates then need to be applied directly to the QD multiclass helper SPLs/EFFs because rerunning the qd_multiclass function duplicates all kit effects on the innates, as @Skitia proved accidentally with Vienxay's custom kit on EET. Derp, you’re right. Boy I’m rusty at this stuff. So then something like: ACTION_IF (FILE_EXISTS_IN_GAME ~d5__bards.d5~) BEGIN COPY_EXISTING ~kit.ids~ ~override~ COUNT_2DA_COLS cols READ_2DA_ENTRIES_NOW rows cols FOR (row = 1; row < rows; ++row) BEGIN READ_2DA_ENTRY_FORMER rows row 0 kit READ_2DA_ENTRY_FORMER rows row 1 code PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_BARD~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_BLADE~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_JESTER~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_SKALD~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_GALLANT~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_MEISTER~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_JINXER~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_ELEGIST~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_AGENT~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_HEXBLADE~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_HERALD~) BEGIN SPRINT $mng_bard_mages(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_LORESINGER_CT~) BEGIN SPRINT $mng_bard_thieves(~%code%~)~1~ END PATCH_IF (~%kit%~ STRING_EQUAL_CASE ~D5_BLADESINGER~) BEGIN SPRINT $mng_bard_thieves(~%code%~)~1~ END END BUT…ONLY COPY…EXISTING ~qd_mcm01.spl~ ~override~ PHP…EACH mng_bard_mages AS kit_code => ind BEGIN LPF ADD_SPELL_EFFECT INT_VAR opcode=177 target=2 parameter1=%kit_code% parameter2=9 timing=1 STR_VAR resource=~BARDAPPR~ END END IF_EXISTS BUT_ONLY COPY…EXISTING ~qd_mct01.spl~ ~override~ PHP_EACH mng_bard_thieves AS kit_code => ind BEGIN LPF ADD_SPELL_EFFECT INT_VAR opcode=177 target=2 parameter1=%kit_code% parameter2=9 timing=1 STR_VAR resource=~BARDAPPR~ END END IF_EXISTS BUT_ONLY END …where BARDAPPR.EFF is a 171 effect giving the bardic appraisal innate ability. The code in the earlier post would be used for D5_LORESINGER and D5_ WHISTLER which are single-class kits. Edited April 6, 2022 by subtledoctor Quote Link to comment
jastey Posted April 6, 2022 Share Posted April 6, 2022 3 hours ago, Graion Dilach said: Hold on a second, doc, that won't work. Multiclass kits stop using the kit clab 2das afterall and those innates then need to be applied directly to the QD multiclass helper SPLs/EFFs because rerunning the qd_multiclass function duplicates all kit effects on the innates, as @Skitia proved accidentally with Vienxay's custom kit on EET. Because I didn't even get what you were saying - would that be something that would affect Grey the Dog's (hack of a) and my Solaufein's kits? Quote Link to comment
subtledoctor Posted April 6, 2022 Share Posted April 6, 2022 (edited) 10 hours ago, jastey said: would that be something that would affect Grey the Dog's (hack of a) and my Solaufein's kits? Only if they are multiclass kits (class = 7-10 or 13-18) and use the QD_Multi function edit or ADD_KIT_EX. Edited April 6, 2022 by subtledoctor Quote Link to comment
Graion Dilach Posted April 6, 2022 Share Posted April 6, 2022 (edited) Argent77's kit library also uses qd_multi for the multiclasses, it's just better integrated there IMO. To summarize the basics: Multiclass kits can't have their own clab table and the entry in kitlist.2da is ignored. They do use clab tables though... the original unkitted class's. The qd_multi library then just runs with the above limitation via applying a standardized spell to the base class clabs (starting with an op318 to ignore the trueclass) and then all the would-be clab effects are applied through op177s and EFF containers filtering on the multiclass kit. It's a fairly straightforward concept, once one realizes what it's doing (true, it took me a while as well). Edited April 6, 2022 by Graion Dilach Quote Link to comment
Quester Posted April 7, 2022 Share Posted April 7, 2022 On 4/5/2022 at 10:03 PM, CamDawg said: Alright, this gives me an excuse to modernize some other stuff as well. @Quester are you willing to be a guinea pig? It looks like it works on my end, but another set of eyes wouldn't hurt. I will be your pig. Quote Link to comment
Mordekaie Posted September 23, 2023 Share Posted September 23, 2023 - IMHO it could also be an ability granted to any thief - in P&P AD&D thieves may get the Estimation skill. Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.