Skip to content

[(BGEE, BG2) bug] Monster summoning I&II duration

CamDawgCamDawg Member, Developer Posts: 3,438
edited August 2012 in Fixed
The durations for monster summoning I & II are incorrect; I from the get-go and II once you start casting at levels 16+.
// duration for monster summoning i, ii incorrect when cast at many levels
COPY_EXISTING ~spwi309.spl~ ~override~
~spwi407.spl~ ~override~
READ_LONG 0x64 "abil_off" ELSE 0
READ_SHORT 0x68 "abil_num" ELSE 0
READ_LONG 0x6a "fx_off" ELSE 0
PATCH_IF ("%SOURCE_RES%" STRING_COMPARE_CASE "spwi309" = 0) THEN BEGIN
SET "base_dur" = 12
SET "open_lvl" = 5
END ELSE BEGIN
SET "base_dur" = 18
SET "open_lvl" = 7
END
FOR (index = 0 ; index < abil_num ; index = index + 1) BEGIN
READ_SHORT ("%abil_off%" + 0x10 + (0x28 * "%index%")) "min_lev"
READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
PATCH_IF ("%min_lev%" = 1) THEN BEGIN
SET "min_lev" = "%open_lvl%"
END
FOR (index2 = 0 ; index2 < abil_fx_num ; index2 = index2 + 1) BEGIN
READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "duration"
PATCH_IF ("%duration%" > 5) BEGIN // filter out brief and/or instant effects like playing sounds and animations
WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ("%base_dur%" + ("%min_lev%" * 6))
END
END
END
BUT_ONLY_IF_IT_CHANGES
Post edited by Bhryaen on

Comments

  • KeithSKeithS Member Posts: 623
    Adding...
  • NathanNathan Member Posts: 1,007
    This has been integrated and should be present in the next build.
  • Avenger_teambgAvenger_teambg Member, Developer Posts: 5,862
    Confirmed fixed -
    Durations set, checked only first and last headers, but we trust loops
  • TanthalasTanthalas Member Posts: 6,738
    Confirmed Fixed for Monster Summoning I, I can't test MSII

    Verified with my stopwatch. >_>

    Tried to test this from level 1 with a Wild Mage, but Neera was uncooperative with her wild surges.

    @CamDawg, @Avenger_teambg

    Just one thing though, how is Monster Summoning I supposed to behave when cast from a scroll? I always got a duration of 8 rounds.
  • WispWisp Member Posts: 1,102
    @Tanthalas
    8 rounds is correct. MS I is cast at level 6 from the scroll.
  • BhryaenBhryaen Member Posts: 2,874
    The description for Monster Summoning I, II, and III mention specifically: "Duration: 12 minutes (1 minute)." Not sure how this corresponds with what @CamDawg was mentioning here:
    http://forum.baldursgate.com/discussion/comment/34015/#Comment_34015

    By CamDawg's time accounting, the 8 rounds duration would be 48 sec.

    I tested both spells from casting and scroll... using @Tanthalas' stopwatch technique. ;-) I timed it from the instant of monster appearance to the instant of vanishing. Because it was there, I threw in MSIII (SPWI504):
    SOURCE                           DURATION
    Monster Summoning I (spell) 66 sec
    Monster Summoning II (spell) 72 sec
    Monster Summoning III (spell) 78 sec
    Monster Summoning I (SCRL1L) 48 sec
    Monster Summoning II (SCRL2A) 60 sec
    Monster Summoning III (SCRL2G) 78 sec
    I repeated the tests several times since, well... couldn't believe the mixed results... I also tried retesting backward from III to I because I thought there might be some odd stacking bug in the game, but no, those were consistent results...

    So I'm assuming that only casting MSII from a scroll yields the correct duration: 60 sec. Not sure why the disparity between scrolls and spellcasting either...

    EXPECTED:
    Either change the MS scroll/ spell descriptions to the time disparity (it does seem a better duration the higher the MS rank) or- more of a bugfix- get all the spells to last only 60 sec each regardless of casting source.
  • TanthalasTanthalas Member Posts: 6,738
    @Bhryaen

    I looked more into this and it looks like the spell has a different description once its in your spellbook. From your data that seems to be working fine.

    The scrolls should all last the same though as they all say they have a 1 minute duration. Not sure if this wasn't something changed in BG2.
  • CamDawgCamDawg Member, Developer Posts: 3,438
    edited August 2012
    Bhryaen said:

    The description for Monster Summoning I, II, and III mention specifically: "Duration: 12 minutes (1 minute)."

    Huh? Mine say 2 rds + 1 rd/level for MSI, 3 rds + 1 rd/lvl for MSII, and 4 rds + 1 rd/level for MSIII, which would correspond perfectly to the table you posted, assuming you're level 9. The spell-via-scroll durations are also correct (these are cast fixed at levels 6, 7, and 9 respectively).
  • BhryaenBhryaen Member Posts: 2,874
    @Tanthalas
    Ahh... thanks...

    The spellbook spell description shows it as:
    MSI    2 rounds + 1 round/ level
    MSII 3 rounds + 1 round/ level
    MSIII 4 rounds + 1 round/ level
    Since the caster was Mage Lvl 9, this means the times should've been
    MSI    2 + 9 = 11 rounds   66 sec
    MSII 3 + 9 = 12 rounds 72 sec
    MSIII 4 + 9 = 13 rounds 78 sec
    So, good. The casted spells are timed correctly. Since this is not a thread for correcting scroll durations, it's good for a...

    Confirmed Fixed.

    I'll make a new thread for scroll durations, I suppose...
  • TanthalasTanthalas Member Posts: 6,738
    edited August 2012
    @CamDawg

    SCRL1L, SCRL2A and SCRL2G all have in their text description in BGEE that the duration is 12 minutes (1 minute).
  • BhryaenBhryaen Member Posts: 2,874
    @CamDawg
    Yeah, my bad... Scrolls threw me off. I had no idea it would be different between scroll and casted spell parameters...
  • CamDawgCamDawg Member, Developer Posts: 3,438
    Arrrrrrrrrgh.

    a) spells & spell scrolls should be using the same strings
    b) times in the game should never be given in minutes

    Minutes are the least useful time measurement in the game--rounds are easy to suss because you can auto-pause after each one (or count six seconds), and hours are tracked by the game clock (which gives days & hour on hover). There's no in-game way to count minutes, and with the compressed time scale you can't use your wristwatch either.

    /off to rant in the strings thread
  • BhryaenBhryaen Member Posts: 2,874
    lol... Then there still is something wrong because it's not only using BG1's scroll descriptions but also granting the wrong duration for the spells whether by BG1 or BG2's description... But then what's the correct scroll duration? Is the scroll cast at default 6th level regardless of caster level? Then it should be:
    MSI    2 + 6 = 8 rounds    48 sec
    MSII 3 + 6 = 9 rounds 54 sec
    MSIII 4 + 6 = 10 rounds 60 sec
    Which means only MSI is fuctioning properly...
  • TanthalasTanthalas Member Posts: 6,738
    @Bhryaen

    No, MSII is cast as if you were level 7, MSIII is cast as if you were level 9 so:

    MSII 3 + 7 = 10 rounds 60 sec
    MSIII 4 + 9 = 13 rounds 78 sec

    Which are the values you got.
  • BhryaenBhryaen Member Posts: 2,874
    @Tanthalas
    Good- then all has been put in motion that requires it...
Sign In or Register to comment.