Jump to content

Magus

Modders
  • Posts

    312
  • Joined

Posts posted by Magus

  1. Another update for BGforge MLS and IElib. They now support importing IE file formats data from IESDP. Currently, that includes ITM and SPL v1, as well as EFF v1/v2.

    You can help to add more formats. In fact, if you want, you can have most of IESDP data right in your IDE. All it takes is just some copy-paste.

    The update also features a custom Monokai-based theme designed to make better use of the aforementioned data.

    mls-1.13.0-example.png

    Feel free to share feedback on the forum.

  2. Allow me to show off:

    ACTION_DEFINE_ASSOCIATIVE_ARRAY fog_spells BEGIN
      ~%WIZARD_STINKING_CLOUD%~ => 1
      ~%WIZARD_STINKING_CLOUD%D~ => 1
      ~%WIZARD_CLOUDKILL%~ => 1
      ~%WIZARD_CLOUDKILL%D~ => 1
      ~%WIZARD_DEATH_FOG%~ => 1
      ~%WIZARD_DEATH_FOG%D~ => 1
      ~%WIZARD_INCENDIARY_CLOUD%~ => 1
      ~%WIZARD_INCENDIARY_CLOUD%D~ => 1
      ~%CLERIC_WRITHING_FOG%~ => 1
      ~RR#WI502~ => 1
      ~DVCKILL~ => 1
      ~DVWCKILL~ => 1
      ~DVCKILL2~ => 1
      ~WAND13~ => 1
    END
    
    COPY_EXISTING_REGEXP GLOB ~^.+\.spl$~ override 
      GET_OFFSET_ARRAY ab_array SPL_V10_HEADERS
      PHP_EACH ab_array AS ab_ind => ab_off BEGIN
        added = 0
        GET_OFFSET_ARRAY2 fx_array ab_off SPL_V10_HEAD_EFFECTS
        PHP_EACH fx_array AS fx_ind => fx_off BEGIN
          PATCH_IF added != 1 BEGIN
            READ_SHORT fx_off opcode
            READ_ASCII (fx_off + EFF_resource) resource (8) NULL
            TO_UPPER resource
            PATCH_IF opcode == OPCODE_protection_from_spell
              AND VARIABLE_IS_SET $fog_spells("%resource%")
            BEGIN
              READ_BYTE  (fx_off + EFF_resistance) original_resist_dispel
              READ_LONG  (fx_off + EFF_duration) original_duration
              header = (ab_ind + 1)
              insert_point = 99
              target = TARGET_EFF_self
              LPF ADD_SPELL_EFFECT
                INT_VAR
                  opcode = OPCODE_display_special_effect_icon
                  parameter2 = icon_ref
                  resist_dispel = original_resist_dispel
                  duration = original_duration
                  header insert_point target
              END
              LPF ADD_SPELL_EFFECT
                INT_VAR
                  opcode = OPCODE_text_display_string
                  parameter1 = RESOLVE_STR_REF(@1000117)
                  timing = TIMING_instant
                  resist_dispel = BYPASS_MR
                  header insert_point target
              END
              added = 1
            END
          END
        END
    
      END
    BUT_ONLY
    

    Testing required, of course.

    You might be able to trim it down further with CLONE_EFFECT, maybe.

  3. Yes, it's mine. There was never a v8 released. There was (and is) a WIP on github. I think Roxanne's tool uses master HEAD, so it could've picked that up. But obviously it's a bad practice and any feedback about unreleased versions will not even be considered.

  4. Functional way is obviously much better than just writing bytes left and right. The holy grail, however, would be object-oriented style. But I'm afraid it would take a tool other than WeiDU.

    21 hours ago, DavidW said:

    I think the main advantages in simple edits like the one Luke gives are that code is basically self-documenting and, more importantly, that errors tend to produce install-time failures rather than silent bugs.

    These are both very important points, I agree. (And also I think that "sanity" checks included in many mods are actually detrimental to the overall mods quality in the long term. Install-time failures are immidiately obvious and get fixed relatively quick. But if mods "work around" issues by skipping the files, errors can linger for many years).

    And even when not using SFO, basic self-documenting not that hard to achieve by simply defining the corresponding constants:

    COPY_EXISTING ~plyspid.itm~  ~override~
      PHP_EACH web_spells AS index => spell BEGIN
        LPF ADD_ITEM_EQEFFECT
          INT_VAR
            opcode = OPCODE_protection_from_spell
            target = TARGET_EFF_self
            timing = TIMING_while_equipped
            resist_dispel = BYPASS_MR
          STR_VAR
            resource = EVAL ~%spell%~
        END
      END
    BUT_ONLY

     

    22 hours ago, subtledoctor said:

    I feel like I would probably need to have its documentation open in my browser, to make sure I'm using it right; and it is similarly likely I would have the IESDP page for the CRE file structure open when editing with normal Weidu commands.

    A properly structured documentation can be added to intellisense. Which doesn't obsolete the need to read the actual doc first, but still reduces the amount of alt-tabbing.

  5. On 7/15/2020 at 10:37 PM, Greenhorn said:

    Thanks for this. I'm currently playing v.7. As far as I can see, much of it is unusable on TUTU but for BGT this mod will be priceless. 

    Do you mean that components are inapplicable, or you're hitting some issues? Please do report the latter to github.

    I never actually tried TuTu, so I don't test on it. And looking at it, it's hard to even understand what to use. There's V4, and V6 beta, and TuTufix, and also something called EasyTuTu... Is there a definitive version?

  6. On 6/21/2020 at 1:59 AM, temnix said:

    The concession to making the check once every three rounds with a minion is already a bit of a stretch - the characters may rush out of an area after killing someone, and the global won't be set to reflect this.

    The same can happen with baldur.bcs.

  7. 11 hours ago, jastey said:

    The InParty check

    The NPC can talk check

    The actual trigger variable of this dialogue

    damn, I wrote a longish reply, pressed ctrl-z to cancel last words and IPB deleted it all with no possibility of restoring

    Short answer: just these 3 - no difference.

  8. 18 hours ago, Blash2 said:

     

    @qwerty1234567 I would gladly offer you a SoD license (I'm not joking). Since I'm not a modder and can contribute only to a lesser extent, I'd just be happy.

    That would come useful, not only to TnT, but to any mod using the Golem, please do get in touch if you decide to proceed.

    18 hours ago, Blash2 said:

    And, what about making a dedicated topic in this forum? In my opinion your tweak pack is not properly known and should have a better place.

    You're welcome to. I, however, only track github and TnT's own forum, and can't guarantee responding to any messages posted elsewhere.

  9. Quote

    String is a list of whitespace-separated entries, chosen from (case doesn’t matter) bg2=soa, tob, iwd2, pst, bg1, totsc, iwd=iwd1, how, totlm, tutu, tutu_totsc, bgt, ca, iwd_in_bg2, bgee, bg2ee, eet, iwdee, pstee.

    Please note that the items in the list are defined to be mutually exclusive.

     

  10. It's not tested with EET (I think it requires SoD? and I don't have it). But most components should work on any game. You can test, report bugs to github and provide feedback on the forum.

    A new version is due sometime soon, and it'll include more stuff, so it's a good time to chime in.

×
×
  • Create New...