Jump to content

K4thos

Modders
  • Content Count

    1,380
  • Joined

  • Last visited

Posts posted by K4thos


  1. Quote

    If we have to code familiar mods in a certain way to be compliant with EET's new system, do you think you could publish a guide or something, on how to do that?  Or, I guess, how to circumvent the EET changes entirely and allow the mod to control familiar stats, and effects on their summoner?

    not sure if you've read it: 

    Quote

    If the question is the stats of familiars at different stages of the game - 12hp in BG1, 24 hp in BG2, 48 hp in TOB, etc. - then could that not be achieved with different level-based ability headers in the FF spell itself?  Or have the familiar perform a polymorph upon being summoned, into a form appropriate to the caster's level?

    it's a very old change and I no longer remember exact reasoning behind choosing this implementation over another. Any change to this would require lots of testing, so don't expect it any time soon. Not sure if it's even worth it considering:

    - component 66 probably already works if it uses vanilla Find Familiar spl files,

    - component 67 should already work (from what I understand from description) if you use vanilla CRE names (just extend this patching to familiar CRE files imported from BG1 - in EET they have _ suffix)

    - component 68 could be implemented by patching just K#FAMSUM.BCS (which is pretty self explanatory how to do it if you open the file and look what's in there)

    - component 69 is very similar to EET Tweaks component "Familiar death consequences"

     

     


  2. Quote

    Thanks for the response... but that didn't quite answer it for me!     I understand you correctly, does that mean I cannot use the basic Find Familiar spell in EET games?  Opcode 192 cannot be used?  I have to manually script the summon?  If so... how does one do that?

    you can but in such case you will remove the EET feature that allows summoning different CRE files in different parts of the game. If you prefer it like this you can use this code to get rid of EET implementation:

    ACTION_FOR_EACH file IN FAMCAT_ FAMDUST_ FAMFAIR_ FAMFER_ FAMIMP_ FAMPSD_ FAMQUAS_ FAMRAB_ FAMCAT FAMDUST FAMFAIR FAMFER FAMIMP FAMPSD FAMQUAS FAMRAB FAMCAT25 FAMDUS25 FAMFAI25 FAMFER25 FAMIMP25 FAMPSD25 FAMQUA25 FAMRAB25 BEGIN
        COPY_EXISTING ~%file%.CRE~ ~override~
            LPF DELETE_CRE_EFFECT INT_VAR opcode = 232 END
        BUT_ONLY
    END

    You will also need to restore vanilla SPCL342.SPL and SPWI123.SPL since EET removes opcode 192 from them and adds script execution instead.

    Alternatively, if you want to keep EET implementation, you can edit:

    - K#FAMSUM.BCS - controls which familiar will be spawned and initial bonuses

    - K#FAMKIL.BCS - controls what happens when your familiar dies

    - K#FAMREM.BCS - used to manually remove the familiar without negative consequences (for example after importing character that has familiar to new game or at the end of SoD, so that player can summon new one after leaving the cage)

     


  3. unswered here: 

    all it does is unhardcoding find familliar spell to no longer use opcode 192 but scripts instead, so that different CRE files can be summoned in different parts of the game. And since summoning and removing familiar scripts are meant to work exactly like opcode 192 by default, hence the K#FAMPRO global variable usage.

     


  4. EET changes find familiar spell to trigger K#FAMSUM.BCS, which does the same thing as original opcode 192 but allows to easily set which CRE file will be spawned (different in BG1, BG2 and ToB). Also vanilla familiars trigger K#FAMKIL.BCS on death (via cast spell on condition opcode) in order to implement the same penalties as opcode 192. This way the system is completely unhardcoded and does what we need using vanilla CRE files with no other changes necessary.

    Quote

    Hmp.  There's got to be better ways to do that...

    I'm all ears.


  5. Quote

     

    I just saw this in a post about modding on Linux:

    "There's one other issue unique to Linux (and macOS) that we haven't entirely dealt with. Mods that recompile the chitin.key file with additional paths will use backslashes as path separators (because windows). Argent77 has written some code for his DLCbuilder tool that replaces the wrongslashes with rightslashes. I have packaged it into a separate mod which can be downloaded below. You ONLY need this if you aren't using DLCbuilder or K4thos's Enhanced Edition Trilogy, which has this built into the installation process as well."

    Does EET alter chitin.key? I didn't realize that. To be perfectly honest I don't really know what chitin.key is or does. But I suspect it cannot be replaced in mobile games. (I'll properly test that when I get a chance.)

     

    EET_end.tp2 has this code contribute by Argent77, so I assume nothing else is needed:

    // Works around a bug in the game engine which fails to load KEY files containing backslashes as pathname separator
    // Problem shows up after MAKE_BIFF is used on osx and linux games
    COPY ~chitin.key~ ~chitin.key~
        READ_LONG 0x08 numBiffs
        READ_LONG 0x10 ofsBiffs
        FOR (idx = 0; idx < numBiffs; ++idx) BEGIN
            SET curOfs = ofsBiffs + idx*12
            READ_LONG (curOfs + 0x04) ofsBiffName
            READ_SHORT (curOfs + 0x08) lenBiffName
            READ_ASCII ofsBiffName biffName ELSE ~~ (lenBiffName) NULL
            PATCH_IF (NOT ~%biffName%~ STRING_EQUAL_CASE ~~) BEGIN
                INNER_PATCH_SAVE biffName ~%biffName%~ BEGIN
                    REPLACE_TEXTUALLY ~\\~ ~/~
                END
                WRITE_ASCIIE ofsBiffName ~%biffName%~
            END
        END
    BUT_ONLY
    Quote

    * Second question: is there something I can change in the .tp2 file to turn off biffing? My relatively crude mod manager on MacOS has no facility for adding arguments when it runs Weidu. It would be a lot easier for me to simply keep a copy of EET that doesn't biff by default. (For that matter, could biffing maybe be sone kind of .ini/settings option, the way e.g. Item Revisions has .ini options you can set before installing?)

    just make this line return false to skip biffing:

    ACTION_IF (~%argv[0]%~ STRING_CONTAINS_REGEXP ~[bB]~ = 1) BEGIN
    Quote

    Does EET alter chitin.key or the game executable?  Does it make changes of a sort that cannot be ported to other platforms? 

    it does patch it for windows, linux and mac (although I don't know if this one works since I haven't received a confirmation, requested earlier in this topic, regarding relative path to mac os game executable). The changes are minor (removes some hardcoded spells references that caused problems in ToB, gets rid of hardcoded DAYNITE / NITEDAY movies and some other stuff that I don't remember what it’s for). Even if you skip executable patching I wouldn't expect huge issues on a tablet. Here are the changes (implemented in lua since using weidu REPLACE_TEXTUALLY on an executable may result in out of memory problem): https://github.com/K4thos/EET/blob/master/EET/lib/binary.lua


  6. this sounds like a very nice mod, indeed. Congratulations!

    Quote

    7 Elminster makes an Appearance:

    Spoiler

    Elminster will turn up once again in front of the palace.

     

    Is this original content? If I remember correctly vanilla game already had unused lines for Elminster that refer to defeating S.

    btw. same is true for Volo - his new dialogue will show up without any edits, IIRC.


  7. We don't usually disclose the percentages or dates. If there is no new post about the progress then there is nothing new to announce (and in such case you definitely should not hold on playing the game). We work on this mod as a hobby, and disclosing too much information could lead to wrong expectations from the community in case of delays and put an unwanted pressure on the EEex author (since further mod development depends on EEex updates).


  8. based on my test with vanilla BG1 link between west edge of Durlag's Tower area and Gullykin (ENTRY_NAME set to N, DEF_ENTRY set to 1) the party ends up in the middle of the northern part of the Gullykin, right here:

    AFo5gRo.png

    Not sure what would happen if that part of the map would not be traversable, but in such case you can just use entrance name (btw. BG2 doesn't have a single link that would depend on DEF_ENTRY and in BG1 it's also not that common)


  9. DEF_ENTRY: It's the default entry location (ignored if ENTRY_NAME entrance exists, I think).
    1 = Northern edge
    2 = Eastern edge
    4 = Southern edge
    8 = Western edge

    ENC1-5: ARE file name where optional random encounter takes place (chosen randomly from the available areas). "N" here means "none".

    ENC_PROB: % chance for random encounter


  10. Quote

    But this doesn't work, because the tildas used in the dialogue are already being engaged by REPLACE_TEXTUALLY. Anybody know how to do the replacement in such a case?

    from weidu documentation:

    String   This is how you tell WeiDU what text you want shown to the player. For international mods or international translations, you may use any encoding you like (that is, you are not restricted to 7-bit characters or Latin-1 or anything like that).
    is "abcdef" A string can be any sequence of characters not including a " that is enclosed in ""s.
    or ~abcdef~ A string can be any sequence of characters not including a ~ that is enclosed in ~~s.
    or %abcdef% A string can be any sequence of characters not including a % that is enclosed in %%s. This is handy for Big5 translations, since " and ~ can be part of Big5-encoded characters.
    or ~~~~~abcdef~~~~~ That’s five consecutive tildes on each side. A string can be any sequence of characters not including ~~~~~ that is enclosed in ~~~~~s. For example, string #8750 is ~!@#$\%^&*()_+-=[]{}\|;:'",<.>/? and can be given to WeiDU as ~~~~~~!@#$\%^&*()_+-=[]{}\|;:'",<.>/?~~~~~ (the content of the string is shown in red for clarity).
    or String ^ String String literal concatenation. The second string is appended to the first string. No whitespace is added. Thus "hello" ^ "World" is the same as "helloWorld".
    Quote

    The problem is with dialogues where Enemy() is within the parentheses of ActionOverride. For example, ActionOverride("guard",Enemy()). In these dialogues the second parenthesis will be deleted by my substitution.

    you can use REGEXP within REPLACE_TEXTUALLY. Try this to catch both Enemy() and Enemy() enclosed within ActionOverride (that END is not needed):

    REPLACE_TEXTUALLY ~Enemy()\()?\)~ ~Enemy()\1 ApplySpellRES(somethinghere)~

     


  11. 10 minutes ago, Jarno Mikkola said:

    Are you sure this is actually in game effect, or just description intent, which was never implemented ? ... as you can't hit things outside the visual range of the attacker. That's likely the reason why it was removed in the first place.

    it was not removed, the code that automatically generates descriptions just wasn't good enough to list it. Since there are no BG items with bonus like this I didn't think about comparing launcher range values. I’ve noticed it listed on the IWD2 side by randomly comparing descriptions in the HTML file. The converted item itself already had correct value (150 instead of 100 - still within visual range, I think), the bonus was just not listed in the automatically generated description.


  12. New versions of HTML files with item descriptions have been uploaded to dropbox. Changelog:

    - Implemented Saving Throws penalties following feedback from this topic
      * negated HoF -10 ST bonus
      * implemented new formula for ST penalties that converts IWD2 inflated values to BG style range of -1 up to -5
    - Fixed few Saving Throws assignments:
      * Xvimian Fang / Xvimian Fang of Despair: Death => Petrification/Polymorph
      * Lamp Oil: Rod/Stuff/Wand => Breath
      * Lolth's Sting / Lolth's Cruel Sting: Rod/Stuff/Wand => Spell
    - Added missing "Weapon range increased by 50%" bonus description (Sophias Flight and Sophia's Arc bows)
    - Added missing "Immunity to bleeding" bonus description (Periapt of Wound Closure)
    - Added missing "Damage type: " to Halbards "Slashing or piercing, whichever is better" description


  13. Quote

    can random encounters between IWD1 areas spawn creatures only present in BG1&2EE - since an IWDEE-based IWD-in-EET won't include many BG1&2EE creatures. 

    there is no such limitation. All CRE files from vanilla games used in encounters will be copied to unique files. You can design encounters using any CRE files from BG:EE, BG2:EE, IWD:EE, IWD2. Or you can create new CRE files from scratch.

    Quote

    also how should random encounters when travelling between BG areas and IWD areas be handled? can you ensure that from whichever BG location you travel to any IWD location, you can have a random encounter?

    yes. It's possible to have random encounter chance, force random encounter, encounter to take place in particular coordinates of the worldmap etc. I can implement it the way a person responsible for designing random encounters envisions it

    Quote

    Also, what should the habitat be in those, should it always be the snow areas, or a mix of existing areas and new ones?

    Between IWD1/HoW/IWD2 areas only snow areas since that's what we got and it fits the surroundings.

    When it comes to random encounter that can happen when you travel between BG <-> Icewind Dale my idea is to give a small chance for an encounter (for example Pirates attack, maybe some monsters like Harpies, Kuo-Toa etc) to happen somewhere on the sea between those locations – that’s why I’ve requested a boat image.

    You first travel to Icewind Dale via boat (see IWD2 intro for a story framing) and once there you can use worldmap to travel back to BG areas (at least in portions of the story that it makes sense). So even though we're not showing how the travel back and forth looks like the player knows that it's done by the sea each time thanks to the random encounter that may happen.

    So with this in mind using BG1/BG2 random encounter areas art don't seem like something necessary although I’m not strictly against it if that’s what encounter designer wants to implement.

    Quote

    Is this the kind of information you'd need to create a random encounter:

    IWD1 encounter #1, any chapter
    area: gorionar 5
    Kuldahar <> Vale of Shadows (AR2100 AR3000)
    WOLF.CRE - Wolf x10

    yes. Ideally with percentage chance value for the encounter (for example 5%). For easier implementation additional information where to place the party and CRE files on the map (image coordinates) would be useful too.


  14. 1 hour ago, Isewein said:

    This looks fun. Are you planning to make those available for basic IWD EE as well? I respect the concept of IWD in EET but feel that it just does not really fit in naturally story-wise and so prefer to keep my games separate, but IWD could certainly use a few random encounters.

    whole mod is meant to be installable also on top of IWD:EE down the line, so yes (IWD:EE platform has less priority for now though). Also even though I'm not planning to extract/maintain different parts of the mod as separate mods/components, I'm not against others doing so (if people contributing content for particular feature also don't mind)

    edit: from the get-go you will be also able to play IWD1/HoW campaigns separately from the BG story via EET "Select Campaign" feature (which works like IWD:EE base game but with additional features that this mod introduces like random encounters, voiced greetings, optional IWD2 rules, etc.)


  15. Thanks for your work, Fluke565.

    Quote

    Ah ok, will make sure I do those in sand then. Luckily because they're bmps, can just do a colour find a replace in GIMP if we need switch them back to snow at a later date. Probably not going to work... but I don't suppose we could just copy wal_01 from iwdee to bg2ee? Obviously that would mean deep water changing to snow sounds, but is deep really ever used?

    If I remember correctly "deep water" SR color is used in some BG1 maps near water, so can't be replaced without regressions. Yellow color is not used in any BG1 and BG2 areas, which makes potentially fixing it on engine level safe. This could be likely fixed via EEex but on the other hand "sand" sounds are acceptable imo, so not sure if it's worth bothering Bubb with it.

    Quote

    If anyone is planning to create encounters on these maps, let me know  - if we don't get many takers, I can have a go at those more slowly.

    I have a few ideas, but would welcome a brain storming of possible encounters (no idea is a bad idea).

    currently you're the only person interested in designing actual encounters. If anyone would like to help with it please share your ideas/thoughts in this topic.


  16. Please upload IMOEN2.BCS file. With it I should be able to at least reproduce that Imeon loosing XP bug (since the EET code for XP decrement is in that file, there has to be something in your version of the script that conflicts with it, even if I can't reproduce it with just SCS component installed).


  17. 35 minutes ago, czacki said:

    There's also the case of Jan getting abnormal amount of exp - way beyond charname's XP.

    can't reproduce it with you save after installing SCS component. Jan leveled up to 12/14 (880 000XP * 2 = 1 760 000) which is in line with your CHARNAME total XP in that save = 1 637 498 (not exactly the same value but very close)

    Imoen also didn't loose the XP like you described.

    No idea what is happening in your game but it looks like SCS component is compatible with vanilla EET (at least based on this limited test case)


  18. SCS readme file says:

    Quote

    This component makes it much easier to customise NPCs and to make sure they keep up with your main character even if you swap them in and out of the group. When it is installed, NPCs (including mod-added NPCs) join your party at level zero. If you want, you can activate a special 'customise' power on their innate abilities to change their class and kit to whatever you like. After that, you can level the character to first level and choose their proficiencies, skills and the like. The character will continue levelling until they reach about the same level as your character. (The 'customise' power is unavailable once you increase above level zero.)

    so I don't see why Hexxat, Jan or Mazzy getting about 4 000 000 XP when your CHARNAME also has almost 4 000 000 should be considered a bug. Sounds like it works as expected here.

    The only compatibility issue seems to be Imoen losing her XP like you mentioned. EET adds few lines to her script to handle her XP before dual classing (I think, can't say I fully understand what was the purpose for it), which likely conflicts with SCS code - I will install the component and see what's up.


  19. Quote

    Hello there. This is my first time installing EET, since I was so curious. I only got as far as successfully merging Baldur's Gate EE with the SoD expansion via DLCMerger. I own copies of the Baldur's Gate games on Steam, by the way. I have played through the game a bit with mods, but I uninstalled it, deleted all mods I had beforehand and re-installed with v2.5 just so there wasn't any interference with the installation of EET.

    I suspect you deleted everything in override directory instead of uninstalling mods. Which means your BG:EE folder still has weidu.log file and weidu thinks it's not a clean installation. Deleting whole directory and installing the game again should solve this issue.

×
×
  • Create New...