Jump to content

CrevsDaak

Modders
  • Posts

    248
  • Joined

  • Last visited

Posts posted by CrevsDaak

  1. Okay, I actually fixed both bugs, took me a while to get the SFO syntax right, but here it is. What I ended up doing is:

    • Changed the minimal and casting level boost for Scribe Scrolls to 195.
    • Changed the minimal and casting level boost for Empowered Healing 1 to 65, scaling further as the level requirement of healing spells go up.
    • Changed the minimal and casting level boost for Empowered Healing 2 to 130, scaling further as the level requirement of healing spells go up.
    • Made it so the Cancel Scribe Scrolls ability is removed after 60s via opcode 172.
    • The scaling changes to the level requirement on healing spells fixes the maximum healing amount bug. Now a lv8 caster will heal 35hp instead of 45 with Cure Medium Wounds.
    • The changes to the number of levels boosted and required to trigger the effects fix the bug noted in the OP. Note that all changes are required to accommodate for very high player levels.

    Mostly just number changes on a lot of specific lines except for the three extra lines adding in the scaling and removing the Cancel Scribe Scrolls ability after some time. The numbers 65, 130 and 195 I chose because there's a good number of levels before each breakpoint can be reached in-game using regular caster level bonus, meaning it shouldn't ever break as long as nothing gives more than 10 bonus caster levels to a lv50 character.

    Hope this helps!

     

    empowered_healing.patch item_crafting.patch

  2. OK, I am pretty confident I've figured out what's causing this, it's the level boost that's required to trigger Scribe Scrolls, but at the same time used to discern which tier of Empowered Healing to apply.

    The way I would fix Scribe Scrolls being triggered by any healing spell because of Empowered Healing is by changing the behaviour of how it is triggered, since if the spell ability that generates the scroll itself was to be put onto an external spell that went through opcode 326 via a particular spell state set by the innate Scribe Scrolls ability itself (same thing Empowered Healing does), then it would never trigger upon healing spells being cast, however, you'd be adding as many new spells as the game already has spells, which is not ideal. However, I do not have any better ideas. Doing this still conflicts with Empowered Healing so it's pointless.

    And, on top of that, if a level boost is applied upon casting healing spells AT ALL, and nothing is changed, the maximum value for the post-boost level is used, which ends up giving a bigger heal at low levels (Cure Medium Wounds for example heals for 45 hp due to the base 15, plus 15 per level, times 1.5, while for example, at (real) caster level 8 it should heal for 35 instead).

    One way of fixing this would be to add the required caster levels of the Empowered Healing variants to the spell ability headers of those triggered spells, meaning that, for example, sppr103d.spl would have its minimum casting levels raised to 201, 202, 203 etc instead of just 1, 2, 3 which just make the game use the maximum bonus for healing at the lowest level you can cast the spell at. Because there would be no overlap with Scribe Scrolls, I would also suggest making it so that lower required levels are used, since lv50 characters with bonus caster levels from other sources could end up hitting above 255 and thus the spell would have no effect. 75 and 175 would never overlap nor hit 255 for example.

     

    Edit: this post is largely outdated, just leaving it up here for uhh the purpose of historical records...

  3. Only installed the additional spells, spell tweaks, feats and NPC management, and the bug is pretty easy to reproduce though I have very little idea as to what triggers or causes it (reused splstat.ids values is my sole theory and it's only because Empowered Healing uses that). The bug consists of, after a cleric has chosen Empowered Healing, after casting any healing spell once, if any other spell is casted afterwards, the effects of having used Scribe Scrolls are applied (though not properly).

     

    Further testing on an install with ONLY the feats system installed reveals that this still occurs, with Empowered Healing causing the Scribe Scrolls effect to occur after the first cast of any healing spell, leading the second spell to fail, and, if a third spell is cast, that spell targets the caster automatically yet still fails, but it is interesting that it changes the targeting behaviour.

     

    image.thumb.png.bc00516312d79e791eabd5c2a9f8af33.png

     

    Image and logs attached for the sake of it, don't think there is much point given how easily replicable this bug is.

    WeiDU.log WeiDU.log

  4. There is a bug on favoured_soul.tpa, namely on lines 374 starting and repeating on 380 etc (the blocks defining shaman_scripts and shaman_dialogues to be precise) that if a certain script is using OriginalClass, that gets turned into Original!CheckSpellState and thus the script fails to compile. This is caused by the regex not excluding cases where OriginalClass() is used instead of just Class(), and can be easily solved (though I'm not sure if you actually want to replace OriginalClass checks or not... but anyway...) by adding a tilde hat ^ this thing, before Class() on the match outer sprint. This fixes all observed occurrences of the bug, namely on the attached Ajantis script alter_script_error.baf and on aeri25.bcs on BG2EE.

    alter_script_error.baf WeiDU.log SETUP-DW_TALENTS.DEBUG

  5. 15 minutes ago, subtledoctor said:

    Stuff like this is a conundrum; I don’t know how to read whether a given NPC has Spell Thrust as a known spell.

    All the known spells on any given creature are stored in 12 bytes structs regardless of their type and level, so to check one would do something like this:

    COPY_EXISTING aerie12.cre override
      FOR (i = 0; i < LONG_AT 0x2a4; i += 1) BEGIN
        READ_ASCII (0x2d4 + (i * 0x0c)) splres (8)
        PATCH_IF "%splres%" STR_EQ "spwi321" BEGIN
          // do thing
        END  
      END
    BUT_ONLY

    Extending this to re-write it into a level 1 spell (you'd just write_short at 0xd4 + i*0x0c + 0x8) is fairly easy, though I'll have to say that I don't know how your mod handles adding spells.

  6. TuTu doesn't replace fogowar.bam (I would've noticed that), and it seems like the one in my BGT game is identical to the one in vanilla TotSC. Its probably the same one in every IE game, since TuTu disables 3D acceleration on the .ini file, making it look like in BG1 because it's being rendered differently. Pretty simple stuff but left me puzzled till I spent an hour testing today and just found out about it.

    And for some reason Wine hates it when I run the game on fullscreen without 3D acceleration on, but if I run it windowed it doesn't care. Emulation hijinks.

    Edit: :rotflmao:

    holy fuck these effects look awful i had forgotten how the even looked like lmao

  7. I've looked high and low, went over the executable and all the files TuTu v4 touched, but I'm still unable to tell what caused the game to switch to the BG1 FoW instead of using the SoA/ToB fog of war. It's not that I want to fix it or am annoyed by (in fact, all I'm using TuTu for is to test something), but I want to know what caused this change because I'm curious about it and I might go and add it to my BGT install.

  8. Just two little things about priest/spell_swaps.tph:

    1. Magic Resistance is being swapped for Mass Cure for creatures with 40 > MR after Mass Cure is switched out for something else on Undead casters. If any there's any Undead casters with >40% MR, this will incorrectly assign them Mass Cure.
    2. This one is just a nitpick. The list of creatures with Wands of Heavens is arbitrary and doesn't even check whether the items are present (I believe the same happens with the Wand of Cold and Centeol, but I've not specifically checked that). Lack of Flamestrike is no joke for a meager BG1 Cleric, and the randomiser might happen to place one those wands on the hands different divine caster. Anyway, this is hardly convincing and finding out where the wands are would require going over all the items of all the creatures in the game and that takes a lot of time. Nevermind, all the creatures in that list seem to actually have the wand? IDK what's going on here but whatever, SCS's working perfectly fine and if there's an issue it's not here.
  9. Fighting Spirit Trolls in melee isn't exactly the best idea, unless you get yourself a weapon with low speed factor and kite them with it instead of taking the hits. You should also be using spells against them, and, yes, the Druid Grove is one of the areas that has it's difficulty increased the most out of all the tactical challenges. For the troll cove just get in and then get out as soon as you are spotted a few times so that you can fight the enemies in reduced groups instead.

  10. Impressive. You've managed to add all the strrefs for BG:EE into it, nice. If you want I, can put together a patch to quickly add the few EE characters I added into this version. I also did some work on adding the Shaman class as an option but did not finish the spell picker, and have some code checking for things that might set maximum HP (such as checking baldur.lua or for the cdtweaks component) and I think I fixed this but I've not tested it (nor anything else for that matter, but I suppose most should work. I'll test everything later this afternoon).

  11. Re: crashes on non-EE games. Since I'm still playing BGT, I put together this small tool that enumerates and then removes every single opcode that might cause the game to crash from spells (I didn't bother making it do that on one run, so it does two, which is not efficient but it does it's job so who cares).

    COPY_EXISTING_REGEXP GLOB ~^.+\.spl$~ override
      GET_OFFSET_ARRAY ab_array SPL_V10_HEADERS
      PHP_EACH ab_array AS int => ab_off BEGIN
        GET_OFFSET_ARRAY2 fx_array ab_off ITM_V10_HEAD_EFFECTS
        PHP_EACH fx_array AS int => fx_off BEGIN
          READ_SHORT fx_off fx_type
          PATCH_IF fx_type > 318 BEGIN
            PATCH_PRINT "%SOURCE_RES%.spl has invalid opcode %fx_type%"
          END
        END
      END
    BUT_ONLY
    
    COPY_EXISTING_REGEXP GLOB ~^.+\.spl$~ override
      LPF DELETE_SPELL_EFFECT
        INT_VAR opcode_to_delete = 328
      END
    BUT_ONLY
    

    The first part is just there to check if there's anything more that might make the game crash, the second one removes everything that actually does (at least in my install), so it can be left alone and this should still work, given your install is only using that opcode.

     

    This is what someone was reporting about four pages ago. MGoI had an 328 on it and was insta-crashing every single time, leaving no more information that saying it was related to CGEffect.cpp or some shit, which made me quickly realise it had to be this. I'd encourage whoever is currently managing SR to at least include the last action on the code I'm posting here.

  12. Is an EET/SoD-version realistic at any point or very difficult?

    I have no clue which NPCs there are in SoD tbh, so it'll take some more time (not just the new ones but the returning ones from BG1 as well). The EET version should be easy, but I have to do it consciously or I'll end up breaking something.

    Give a man some free time. It might take a while until you finish BG1:EE. Until then, enjoy the game.

    Heh. I have more than enough free time, except I plague it with other stuff. But yeah, let me look to sane code for a couple of weeks :p
  13. Okay, I finally put together a working BG:EE version, and a fully functional BG2:EE version (except for Hexxat... Next version, I promise!). Nothing about SoD yet, and it shouldn't be running in EET (if it does great, if it doesn't, well, I already know it doesn't).

     

    I am not sure why, but you can't choose Axe/Short Bow for Shamans. Probably because they're sharing their proficiency info with Druids when that is listed, I'll fix this for the next version as well.

     

    Shamans don't get to choose spells, they automatically get Entangle and Bless I think :devlook: Next version I'll try to put together a spell picker for them.

     

    As usual, file doesn't have a .exe file, and I haven't added Wilson/Baeloth ('cause they're easter eggs far too perfect to be modified).

     

    Edit: I forgot to mention, the "None of these things interest me." reply when you're given the option to choose a kit is a BG2 string, so in BG:EE it'll show up as "Thank goodness you've returned! It's just not safe for us to travel separately. Please, can we rejoin?" Sorry for this, will fix on the next version as ewll.

     

    Edit2: I've only updated the english/spanish .tra files, since they're the only languages I know. If anyone wants to correct/update the Polish/French ones I'll be happy to include them right away.

     

  14. A minor incovenience is the Clay Golem curse wounds, which some can't be removed without breaking the 4th wall. Will you eventually look into this if you get to release a new version DavidW? I like the idea, but somehow I think I must be able to remove it (temples/priests/scrolls).

     

    Cheers

    Use the Mage/Cleric spell, that one does work.
  15. I'd suggest making Vithal summon something (something interesting, like some Golems or some extraplanar creature that doesn't get pwn'd by Death Spell), and give two bodyguards to Conster, I'd suggest a couple of dual-wielding Orcish Barbarians (19 STR & 19 CON), and have Conster cast Haste at some point (maximum carnage!!!!!!!!!!!!!!!!).

     

    Also while we're at this, this reminds me I was putting a mod like this one a long time ago, specially to buff Tranzig, since he's one of the easiest battles in BG1 (personally I'd give him a Cleric and a Fighter with both ranged and melee weapons, although the mod adds two fighters, a thief and a cleric averaging level 7 and makes Tranzig level 12... Which is a bit hardcore considering the player is probably under level 6). Other ideas I didn't implement were: the Zombie farm (add a Necromancer/Vampire idea isn't mine, I got it from someone on the beamdog forums), the Trademeet Crypt (even with SCS it's a bad joke), the Kozah dungeon/Doomslayer (also, make it more interesting because it's sorta boring) and the Shadow Thieves contacts (I was thinking about making another contact (F/M) that Dimension Doors in).

  16. Lavok is super easy to cheese if alone if you do it right (offscreen cast Incendiary Cloud, back off and wait till he is neutral). Add the devils near the entrance, because otherwise, cheesing him will be still as easy as it is right now.

     

    Also, when you first fight him, he's possessed, so add demons/devils according to what is possessing him in that moment (I've played this today but I'm so retardedly tired I can't even remember what they were... Anyway the game probably calls them demons anyway lmfao).

  17.  

     

    Well, it works with BG2:EE for now. I yet have to start on the BG:EE version (and the SoD version as well).

    Erhm, and EET too.

    You might do best to forget the BG:EE and SoD and just move to EET first and then check later what to use from that to the others. Or NOT. It's up to you of course.

     

    Been out of the game long enough that I didn't even know about EET. Definetely seems worthwhile from a player perspective to just focus on EET and put the others aside. Of course modder gonna do what modder gonna do.

     

    How would NPC continuity in EET work with full Level1NPC functionality though? Is it as easy as just installing Level1NPC once for each character and then just use that .cre for the whole trilogy/SoD?

     

    The EEs are finally starting to look like a superior product. Once EET is polished and has full Level1NPC and SCS functionality, I'll probably say goodbye to my GoG install for good. You're doing God's work, Daak

     

    Actually, I'm not doing any type of work right now. :p I have been working more onto an NPC mod (and the multikit mod and probably a few more) and getting a webserver to work, besides finishing high school. I didn't touch this mod since almost a month. Worse thing is, that I forgot what I've already implemented for the Shaman to work and I'll have to go through the whole code again just to check. :facepalm: On Thursday I'll start working on this (I have an exam tomorrow (Monday), and then #1 priority is watching the new SW movie, not modding lmao), I promise.

     

    I think I'll never get used to the EEs... They've changed too much stuff on the engine side, and I have a crush on BG2's GUI... Edit: And BG1-in-BG2's GUI as well...

  18.  

    I'm going to suggest prompting the user with a quick READLN for the stack values. I personally like very different values for different type of things (80 for ammo, from 20 to 40 for daggers/axes, 12 for potions and 999 for gems because why not).

    READLNs are a pain to support in BWS. If you must have one, please use subcomponents, so there are a few standard amounts as other subcomponents and then a "custom amount" subcomponent where it does a READLN and asks for a number.

     

    Choose a maximum stack size for potions:

    1] 12

    2] 20

    3] Custom (prompt for a number)

     

    Etc.

     

    Also as noted, various other mods already tweak this (Tweaks Anthology and the Difficulty and Tweak mod are prime suspects), so I'd question the necessity of tweaking it at all here also...

     

    Edit: Another argument for minimizing READLN use -- what the user entered doesn't show up in the WeiDU.log, which means you have to ask for additional info when supporting users of the mod.

     

    Yeah, sounds like two good reasons not to use READLN (at least by default).
  19. I'm going to suggest prompting the user with a quick READLN for the stack values. I personally like very different values for different type of things (80 for ammo, from 20 to 40 for daggers/axes, 12 for potions and 999 for gems because why not).

  20. P.P.S.

    Is Gauth/Beholder summon too crazy?

    IMO yes. 1) They are the most script dependant creatures in the game, and I don't like my summoned creatures to be controlled by a script (because they usually just suicide when this happens). 2) They would be beyond broken. Just gather some thrash summons to bait out the enemies' Death Spell, then drop the Gauth and it'll cuck them unless they have Spell Turning and it doesn't use the Anti-magic Ray first.

     

    If you gave the summoned Beholders cast-at-will innates with Aura Cleansing (remove/re-add the innate every time it is used, with some delay), you could make them work manually, but again, they woulds still be broken (and REALLY hard to manage). Still, I am going to say this sounds like a lot of fun... And a lot of work, as well.

  21. I think it's way easier to update level1npcs than to create a new one. Also, lvl1npcs can be automated. Check the batchlog folder. You can just modify the .txt to your tastes and run the .cmd file (I've never tested this nor I can guarantee it works but it's all I can offer right now).

     

    The mod itself could be modified to make use of a much modern way of automation for the installation, but I'm not sure how that would work (I would use an external script (Ruby, WeiDU, bash, it doesn't matter, it just has to do it's job) to check for an individual .ini for each character and then launch WeiDU to install each component). Then you copy-paste the folder with the .ini files, launch the automated installer/script and voila!

  22.  

    Well, it works with BG2:EE for now. I yet have to start on the BG:EE version (and the SoD version as well).

    Erhm, and EET too.

    You might do best to forget the BG:EE and SoD and just move to EET first and then check later what to use from that to the others. Or NOT. It's up to you of course.

     

    Oh yeah, I forgot about EET, LOL. Yeah, probably I should do that. Good advice Imp!
  23. Holy shit, infinite praise from me if you do update Level1NPC to work with BG:EE and BG2:EE. That's basically the last (and biggest) barrier between me and the enjoyment of those titles.

    Well, it works with BG2:EE for now. I yet have to start on the BG:EE version (and the SoD version as well). It's hard to make it work on BG:EE because I have to adapt the code that is there for BGT/TuTu without breaking anything.
  24. Just out of curiosity: is there any plan to make it work for BG:EE at any point in the future?

    Probably, but in the near future I plan to add Hexxat, ask Miloch for his code and bugfixes and add the Shaman class (!). Right now I got swamped with homework and tests, but in a month I'll finish school so who cares.

    Being a (rather well accomplished at being a rather annoying little) :devlook: , I'll note that's a .tar.gz, not that there's anything wrong at being an @$$40l€ like myself linux mod, but as the original mod was a Windows one, it might be good to attach that one too.

    It's not that I use linux, I'm on osx 10.10, but I'm weird and that's why I forget normal people use zip so I usually tgz everything (and I literally never remember to ship WeiDU with it lmao mb).
×
×
  • Create New...