Jump to content

argent77

Modders
  • Posts

    1,598
  • Joined

Posts posted by argent77

  1. Spellhold Studios

    Convenient Enhanced Edition NPCs

    This mod allows you to tweak various aspects of the new Beamdog NPCs for BG:EE, SoD and BG2:EE to your comfort level.

    Version 4.4 makes several more NPC-specific items available to everyone if the NPCs have been disabled and fixes a scripting bug with Baeloth in SoD after a class/kit change.

    You can grab the latest release from the download link below.

    Links:

  2. DLC Merger

    DLC Merger is a mod that allows you to merge DLC archives, such as the Siege of Dragonspear expansion, with the main game. This step is required if the game expansion is distributed as a separate DLC before the game can be properly modded.

    Version 1.4 provides Brazilian Portuguese translation and improves detection and handling of invalid DLC archives.

     

    Download: GitHub

    Discussion: Beamdog

    Readme

  3. [bg2] Discrepancy between inventory and ability icons for Tomes of Stat Raising (INT, WIS and CHA)

    Affected items: BOOK06.ITM, BOOK07.ITM and BOOK08.ITM.

    The inventory icon of the tomes is set to IBOOK768.BAM (yellowish color) while the ability icons are set to IBOOK06.BAM, IBOOK07.BAM and IBOOK08.BAM respectively (reddish color).

    These tomes are not available in the vanilla game, but mods may add copies of them to the game.

  4. [iwd] Several ARE actor structures contain duplicate script assignments

    AR1015.ARE > Actor 0 (EHBEETLE):
    Override and Default slots point to EHBEETLE.BCS. Override slot should be cleared like in the other beetle instances.

    AR9600.ARE > Actor 25 (Greater Ice Troll):
    General and Class slots point to GNTEAM4S.BCS. According to actors with similar scripting on the map General slot should most likely point to GNT4MOVE.BCS instead.

    AR9600.ARE > Actor 32 (Bergclaw):
    Race and Specifics slots point to GNTEAM9S.BCS. Race slot should probably point to GNT9MOVE.BCS instead.

    AR9714.ARE > Actor 46 (Boneguard Skeleton 6):
    Class and Race slots point to GNT4MOVE.BCS. Class slot should probably point to GNTEAM4.BCS instead.

  5. Spellhold Studios

    Skip Chateau Irenicus

    This is a mod for classic BG2, BG2:EE and EET that allows you skip all the boring details of Chateau Irenicus without losing potential equipment and items.

    Version 3.3 adds a Spanish translation to the mod (thanks ElGamerViejuno).

    You can grab the latest release from the download links below.

    Links:

  6. The scripting can be shortened a bit if you fetch the mod language directly from the WeiDU.log.

    This script should do the trick:

    // Language folder names listed in the order of LANGUAGE definitions in the mod.
    ACTION_DEFINE_ARRAY languages BEGIN
      "english" "german" "russian" "french" "polish"
    END
    
    // Fetching language index from the WeiDU.log
    OUTER_SET language_number = "-1"
    COPY "WeiDU.log" "WeiDU.log"
      REPLACE_EVALUATE CASE_INSENSITIVE
        "^~.*c#sodtweaks\.tp2~ #\([0-9]+\) #5\b"
        BEGIN
          PATCH_IF (IS_AN_INT "MATCH1") BEGIN
            SET language_number = MATCH1
          END
        END
        "%MATCH0%"
    BUT_ONLY IF_EXISTS
    
    ACTION_IF (language_number >= 0) BEGIN
      OUTER_SPRINT mod_language $languages("%language_number%")
      WITH_TRA "c#sodtweaks/translations/autotra/%mod_language%/DIALOGUE_CHOICES.TRA" BEGIN
        OUTER_SET strref1 = RESOLVE_STR_REF(@54)
      END
    END

     

  7. I just want to chime in and say that I don't mind having pages about my mods on the wiki as long as the descriptions and links are accurate and not too outdated. In my opinion it is a good way to make the mods known to players who otherwise don't visit or know about sites that are dedicated to modding.

    However, just like CamDawg pointed out, I don't intend to keep an eye on this or other wikis since it would take too much of my time. From a quick glance I have only found the description for the "Improved Archer Kit" mod somewhat outdated. Everything else looks fine to me so far.

  8. I would strongly advice against manipulating the dialog.tlk in WeiDU directly. WeiDU uses a cached version of it internally to handle (direct or indirect) string manipulations. Updating the string table manually will certainly cause syncing issues with WeiDU's own internal copy and may cause the mod installation to fail (best case) or silently corrupt the file (worst case).

    WeiDU provides several commands to access or manipulate the string table. Some WeiDU commands you might want to look up are:

    • (ACTION_)GET_STRREF
    • (ACTION_)GET_STRREF_S
    • RESOLVE_STR_REF
    • NEXT_STRREF
    • STRING_SET
    • STRING_SET_EVALUATE
    • STRING_SET_RANGE
    • ALTER_TLK
    • ALTER_TLK_LIST
    • ALTER_TLK_RANGE

    Btw, you should *never* remove any strings in the middle of the dialog.tlk. It will not only make all strings after the removed elements going out of sync, but may also crash the game since it uses many hardcoded string references internally.

  9. According to the WeiDU Readme Simplified Chinese text is expected to be CP936-encoded. I don't think Notepad++ supports this format natively.

    You could create a translation file in UTF-8 and use the command line tool "iconv" to convert it manually to the right code page. Linux and macOS should provide iconv by default. A Windows binary of iconv can be downloaded here: https://github.com/mlocati/gettext-iconv-windows/releases/latest

    The general iconv syntax would be:

    iconv -f utf-8 -t cp936 input.tra >output.tra

    The LANGUAGE name for the Chinese translation in the mod's .tp2 script should either be "schinese" or "zh_CN", or otherwise WeiDU can't determine the right encoding when the mod is installed in an EE game.

  10. 11 hours ago, Luke said:

    It seems it does not work the very first time it triggers... Weird... I fear I'm still missing something...

    Tested with "FIREB1.CRE"... The first time the inn is visited the script runs fine, but when I CTRL-Q him in the party, he has nothing in his inventory... However, if I exit the inn and renter, then when I CTRL-Q him in the party, he has the specified amount of arrows...

    It looks like you stumbled upon another bug. The item from the first call of CreateItemGlobal() is created in the magical weapon slot, and only subsequent calls to CreateItemGlobal() will create the item in accessible inventory slots (starting in the last inventory slot). You can test it by adding duplicate CreateItemGlobal() calls to the script blocks in your example script, save the game and inspect Firebead's inventory in NI.

  11. 45 minutes ago, Bubb said:

    Remember that SetGlobalRandom()'s result is only visible on the next script pass. As it is now the block needs to run twice.

    For some reason the result of this action was picked up correctly in the same script round in my tests.

     

    15 minutes ago, Luke said:

    I want it to run every time the game is loaded / the area in which the actor is present is visited (that is why the OnCreation() trigger...)

    You could run the actions in two script passes:

    IF
      OnCreation()
      !Global("DoIt","MYAREA",1)
    THEN
      RESPONSE #100
        SetGlobal("DoIt","MYAREA",1)
        Continue()
    END
    
    IF
      Global("DoIt","MYAREA",1)
    THEN
      RESPONSE #100
        SetGlobal("DoIt","MYAREA",0)
        // Your actions...
        Continue()
    END

    *The Continue()s are not strictly needed but recommended for compatibility reasons.

  12. 8 minutes ago, Luke said:
    3 hours ago, argent77 said:

    I haven't noticed any issues with CreateItemGlobal() though.

    Could you please provide a minimal working example...?

    Using the script block I put above nothing happens 😕...

    I tested with this party script:

    IF
      HotKey(D)
    THEN
      RESPONSE #100
        SetGlobalRandom("a7count","LOCALS",1,20)
        CreateItemGlobal("a7count","LOCALS","arow04")
        XEquipItem("arow04",Myself,SLOT_AMMO0,EQUIP)
        SetItemFlags("arow04",11,TRUE)  // IDENTIFIED | NONSTEALABLE | NONDROPABLE
    END

    It did everything I would expect from the script. A random number of arrows are created and placed into the ammo slot where it is identified and made unremovable.

  13. I have run XG0046.WED, XG0066.WED and XG1220.WED through an old test project of mine that disassembles and reassembles WED files, which apparently fixed the unused bytes. But I didn't test it in-game.

    The errors of tile indices being out of range indicate either an update of the TIS files where some tiles were removed, or an incorrect tile mapping in the WED file. You could try to fix it by setting the out-of-range indices to the last valid tile index from the TIS file. But that should be thoroughly tested.

    The corrupted ITM file is more puzzling. The bogus data indices two unused effect entries (either for the ability section or the feature block), but the numbers don't quite fit. There are still 8 bytes remaining that can't be properly assigned.

    Depending on where you remove the 8 bytes of data (front or back) the unused effects either contain damage opcode (stunning) and a "cast spell" opcode (invisibility), or a damage opcode (stunning) and a corrupted AC bonus opcode definition. I'd suggest to delete all bytes and recreate possibly missing effects based on item description.

    fixed_weds.zip

  14. 37 minutes ago, Luke said:

    Can you confirm the following two script actions are bugged?

    • SetItemFlags()

      • The I:Flags*Invitem parameter appears to be broken...

    It looks like this action doesn't work if two or more instances of the same item exist in the inventory. I haven't noticed any issues with CreateItemGlobal() though.

  15. As of Near Infinity v2.4-20230729 you can check the game for invalid effect opcodes. This is the result after installing SCS IWD spell components on oBG2:

    Spoiler
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: cdid325.spl,  Name: No such index,          Attribute: Type=Unknown (321)
    File: CDIWDTR1.SPL, Name: No such index,          Attribute: Type=Unknown (325)
    File: GHAST1.SPL,   Name: No such index,          Attribute: Type=Unknown (61)
    File: SPPR327.SPL,  Name: Mold Touch,             Attribute: Type=Unknown (324)
    File: SPPR328.SPL,  Name: Storm Shell,            Attribute: Type=Unknown (321)
    File: SPPR426.SPL,  Name: Cause Serious Wounds,   Attribute: Type=Unknown (61)
    File: SPPR524.SPL,  Name: Cause Critical Wounds,  Attribute: Type=Unknown (61)
    File: SPPR740.SPL,  Name: Wither,                 Attribute: Type=Unknown (61)
    File: SPPR740.SPL,  Name: Wither,                 Attribute: Type=Unknown (61)
    File: SPPR740.SPL,  Name: Wither,                 Attribute: Type=Unknown (61)
    File: SPPR740.SPL,  Name: Wither,                 Attribute: Type=Unknown (61)
    File: SPPR740.SPL,  Name: Wither,                 Attribute: Type=Unknown (61)
    File: SPPR740.SPL,  Name: Wither,                 Attribute: Type=Unknown (61)
    File: SPPR740.SPL,  Name: Wither,                 Attribute: Type=Unknown (61)

     

  16. Near Infinity v2.4-20230729

    Near Infinity is a resource browser and editor for Infinity Engine games, such as Baldur's Gate or Icewind Dale. It is written in Java and available for Windows, macOS and Linux.

    This release introduces a new layer to visualize impeded door cells to the Area Viewer, adds a new check for invalid opcodes, provides a new "Save as..." button for resources, and comes with many more general improvements.

    Near Infinity is available as a platform-independent Java JAR file, Windows installer and macOS PKG installer, as well as a Flatpak application from Flathub for Linux.

    More information as well as a detailed Changelog can be found in the respective topics at Spellhold Studios, Beamdog Forums, and GitHub Discussions.

    Download:

    • GitHub (Java JAR file, Windows and macOS installers)
    • Flathub (Linux Flatpak archive)
  17. [IWD/TotLM] Wrong version of Hobart flagged as 'INNOCENT'?

    I don't know if this is a bug or an intentional decision: The halfling Hobart exists as two creature versions. The first version can be encountered in Lonelywood and is flagged as "THIEF". The second version exists in his hideout in Castle Maluradek where he is flagged as "INNOCENT".

    The way these creatures are flagged allows you kill him in the Lonelywood tavern in front of all guests without any repercussions (provided he can't call for help). But killing him in Castle Maluradek, in the middle of nowhere, will immediately drop your reputation by a substantial amount. Wouldn't it make more sense to swap these flags?

    Btw, this issue already exists in oIWD.

×
×
  • Create New...