Jump to content

Angel

Modders
  • Posts

    729
  • Joined

  • Last visited

Posts posted by Angel

  1. Here you go.  I had located Scar's body and given it to Eltan while he was still with the harbormaster, then I went for Sarevok.  After that Eltan did mention Scar's burial and his friends looking into the possibility of resurrecting him, but the actual resurrection just doesn't happen unless I manually change the state weight in the dialog.

    weidu.log

  2. The crossmod content with BG1RE doesn't quite work: Due to weighting issues in the dialog file, Scar's resurrection never happens if Eltan is spoken to in the palace after Sarevok is dead.  (This was v7 on BGEE 2.6.)

  3. Unless you know exactly what you're doing and the modification is fairly minor, (un)installing mods on a running game is never safe.  And you actually can't install EET on a BG1 game, it installs on BG2 and pulls the resources from BG1 in.  Your BG1 save will likely not work with it at all.

  4. ACTION_IF is_item_use BEGIN

    This condition tests a variable called 'is_item_use', but this variable is not defined anywhere in your tp2 file, hence the error.

    I'm not quite sure what you're trying to do here, but if you want to test for the item_use.2da file, the way to do so is as follows.

    ACTION_IF FILE_EXISTS_IN_GAME "item_use.2da"

     

  5. Said "chickenshit coward" would be Weimer, you know, the coder who originally wrote WeiDU (Weimer Dialog Utility, for your information), and probably knows a lot better how things work than you do.

    But please, do continue to show your poor attitude to the world, see how much coding help you'll be getting in the future.  I'll just be here munching my popcorn and watch you self-destruct.

  6. The warning is there for a very good reason, and pretending you know better than the actual author of WeiDU how it works is pretty foolish.  Even if it works on your setup (and you started this thread because it does not, right?) it may not for someone else whose setup is slightly different from yours.

    But if you want to continue writing broken code against the advice of those who have been at this far longer than you have, be my guest.

  7. With the INNER_ACTION, you are patching the same file you are already copying.  The WeiDU readme contains an explicit warning not to do this, as the results are undefined.

    "Note that an INNER_ACTION should never modify a file that is being modified by the current action. For example, never put APPEND  foo.2da  inside of COPY_EXISTING  foo.2da . More formally, if the inner action and the outer action both modify the same file, the results are undefined."

    The proper way to do this is to use DECOMPILE_AND_PATCH and INSERT_FILE.

  8. Mm, I'm guessing this is BGT/EET specific since the error is in BG1 compatibility code - which Wheels doesn't need since it has no BG1 content whatsoever.

    EDIT: Alright, think I got it.  Tested on BGT with no issues.  Release have been updated accordingly.

  9. 3 hours ago, argent77 said:

    According to the WeiDU docs the percentage signs (%) are treated as an alternate option to double quotes and tilde signs to enclose literal strings. It doesn't help that they are also used to substitute variable content. Apparently this is commonly misunderstood by many modders and can lead to bugs that are hard to track.

    Excuse me while I go bang my head against something in frustration about this hopelessly convoluted excuse for a syntax. ^^

    I did a search for any more such mistakes and fortunately found none.

  10. 1 minute ago, argent77 said:

    It works! The resulting script doesn't contain the vanilla content anymore.

    Yeah, it was WeiDU being anal about when it wants to do variable substitution in function parameters.  I'll quickly draft a new release, good thing it wasn't merged yet.

     

  11. 1 hour ago, argent77 said:

    Yes, versions before 8.4 replaced the monk/smuggler event by its own version, which were functionally the same but used mod-specific variables.

    Version 8.4 didn't change the functionality of the script in that regard, but also added (or forgot to remove) the vanilla game script. In any case one of the two code portions can be safely removed since they both do effectively the same. It would save me some work though if you left the original modification from Wheels in and just remove the vanilla content.

    Mm, I did actually have a few bugs with vanilla content not getting removed properly during development.  I thought I fixed them all, but I guess it's possible I overlooked one.  I will look into it.

    EDIT: Think I found it.  Could you try with this file?  It goes in wheels/lib/

     

    wheels_amkethran.tpa

  12. 8 hours ago, argent77 said:

    Congrats on the release!

    One question though, I've noticed you have expanded the area script of the Amkethran smuggler cave (AR5504) with code that handles the event of the monks threatening the smugglers. What exactly is it needed for? From what I've seen there are already script blocks using different (mod-specific) variables which do basically the same thing? Unfortunately these additions also break compatibility with my Djinni Companion mod.

    I did not change any mod content and did not add any scripting.  Only the install method was updated.  See for yourself:

    8.4

    angel@phoenix ~/playground/mods/WheelsOfProphecy/wheels $ find . -type f -exec grep -Fi ar5504 {} \; -print
          LAF DELETE_SCRIPT_BLOCK STR_VAR script=ar5504 match=%wipe% END
        LAF extend STR_VAR script=ar5504 top=ar5504 END
        LAF swap_text STR_VAR file=ammonk02.dlg swaps=~Global("MONKSPAWNEDSMUGGLERPLOT","GLOBAL",1)=>NumTimesTalkedTo(0) Global("CaveEnter","AR5504",2)=>null~ END
    ./lib/wheels_amkethran.tpa
    // Upon entering AR5504, the variable DMWWSmugglerStatus gets set to 2n-1 if the current state is Sn.
                    SetGlobal("PlaceBodies","AR5504",1)
                    SetGlobal("PlaceBodies","AR5504",1)
                    GlobalTimerExpired("ThievesScoot","AR5504")
            GlobalTimerNotExpired("ThievesScoot","AR5504")
                    SetGlobal("PlaceBodies","AR5504",1)
    ./amkethran/ar5504.baf
            AreaCheck("ar5504")
    ./amkethran/smugplotadd.baf
    
    angel@phoenix ~/playground/mods/WheelsOfProphecy/wheels $ md5sum amkethran/ar5504.baf
    323253f5c86033e53f79c66380794110  amkethran/ar5504.baf
    
    angel@phoenix ~/playground/mods/WheelsOfProphecy/wheels $ md5sum amkethran/smugplotadd.baf
    9b62689d6657ef3f06bc00fa40505993  amkethran/smugplotadd.baf

    8.3

    angel@phoenix /var/tmp/wheels $ find . -type f -exec grep -Fi ar5504 {} \; -print
          LAF edit_script STR_VAR script=ar5504 editstring="patch=>delete_trigger_if(%wipe%)" END
        LAF extend STR_VAR script=ar5504 top=ar5504 END
        LAF swap_text STR_VAR file=ammonk02.dlg swaps=~Global("MONKSPAWNEDSMUGGLERPLOT","GLOBAL",1)=>NumTimesTalkedTo(0) Global("CaveEnter","AR5504",2)=>null~ END
    ./lib/wheels_amkethran.tpa
            AreaCheck("ar5504")
    ./amkethran/smugplotadd.baf
    // Upon entering AR5504, the variable DMWWSmugglerStatus gets set to 2n-1 if the current state is Sn.
                    SetGlobal("PlaceBodies","AR5504",1)
                    SetGlobal("PlaceBodies","AR5504",1)
                    GlobalTimerExpired("ThievesScoot","AR5504")
            GlobalTimerNotExpired("ThievesScoot","AR5504")
                    SetGlobal("PlaceBodies","AR5504",1)
    ./amkethran/ar5504.baf
    
    angel@phoenix /var/tmp/wheels $ md5sum amkethran/ar5504.baf
    323253f5c86033e53f79c66380794110  amkethran/ar5504.baf
    
    angel@phoenix /var/tmp/wheels $ md5sum amkethran/smugplotadd.baf
    9b62689d6657ef3f06bc00fa40505993  amkethran/smugplotadd.baf

    Literally the only thing I changed was replacing the obsolete edit_script function with the DELETE_SCRIPT_BLOCK one.  8.3 already wiped and replaced practically the entire script, that was not my invention.

  13. An interjection of Breager with Saemon Havarian in the smuggler's cave in Amkethran does not work.

    I looked into this as I suspected my meddling with Wheels might be the cause, but that doesn't seem to be the case.  This one is due to a reference to a wrong dialog file.  Decompiling amsaemon.dlg shows this:

    IF ~Global("ACAMSAEMON8","GLOBAL",0)
        InParty("ACBRE")
        InMyArea("ACBRE")
        !StateCheck("ACBRE",CD_STATE_NOTVALID)~
      THEN
        DO ~SetGlobal("ACAMSAEMON8","GLOBAL",1)~
        EXTERN ~ACBREB~ 259
    END

    However, Breager's banter dialog file in Throne of Bhaal appears to be ACBRE25B, not ACBREB.  From the same dialog file another interjection that does work shows this:

    IF ~Global("ACAMSAEMON3","GLOBAL",0)
        InParty("ACBRE")
        See("ACBRE")
        !StateCheck("ACBRE",CD_STATE_NOTVALID)~
      THEN
        DO ~SetGlobal("ACAMSAEMON3","GLOBAL",1)~
        EXTERN ~ACBRE25B~ 4
    END

     

  14. 15 hours ago, DavidW said:

    @Angel: the only caveat I should give is that I have tattered shards of my own rewrite locally, so might not be able to incorporate third-party fixes very directly. (This is what happened for v31/v32 of SCS: CamDawg put together v31; v32 was built on v30 code with some manual incorporation of things from v31.)

    That is okay, I understand.  Mainly what I did was copy sfo, ssl and a  few parts from lib (cross_platform and alter_script) from SCS v33.7 and massage everything in.  You have my Discord, so if you want to know more about what I did exactly I will be happy to talk about it.

    I think my version is nearly complete, I'm now just going through ToB again with a different path to see if I can lure out any other bugs, mainly the reported cutscene problems in Abazigal's lair.

  15. 2 hours ago, grodrigues said:

    Just in case it matters: with the latest Master from the repo, all components that I have installed have done successfully. However, the Candlekeep component spits out this in the console:

    
    [tb#_compile_eval_buffer/weidu_external/workspace/ssl_out/mh#huecu.baf] PARSE ERROR at line 214 column 1-37
    Near Text: )
    	[CheckSpellState] argument [PRIORITY_DISPEL] not found in [splstate.IDS]

    And then a few more of these -- if you need the debug file and weidu log just holler. No monster enhancement components installed, just in case this particular code was relying on it for some reason.

    It's fairly harmless, it just means that Huecuva won't dispel certain effects with priority.  Still, I will take a look at when I get around to it, currently a little busy with the WeiDU 247 compatibility update for Wheels of Prophecy.

    You're very brave to install my alpha code like that.  I hope things won't break too badly.

  16. Slight update on things, my test run revealed a couple of dialog- and script bugs introduced by my changes:
    - After parlaying with Balthasar, monks and mercenaries cycle rapidly between hostile and neutral.
    - The forest head dialogs at the end of chapter 9 do not work.

    I'm fixing these ASAP.  I also uncovered one bug not related to my changes that would cause the pocket plane exit to start the wrong dialog after allying with Balthasar on EE games, I'm fixing that one too.  Unfortunately I have not yet been able to identify the reported issues with Ascension.

×
×
  • Create New...