Jump to content

Mike1072

Gibberling Poobah
  • Posts

    3,186
  • Joined

Posts posted by Mike1072

  1. 1 hour ago, neuroghast said:

    My only suggestion would refer to the page where we can read the new spell descriptions. It looks beautiful but it's not convenient to back and forth between pages to see new and old versions, etc. If there is any way, it would be great if the versions could be seen side by side. Even more if the changed values (like duration, new saving throws, penalties, damage or whatever) could be highlighted. I know this second suggestion may be a little harder to implement, but in an ideal world it would be great. In any case, just seing spells side by side would help a lot!

    Thanks, that is a very good suggestion.  Keeping the docs up to date is always a challenge, which is why these are generated using the actual files and descriptions.  Displaying both descriptions side-by-side seems doable, but trying to find a way to automatically identify and call out individual differences doesn't seem like a good time investment.

    I don't know when I'll have time to dedicate to this, but we'll see.

    We have a topic dedicated to discussion of the docs if you have any additional suggestions: https://www.gibberlings3.net/forums/topic/30765-spell-descriptions-and-other-documentation/

  2. 6 minutes ago, Mike1072 said:

    I wasn't sure I understood what you were attempting, but it looked like you were first modifying some source files, then cloning those source files and making further changes to the clones.

    Looking at the actual resources in Near Infinity, there aren't any #111 effects on the ITM files, so you may want to be applying that ALTER_SPELL_EFFECT function on the SPL files that create the items in the first place.  But that is a separate discussion.

  3. Feel free to ignore Jarno in this case.

    Firstly, if you want to do an "else if" (like in C-style languages), that's totally valid and common:

    ACTION_IF (x) BEGIN
      // do something
    END
    ELSE ACTION_IF (y) BEGIN
      // do something else
    END

    For what you're doing, it's easiest to extract the stuff that will be different into the game-specific checks and then proceed with the shared code.  For example, you could set a variable to a specific value and then reference the variable in the shared code.

    I wasn't sure I understood what you were attempting, but it looked like you were first modifying some source files, then cloning those source files and making further changes to the clones.  You could do that like so:

    ACTION_IF GAME_IS ~BGEE~ BEGIN
      OUTER_TEXT_SPRINT source_paw ~brbrp~
      OUTER_TEXT_SPRINT destination_paw ~brbrp2~
    END
    ELSE ACTION_IF GAME_IS ~BG2EE~ BEGIN
      OUTER_TEXT_SPRINT source_paw ~cdbrbrp~
      OUTER_TEXT_SPRINT destination_paw ~cdbrbrp3~
    END
    ELSE ACTION_IF GAME_IS ~IWDEE~ BEGIN
      OUTER_TEXT_SPRINT source_paw ~werewlf1~
      OUTER_TEXT_SPRINT destination_paw ~werewlf3~
    END
    
    ACTION_IF FILE_EXISTS_IN_GAME ~%source_paw%.itm~ BEGIN
      COPY_EXISTING ~%source_paw%.itm~ ~override~
        LAUNCH_PATCH_FUNCTION ~ALTER_SPELL_EFFECT~ // LINKS TRANSFORMATION WITH CORRECT PAW ATTACK
          INT_VAR
            check_globals = 1
            check_headers = 1
            header = 1
            header_type = 1
            match_opcode = 111
            timing = 2
          STR_VAR 
            resource = EVAL ~%destination_paw%~
        END
        BUT_ONLY
      
      COPY_EXISTING ~%source_paw%.itm~ ~override/%destination_paw%.itm~
        LAUNCH_PATCH_FUNCTION ~ALTER_ITEM_HEADER~ // dice size and dice thrown
          INT_VAR
            check_globals = 1
            check_headers = 1
            header = 1
            header_type = 1
            dicesize  = 12
            dicenumber = 1
            damage_bonus = 0
        END
    END

    You may also want to add a condition to the component to prevent users from installing it on games other than the ones you support.  You can do so by adding a REQUIRE_PREDICATE right after the start of your component.  When the condition isn't met, the user will be prevented from installing the component and they will instead see the associated message.

    BEGIN ~My Component~
    REQUIRE_PREDICATE GAME_IS ~BGEE BG2EE IWDEE~ ~This component can only be installed on BGEE, BG2EE, and IWDEE games.~

     

  4. G3 is proud to welcome a new mod to the site: Transitions, by Lauriel.

    Transitions requires EET, BGEE, SoD, or BG2EE.

    It smooths out the transitions between Baldur's Gate campaigns and allows continued play after boss enemies have been defeated. In addition, it adds personal housing, another Bhaalspawn power, quests, and other content.

    You can find further details via the links below.

  5. Welcome!

    You may be able to locate the game folder by right-clicking the game in Steam, selecting "Properties...", then clicking the "Local Files" tab and hitting the "Browse..." button.  That should open up the folder where the game is installed.

    I don't use macOS, so that's the extent of my knowledge.

    I know @subtledoctor uses a Mac and would encourage you to use his launcher for installing mods on Macs (MWL).  You can install mods without it, but it may provide an easier experience.

  6. 1 hour ago, Sir-Kill said:

    old topic but the links are outdated

    Thanks, I've updated them all.

    1 hour ago, Sir-Kill said:

    also the kitlist.2da section of the tutorial - proficiency - is known (points to weapprof.2da)

    Fixed.  There are probably some other references that are a bit out of date, particularly those that relate to limitations that have been removed in the Enhanced Editions.

    1 hour ago, Sir-Kill said:

    also is there a explaination what the 'unusuable' hex numbers are? an assasin has 40000 but what is that?

    Each of the 32 bits in the unusability value uniquely correspond to a specific vanilla kit.  The hex unusability value of "0004 0000" which an assassin uses can be expressed as "0000 0000 0000 0100 0000 0000 0000 0000" in binary.  Looking at it this way makes it easier to see which of the 32 bits "belongs" to the assassin.

    If a kit has this bit set to 1, the game will treat it as an assassin in terms of restricting it from using items that assassins can't use.  It can also affect other things, like limiting the number of thieving skill points that the kit gains per level.

  7. 9 hours ago, Luke said:

    Separately, I'm having some troubles syncing forks. My fork is 5 commits behind (and 0 commits ahead of) the original project, but git fetch upstream does nothing...

    Fetching is just one of the first steps in the link you posted.  You then have to merge the changes into your current branch.  If you're dealing with the master branch, the command would be:

    git merge upstream/master
  8. It's a common practice to link mods in your signature.  Take a look at the signatures used by @jastey or @Lava.

    Everyone is free to post about their mods in this forum or general mod discussion.  (We discussed adding a special forum dedicated to that purpose, but weren't sure what to name it.)

    The only thing I'll say about official hosting is that it something that we evaluate on a case-by-case basis in private correspondence with the mod author.  It involves work on our end, so we don't enter into it lightly.

  9. 2 hours ago, Chitown Willie said:

    I think the Lightning Bolt spell is broken.

    My Level 1 Priest of Talos is doing way too much damage:

    Good catch.  It looks like the SR version of spcl722.spl is cloned from the wizard version (spwi308.spl), and that version assumes you won't have access to it until you are 5th level.  It doesn't include variants for levels 1-4, which the Priest of Talos needs.

  10. 6 hours ago, Jarno Mikkola said:

    And the side effect of this is that it doesn't make a copy of the file into the mods backup folder. That has no significant benefit to others, but fair few people will definitely not like if you don't use it to avoid clutter.

    My comments were directed specifically to cloning, aka creating a new file from an existing one.  There are very good reasons to use it in other situations.

    6 hours ago, Zoerkus said:

    I wanted to say 'Thank you!' for the fast, and detailed, responses. It's actually pretty amazing as I'd guess alot of things I did ask are covered in tutorials somewhere, but I find a lot of dead links (given the age of things) so I appreciate the help.

    I still find the games, the engine, and the setting beautiful and while I don't think I'll ever produce anything of significant value, working in the world is enjoyable.

    Thanks all for helping out!

    No worries.  I would write tutorials if I weren't so lazy but I feel like there will always be specific questions that need specific responses.  Good luck on your modding adventure!

  11. 1 hour ago, Zoerkus said:

    What is the most compatible/preferred way? 'raw' editing of the .cre and simply providing that, or scripting the modifications I'd make in NearInfinity by hand?

    Whichever is easiest for you to maintain.

    There are some values (like the name of the script and dialogue files) that are unlikely to ever change, so it might be confusing for debugging if the value in the .cre file is not actually used and is instead replaced at install-time.  But there's no real harm in setting them via code if you prefer.  If you decide you want to change any of the values, editing text is easier.

    Proficiencies or spell memorizations might be things you decide to swap around as you work on the mod, so that may be a reason to consider setting them using code.  Or you may decide later you want to incorporate adjustments to them based on the presence of other mods, which would be easier to do if they were being set using code from the start.

    1 hour ago, Zoerkus said:

    Oh, while I'm at it, should I wrap the above in a patch statement and end it with BUT_ONLY_IF_IT_CHANGES? I've not figured that part out either.

    When using BUT_ONLY_IF_IT_CHANGES, if your patches make no changes to the file, it will NOT be copied into the game.  When you're trying to clone a file, you definitely want the new file to be created, so there's little sense in using BUT_ONLY_IF_IT_CHANGES.

    45 minutes ago, Zoerkus said:

    Ok so if I understand you right, there's nothing 'wrong' with using NearInfinity to modify the .cre and use that output instead of patching?

    It's fine and is probably most widely used method for adding new files to the game.

    45 minutes ago, Zoerkus said:

    For sake of learning, I could also do this:

    COPY_EXISTING ~arlin.cre~ ~override/IZMendak.cre~

    Yes, you could.

    The benefit of doing this is that it will pick up changes that other mods have made to that creature.

    The downside of doing this is that it will pick up changes that other mods have made to that creature.

    For creating a new (joinable...?) NPC, I don't see a need for it.  There's a good chance it would cause you grief rather than solve any problems, if it ever came up.

  12. 13 hours ago, Jarno Mikkola said:

    It has no modifications done to the .spl files offsets 0x003a, it's in the normal BG2 game, a sppr315c.bam, which is same in the Spell revs -files. But .bam is not copied during the install process. ... you might want to fix that.

    No, it doesn't need to be copied over if it already exists.

    2 hours ago, subtledoctor said:

    Guys, guys, this is a known bug. Well, known to me, at any rate. Just an odd interaction between the latest version of SR and the latest version of SCS

    To fix manually, edit CMW in NI and set the icons to sppr315B/C. Eventually SCS will likely need to fix the issue. 

    Thank you, I thought that it sounded familiar but I didn't want to lay blame based on a vague recollection.

    11 hours ago, kreon said:

    I could only find SPPR315B.BAM while I was using near infinity - not sure if that's important or if I'm doing something wrong. That's just the icon with the stone backdrop. It works fine though so thanks all!

    There are two locations in SPL files where icons are specified:

    • the spellbook icon is stored in the SPL header and this is where the .BAM file variant with the "C" suffix should be used
    • the stone icon is stored in the ability header(s) and this is where the .BAM file variant with the "B" suffix should be used

    In Near Infinity, the place to assign the spellbook icon can be found by navigating to the SPL file, clicking the Edit tab header, and locating the field labelled "Spell icon" at offset 0x3a.

    The place to assign the stone icon can be found on the same Edit tab by scrolling down to the list of abilities at the bottom, and then for each ability (labelled "Spell ability 0", etc.):

    • either double-clicking it or selecting it and pressing the View/Edit button
    • locating the field labelled "Icon" at relative offset 0x04
×
×
  • Create New...