Jump to content


Insomniator

Member Since 11 Oct 2017
Offline Last Active Today, 12:06 AM

Posts I've Made

In Topic: BG2 Improved GUI

13 September 2021 - 09:44 AM

If you could create a very simple hook for starters (say, when a spell hits a target, exposing pointers to caster, target, spell itself) and an example how to use it, that would be a start to experiment with.

There is few examples, EffectOpcode.cpp, opcodes do context-specific job, Ascension64 fully overrided some opcodes by himself. DETOUR_CEffectDisease::DETOUR_ApplyEffect or DETOUR_CEffectBlindness::DETOUR_ApplyEffect are example of what to do when opcode handler need create from scratch(not exact from scratch, it was reverse-engineered).
What handler usualy does ? It read many fields from some objects(target creature, source creature, effect parameters) then do payload, sometimes calls engine's internal functions and finally make result in some of form, most complicated form is newly allocated instance of some class filled with data, then call AddTail() to add this object to some of existing lists
This is very hard job because you are limited by game engne context, so when you think about new opcode, first think up how to fit it to existing context. Many new opcodes came from IWD and probably on BG2 engine you dont have proper iwd specific lists/fields.

 


In Topic: BG2 Improved GUI

12 September 2021 - 09:39 AM

@Azazello

Exploring IWD1-ToL v1.42 i found much different (beamdog take it as base for Legacy of Bhaal):
XP = 200% + 1000
THAC0 -5
No Armor class changes
HP +300% (+200% summons)
Attacks per round +1
Saves + 1
MovementRate = (MovementRate * 1.3) + 1
Levels +12
Gold +75
How did you discover those other variable changes? And do they also apply when only Heart of Winter is installed?

I explored IDMain.exe when game "upgrade" stats, i dont have HoW version of game, but can explore IDMain.exe extracted from pre-ToL patches.

Second way - enable cheat keys(GETYOURCHEATON:EnableCheatKeys() in console), join any neutral to party (ctrl+Q), open Record screen: Hildreth Highhammer (first location)
normal:
XP 120
Levels 1/1/1 - shows as figher only, because single class
AC 5
HP 33 (30 in NI)
Thac0 17
APR 1 (fist)
Saves 13/15/14...

fury:
XP - 2480 ((120 * 2 + 1000) * 2(difficulty) )
Levels 13/13/13
AC 5 - no changes
HP 197 - seems compilcated formula (not just 300% + 80), may depends on levels and "max HP on level-up" setting
Thac0 12
APR 3 (fist) = 2(upgrade formula) + 1(level bonus, WSPATCK.2DA)
Saves 14/16/15/... - nice bug


In Topic: BG2 Improved GUI

11 September 2021 - 12:14 PM

Thanks for thinking about them. Here's a wider consideration: would there be difficulty {pardon the pun} in letting the user set the stat numbers at install-time? With limits, of course.

Currently all bonuses hardcoded in "C" code, but move constants to external .INI is not difficult

 

This way, you could keep the mod option as a fixed-name, e.g. Fury of Insomniator, and during the install, have subcomponents like "THAC0 modifier: (-5 to +5): enter choice"

I don't want to include to installer such of tuning parameters. Instead user can change parameters in .INI after installing mod

 

User choose base sets (legacy/iwd1 fury/...) at install time and if not satisfacted -> will change .ini


In Topic: BG2 Improved GUI

11 September 2021 - 12:05 PM

- highlight locked doors and containers differerently (tint red or something). Maybe also use different color for non-empty containers (green?), and/or skip empty ones from highlighing - those aren't interesting anyway.


I know it's purely subjective matter, but isn't telling the player that the container is empty before he/she even open it a little lame and ruining the fun of searching through containers? If those empty containers would tell right away "don't open me, I'm not important", then there is no need for them to exist at all.

Agree with this too, exploring containers is minigame, even if 95% are empty, remain 5% make you feel "caught luck"


In Topic: BG2 Improved GUI

11 September 2021 - 11:57 AM

@Azazello,

Heart of Fury (this is the same as Icewind Dale 1, except for...)
  • -5 THAC0
  • Armor Class = (original AC) - 5
  • +0 Attacks Per Round
  • +1 Saving Throw vs Death/Wands/Polymorph/Breath/Spell {...except for here - in original IwD1-HoF this would be +0}
  • Hit Points = (original HP)x3 + 50
  • Never break Morale
  • +3 Level in all available Classes {...except for here - in original IwD1-HoF this would be +0}
Party get Bonuses (optional, selectable at installer):
  • extra 1000 Experience Points {...except for here - in original IwD1-HoF this would be just +100 XP}
  • Party's Summon get same bonuses as Enemy

Where did you get these iwd1 Heart of Fury bonuses ?

 

Exploring  IWD1-ToL v1.42 i found much different (beamdog take it as base for Legacy of Bhaal):

XP = 200% + 1000
THAC0 -5

No Armor class changes

HP +300% (+200% summons)
Attacks per round +1
Saves + 1
MovementRate = (MovementRate * 1.3) + 1
Levels +12
Gold +75

 

and IWD2 (at least):

HP +300% (+200% summons)
MovementRate = (MovementRate * 1.3) + 1
All 6 base stats(STR,DEX,...) +10
Levels +12
Challenge rating +10 (used for XP calc)
Gold +75