There are still some problems with giving new classes skills. For some reason, when a class that doesn't normally get skill points levels up, the number of points they get is NOT equal to the LEVEL_POINTS entry in THIEFSKL.2DA. Instead, it depends on both START_POINTS and LEVEL_POINTS. It also depends on which class is being leveled up, and whether the character is singleclassed or multiclassed. Here are the skill points some classes get on leveling up:
These are the classes I've tried so far. I don't know if there are other quirks. I've only tested this in Baldur's Gate: Siege of Dragonspear, so I don't know if it's a problem across games.
There are still some problems with giving new classes skills. For some reason, when a class that doesn't normally get skill points levels up, the number of points they get is NOT equal to the LEVEL_POINTS entry in THIEFSKL.2DA. Instead, it depends on both START_POINTS and LEVEL_POINTS. It also depends on which class is being leveled up, and whether the character is singleclassed or multiclassed. Here are the skill points some classes get on leveling up:
These are the classes I've tried so far. I don't know if there are other quirks. I've only tested this in Baldur's Gate: Siege of Dragonspear, so I don't know if it's a problem across games.
Weird. But that's helpful, thanks. Oddly, this works out the way I've designed advancement in many cases. Eg fighters (except barbarians) start with 20 and are supposed to gain 10 per level (and nicely, 20-10=10). Mages are weird, but I was thinking of only doing a fixed progression for them anyway (for things like item crafting). Looks like I'm definitely doing it that way.
@Bubb How feasible is it to create a Screen Actions opcode that calls an action hook function each time the creature would begin an action? There are a lot of things I could do with this.
@Bubb Wait, nevermind. You won't believe this, but I think I've just figured out how to make a Screen Actions opcode myself! I'll see if I can get it working by tomorrow.
Features: Screen Actions Opcode! Opcode 401 now serves as a Screen Actions opcode if you use it to set stat 999 to 1, and put the name of the function to call in the resource field.
Here's an example: I made a spell called Cowardice that screens the target's actions; whenever they would attack a creature, they instead run away from that creature.
@OlvynChuru: Looks good, thanks! Though, appears exampl3.spl isn't provided for the installer to copy over. Please either provide that here / do another pull request that adds it, (as I accidentally merged with that hiccup, so master doesn't install right now).
(Anyone who wants to download from master can use this branch for now; will delete once fixed.)
@Bubb I sent you a pull request! I fixed the issue, it should install correctly now. I also added some new things.
* New function for use with opcode 403: EXSPLDEF(). This function serves like Spell Deflection/Turning/Trap, except it can also block area of effect spells, and it has a few other options (there's a flag to make it block a certain number of spells rather than spell levels).
* New flag for spells! If you set bit 28 in a spell's flags (at offset 0x18 in a SPL file), the spell will be instantly applied to the target when cast (like the ApplySpell() action), even if the game is paused.
* New action hook function: EXBERSER. If you give a creature an opcode 401 effect and set parameter1 to 1, special to 999, and the resource to "EXBERSER", when the creature is uncontrollably berserk, they will not attack allies.
* New action hook function: EXFEAR. If you give a creature an opcode 401 effect and set parameter1 to 1, special to 999, and the resource to "EXFEAR", when the creature is affected by Horror or another fear effect, they will actually run away from enemies on sight rather than just run around randomly.
* The function EXMODMEM(), which can add or remove memorized spells from a creature, now works with sorcerers and shamans.
So what about the possibility of increasing the maximum visual range? Is that impossible?
@Bubb I sent you another pull request! This time I added something REALLY cool.
New function for use with opcode 402: EXMODSMP! This function modifies the search map of an area in the middle of the game.
The search map determines which parts of an area block movement, which parts can or can't be seen through, and the footstep sounds characters make when they walk on part of the area. (More info about the search map can be found on this page in the IESDP Index.) The EXMODSMP function lets you replace one kind of terrain with another. For example, you could replace all walls in the area with see-through walls.
The function can also be set to only affect terrain in a certain radius. Here's a Passwall spell that makes it possible to walk through walls in the area of effect.
There's just one issue: changes to the search map persist until you quit the game and start it again. So if you modify the search map and then reload to an earlier save before you had done so, the search map will still be modified. I'm still trying to figure out a good way to deal with this.
@Bubb I sent you a pull request! This one is even better!
I added a bunch of new stats to the game.
Stat descriptions:
- Stat 612: Sets flags on the Special parameter of damage dealt by the character. If you'd like it to set bit 10, set Stat 612 to 0x400. Setting certain savingthrow bits on the opcode 401 effect adds conditions:
Bit 8: Flags are unset rather than set.
Bit 16: Flags are changed if the damage is acid damage.
Bit 17: Flags are changed if the damage is cold damage.
Bit 18: Flags are changed if the damage is electricity damage.
Bit 19: Flags are changed if the damage is fire damage.
Bit 20: Flags are changed if the damage is piercing damage.
Bit 21: Flags are changed if the damage is poison damage.
Bit 22: Flags are changed if the damage is magic damage.
Bit 23: Flags are changed if the damage is missile damage.
Bit 24: Flags are changed if the damage is slashing damage.
Bit 25: Flags are changed if the damage is magic fire damage.
Bit 26: Flags are changed if the damage is magic cold damage.
Bit 27: Flags are changed if the damage is nonlethal damage.
Bit 28: Flags are changed if the damage is crushing damage.
Bit 29: Flags are not changed on the base damage of the character's weapons.
Bit 30: Flags are not changed on the damage of the character's spells.
Bit 31: Flags are not changed on the non-base damage of the character's items.
If none of bits 16-28 are set, flags are changed regardless of damage type.
- Stat 613: The character's attacks and spells will bypass Mirror Image if stat 613 is set to 1.
- Stat 616: Increases damage dealt by the character by a flat amount. Setting certain savingthrow bits on the opcode 401 effect adds conditions:
Bit 8: Rather than adding an amount of damage, it adds that many extra dice to the damage roll.
Bit 12: The damage is added to damage against good creatures.
Bit 13: The damage is added to damage against evil creatures.
Bit 14: The damage is added to damage against lawful creatures.
Bit 15: The damage is added to damage against chaotic creatures.
Bit 16: The damage is added to acid damage.
Bit 17: The damage is added to cold damage.
Bit 18: The damage is added to electricity damage.
Bit 19: The damage is added to fire damage.
Bit 20: The damage is added to piercing damage.
Bit 21: The damage is added to poison damage.
Bit 22: The damage is added to magic damage.
Bit 23: The damage is added to missile damage.
Bit 24: The damage is added to slashing damage.
Bit 25: The damage is added to magic fire damage.
Bit 26: The damage is added to magic cold damage.
Bit 27: The damage is added to nonlethal damage.
Bit 28: The damage is added to crushing damage.
Bit 29: The damage is not added to the base damage of the character's weapons.
Bit 30: The damage is not added to the damage of the character's spells.
Bit 31: The damage is not added to the non-base damage of the character's items.
If none of bits 12-15 are set, the damage is added regardless of alignment. If none
of bits 16-28 are set, the damage is added regardless of type.
- Stat 617: Changes the damage type of the character's weapons. Set it to a damage type ID from DAMAGES.IDS,
then add 1 to it. If you want the character to deal fire damage with their weapons, set stat 617 to 9.
- Stat 619: Adds an additional saving throw penalty to the character's spells. For example, if stat 619 is set to 2, all the character's spells are made at an additional -2 penalty. Here's an example when stat 619 is set to 20:
- Stat 620: Increases the healing from the character's healing spells by a percentage. If stat 620 is set
to 100, healing spells cast by the character will heal twice as many hit points.
- Stat 621: Increases the minimum damage (per die) of the character's spells. If stat 621 is set to 20,
the character will deal maximum damage with their spells.
- Stat 623: Adds an additional saving throw penalty to the character's abjuration spells, stacking with stat 619.
- Stat 624: Adds an additional saving throw penalty to the character's conjuration spells, stacking with stat 619.
- Stat 625: Adds an additional saving throw penalty to the character's divination spells, stacking with stat 619.
- Stat 626: Adds an additional saving throw penalty to the character's enchantment spells, stacking with stat 619.
- Stat 627: Adds an additional saving throw penalty to the character's illusion spells, stacking with stat 619.
- Stat 628: Adds an additional saving throw penalty to the character's evocation spells, stacking with stat 619.
- Stat 629: Adds an additional saving throw penalty to the character's necromancy spells, stacking with stat 619.
- Stat 630: Adds an additional saving throw penalty to the character's alteration spells, stacking with stat 619.
- Stat 631: Adds an additional saving throw penalty to the character's generalist spells, stacking with stat 619.
- Stat 658: Applies a spell on any creature summoned by the character, with the summoner as the source.
The spell is specified by the resource field of the opcode 401 effect. Setting certain savingthrow bits
on the opcode 401 effect adds conditions:
Bit 20: The spell will be cast on the summoner instead, with the summoned creature as the source.
In addition, there's a new component, which allows resistances to go over 127% or under -128%.
It also makes it so your spells will not be interrupted by damage if you have at least 100% resistance to the damage.
@OlvynChuru: Thanks for the pull requests - awesome stuff. Both are merged, sorry for the delay.
I've also done a small commit to master that fixes a crash if you use F11 (UI Edit Mode) alongside a mod that loads in a .MENU file using EEex - (only a few EEex modules + my spell menu mod were using this feature).
Could you fix another crash? The function EEex_GetActorStat() crashes the game if the actor doesn't exist (which could happen if the actor used DestroySelf or EscapeArea). It seems like you made some hardcoded version of EEex_GetActorStat() that replaces the normal function. I already made it so the normal function in M__EEex.lua returns 0 if the actor doesn't exist (by checking EEex_IsSprite(actorID)), but the hardcoded version of EEex_GetActorStat() doesn't do this. Could you fix this?
@OlvynChuru: Initially the creature struct expansion was going to be optional, so the "new" version of the function that accounted for EEex's expanded stats was defined there. Anyways, that never happened - I've removed the hardcoded version of EEex_GetActorStat() in EEex_Cre.lua and updated the one in M__EEex.lua.
Hey, so I found your spell menu mod, which is awesome, but unfortunately the game alwys crashes at spellhold. At first I assumed it was some issue with EET, but now I tried again on an installation without it and it still crashes. At this point I assume it's an issue with SCS, which is a shame, but anyways, here are the weidu log and crash dump files.
To reproduce the crash you have to simply play the game until spellhold and after the conversation with irenicus the game crashes reliably.
Edit:So I made another test setup with just EEex and SCS and it crashes, so it most likely is the issue here.
Not sure if this particular crash dump is more helpful than the other one, but here it is anyways. crash.dmp
@Quitschi
I play with SCS as well but I have EEex installed before the Spell Menu, and I haven't had any issues. (although after taking a screenshot while holding Shift to activate Spell Inspection mode so that it's visible in said screenshot, opening the spell menu and then pressing escape to leave the spell menu causes a crash every time it's attempted.)
Interesting, what was your other install order like? Because the order of spell menu and EEex doesn't seem to matter at all for me. Did you install EEex before everything?
Because I use EET install tool for bigger setups like SCS and tried installing EEex before running that, but it did not work at all.
Maybe we don't have quite the same SCS components installed and that has something to do with it?
What is spell inspection mode?
Edit: So i tried installing SCS manually after EEex and it just fails.
@Flashburn: Surprisingly, that's not my fault. The engine's Lua system goes haywire if you take a screenshot while holding down shift, (no idea why!). You can try opening B3_EfMen.lua and changing
to another key - so you're not holding down shift when taking the screenshot.
@Quitschi: I believe I have fixed your crash in v0.8.4-alpha, try it out and see if it works.
Also, EEex should be installed after SCS, as there is an incompatibility regarding SPELL.IDS at the moment. Other than that, EEex can be put basically anywhere in the install order. The spell menu should be placed after UI overhauls.
I thought about another feature request, one that is probably easy to make. Would it be possible to implement a "frame advance" button? When pressed while paused, it unpauses, advances the game by 1 frame, and then pauses again.
This would be useful during pitched battle scenarios that require tight timing, especially if you have many autopause options turned on. With this feature, you won't have to hope an autopause doesn't inadvertently resume the game because you didn't double-tap the space bar fast enough.
To enable, open EEex_INI.lua and flip the B3_Time entry to true.
Default key to timestep is "d", (if you want to change this option, open B3_Time.lua and alter the first line). When the game is paused, hitting the timestep key will advance the game by one tick. Holding the key for half a second lets time flow normally while it is down, repausing the game when the key is released.
So a few pages ago you showed off a way to change the ui scaling. I'm currently using a 1440 screen which makes the default scaled option just a little too small. Any chance you could publish a module for that. I don't even need a fancy slider or other ui integration. I'm perfectly happy to tweak by hand.
Added timestep module: Advances time by one tick when the timestep key, (by default "d"), is pressed. Enable in EEex_INI.lua via the B3Time entry.
Fixes =>
Fixed memory leak and added memory leak detection mode. This memory leak was especially bad when Scales of Balance was installed, and often caused crashes.
Removed EEex_MARKED_SPELL entry for compatibility with SCS / WoP; (functionality still present, just not listed).
Physical resistances over 100 now display correctly.
Resistances above 127 or below -128 display correctly in IWDEE.
Some of the wild surges change effects of the spell being cast, or change properties of the spell's projectile. Examples are things like:
* Halving the speed of the projectile.
* Changing the projectile of the spell to a different projectile.
* Making it so the spell has no saving throw.
I was wondering if we could make a hook that runs when a character casts a spell, and lets us modify the effects of the spell or projectile in the way we want (e.g. so an effect could double the AoE of a character's spells).
Using EEex_DemandResData() to modify the spell or projectile data directly doesn't work right, because the changes made to the spell or projectile this way apply to everybody who casts the spell, rather than to a specific instance of the spell.
@OlvynChuru: I'll look into it. Might only be limited to what the wild surges can already do, as that functionality is baked in. The spellcasting functions that control this are some of the most complex functions in the engine.
(Thanks for the pull request on GitHub btw, merged.)
@MoonWolf: I finished the UI scaling module - it's currently in master. Enable in EEex_INI.lua by flipping the B3_Scale entry to true.
The "Scale User Interface" graphics option doesn't function when this module is enabled. While in game, you can use the debugging console to set a certain Width target (in pixels) to render at, like so:
B3Scale_SetWidth(1920)
Note that if you accidentally input a crazy value that makes the UI unusable / crashes the game, you can remove the B3Scaling->Width line of your Baldur.lua to restore the default behavior.
I've been using this mod for a while now (in addition to many other mods), and my games consistently crash every half hour or so. The crashes always happen when I try to open my inventory, at a random point. It happens more frequently right after I load a game, if I enter inventory screen immediately. I use Dragonspear UI++, which might potentially have some incompatibility with this.
It's not a dealbreaker for me, as I got used to occasional crashes and I don't mind it. Just wanted to let you know in case it helps. By the way, the crashes happen in both BG1, SoD and BG2.
Comments
Fighter (single or multiclassed) Skill Points = START_POINTS - LEVEL_POINTS
Ranger (single) Skill Points = START_POINTS + LEVEL_POINTS
Mage (single) Skill Points = START_POINTS - LEVEL_POINTS
Mage (multi) Skill Points = START_POINTS - (LEVEL_POINTS * 2)
Cleric (multi) Skill Points = START_POINTS - LEVEL_POINTS
These are the classes I've tried so far. I don't know if there are other quirks. I've only tested this in Baldur's Gate: Siege of Dragonspear, so I don't know if it's a problem across games.
Weird. But that's helpful, thanks. Oddly, this works out the way I've designed advancement in many cases. Eg fighters (except barbarians) start with 20 and are supposed to gain 10 per level (and nicely, 20-10=10). Mages are weird, but I was thinking of only doing a fixed progression for them anyway (for things like item crafting). Looks like I'm definitely doing it that way.
Edit: if I find more weirdness, I'll let you know
Features: Screen Actions Opcode! Opcode 401 now serves as a Screen Actions opcode if you use it to set stat 999 to 1, and put the name of the function to call in the resource field.
Here's an example: I made a spell called Cowardice that screens the target's actions; whenever they would attack a creature, they instead run away from that creature.
(Anyone who wants to download from master can use this branch for now; will delete once fixed.)
Edit: All fixed now.
* New function for use with opcode 403: EXSPLDEF(). This function serves like Spell Deflection/Turning/Trap, except it can also block area of effect spells, and it has a few other options (there's a flag to make it block a certain number of spells rather than spell levels).
* New flag for spells! If you set bit 28 in a spell's flags (at offset 0x18 in a SPL file), the spell will be instantly applied to the target when cast (like the ApplySpell() action), even if the game is paused.
* New action hook function: EXBERSER. If you give a creature an opcode 401 effect and set parameter1 to 1, special to 999, and the resource to "EXBERSER", when the creature is uncontrollably berserk, they will not attack allies.
* New action hook function: EXFEAR. If you give a creature an opcode 401 effect and set parameter1 to 1, special to 999, and the resource to "EXFEAR", when the creature is affected by Horror or another fear effect, they will actually run away from enemies on sight rather than just run around randomly.
* The function EXMODMEM(), which can add or remove memorized spells from a creature, now works with sorcerers and shamans.
So what about the possibility of increasing the maximum visual range? Is that impossible?
Unfortunately, every time I attempt to increase the max visual range the engine crashes. There's probably a way to do it, but right now I'm at a loss.
New function for use with opcode 402: EXMODSMP! This function modifies the search map of an area in the middle of the game.
The search map determines which parts of an area block movement, which parts can or can't be seen through, and the footstep sounds characters make when they walk on part of the area. (More info about the search map can be found on this page in the IESDP Index.) The EXMODSMP function lets you replace one kind of terrain with another. For example, you could replace all walls in the area with see-through walls.
The function can also be set to only affect terrain in a certain radius. Here's a Passwall spell that makes it possible to walk through walls in the area of effect.
There's just one issue: changes to the search map persist until you quit the game and start it again. So if you modify the search map and then reload to an earlier save before you had done so, the search map will still be modified. I'm still trying to figure out a good way to deal with this.
I added a bunch of new stats to the game.
Stat descriptions:
Bit 8: Flags are unset rather than set.
Bit 16: Flags are changed if the damage is acid damage.
Bit 17: Flags are changed if the damage is cold damage.
Bit 18: Flags are changed if the damage is electricity damage.
Bit 19: Flags are changed if the damage is fire damage.
Bit 20: Flags are changed if the damage is piercing damage.
Bit 21: Flags are changed if the damage is poison damage.
Bit 22: Flags are changed if the damage is magic damage.
Bit 23: Flags are changed if the damage is missile damage.
Bit 24: Flags are changed if the damage is slashing damage.
Bit 25: Flags are changed if the damage is magic fire damage.
Bit 26: Flags are changed if the damage is magic cold damage.
Bit 27: Flags are changed if the damage is nonlethal damage.
Bit 28: Flags are changed if the damage is crushing damage.
Bit 29: Flags are not changed on the base damage of the character's weapons.
Bit 30: Flags are not changed on the damage of the character's spells.
Bit 31: Flags are not changed on the non-base damage of the character's items.
If none of bits 16-28 are set, flags are changed regardless of damage type.
- Stat 613: The character's attacks and spells will bypass Mirror Image if stat 613 is set to 1.
- Stat 616: Increases damage dealt by the character by a flat amount. Setting certain savingthrow bits on the opcode 401 effect adds conditions:
Bit 8: Rather than adding an amount of damage, it adds that many extra dice to the damage roll.
Bit 12: The damage is added to damage against good creatures.
Bit 13: The damage is added to damage against evil creatures.
Bit 14: The damage is added to damage against lawful creatures.
Bit 15: The damage is added to damage against chaotic creatures.
Bit 16: The damage is added to acid damage.
Bit 17: The damage is added to cold damage.
Bit 18: The damage is added to electricity damage.
Bit 19: The damage is added to fire damage.
Bit 20: The damage is added to piercing damage.
Bit 21: The damage is added to poison damage.
Bit 22: The damage is added to magic damage.
Bit 23: The damage is added to missile damage.
Bit 24: The damage is added to slashing damage.
Bit 25: The damage is added to magic fire damage.
Bit 26: The damage is added to magic cold damage.
Bit 27: The damage is added to nonlethal damage.
Bit 28: The damage is added to crushing damage.
Bit 29: The damage is not added to the base damage of the character's weapons.
Bit 30: The damage is not added to the damage of the character's spells.
Bit 31: The damage is not added to the non-base damage of the character's items.
If none of bits 12-15 are set, the damage is added regardless of alignment. If none
of bits 16-28 are set, the damage is added regardless of type.
- Stat 617: Changes the damage type of the character's weapons. Set it to a damage type ID from DAMAGES.IDS,
then add 1 to it. If you want the character to deal fire damage with their weapons, set stat 617 to 9.
- Stat 619: Adds an additional saving throw penalty to the character's spells. For example, if stat 619 is set to 2, all the character's spells are made at an additional -2 penalty. Here's an example when stat 619 is set to 20:
- Stat 620: Increases the healing from the character's healing spells by a percentage. If stat 620 is set
to 100, healing spells cast by the character will heal twice as many hit points.
- Stat 621: Increases the minimum damage (per die) of the character's spells. If stat 621 is set to 20,
the character will deal maximum damage with their spells.
- Stat 623: Adds an additional saving throw penalty to the character's abjuration spells, stacking with stat 619.
- Stat 624: Adds an additional saving throw penalty to the character's conjuration spells, stacking with stat 619.
- Stat 625: Adds an additional saving throw penalty to the character's divination spells, stacking with stat 619.
- Stat 626: Adds an additional saving throw penalty to the character's enchantment spells, stacking with stat 619.
- Stat 627: Adds an additional saving throw penalty to the character's illusion spells, stacking with stat 619.
- Stat 628: Adds an additional saving throw penalty to the character's evocation spells, stacking with stat 619.
- Stat 629: Adds an additional saving throw penalty to the character's necromancy spells, stacking with stat 619.
- Stat 630: Adds an additional saving throw penalty to the character's alteration spells, stacking with stat 619.
- Stat 631: Adds an additional saving throw penalty to the character's generalist spells, stacking with stat 619.
- Stat 658: Applies a spell on any creature summoned by the character, with the summoner as the source.
The spell is specified by the resource field of the opcode 401 effect. Setting certain savingthrow bits
on the opcode 401 effect adds conditions:
Bit 20: The spell will be cast on the summoner instead, with the summoned creature as the source.
In addition, there's a new component, which allows resistances to go over 127% or under -128%.
It also makes it so your spells will not be interrupted by damage if you have at least 100% resistance to the damage.
I've also done a small commit to master that fixes a crash if you use F11 (UI Edit Mode) alongside a mod that loads in a .MENU file using EEex - (only a few EEex modules + my spell menu mod were using this feature).
Could you fix another crash? The function EEex_GetActorStat() crashes the game if the actor doesn't exist (which could happen if the actor used DestroySelf or EscapeArea). It seems like you made some hardcoded version of EEex_GetActorStat() that replaces the normal function. I already made it so the normal function in M__EEex.lua returns 0 if the actor doesn't exist (by checking EEex_IsSprite(actorID)), but the hardcoded version of EEex_GetActorStat() doesn't do this. Could you fix this?
Weidu.log
crash.dmp
To reproduce the crash you have to simply play the game until spellhold and after the conversation with irenicus the game crashes reliably.
Edit:So I made another test setup with just EEex and SCS and it crashes, so it most likely is the issue here.
Not sure if this particular crash dump is more helpful than the other one, but here it is anyways.
crash.dmp
I play with SCS as well but I have EEex installed before the Spell Menu, and I haven't had any issues. (although after taking a screenshot while holding Shift to activate Spell Inspection mode so that it's visible in said screenshot, opening the spell menu and then pressing escape to leave the spell menu causes a crash every time it's attempted.)
Because I use EET install tool for bigger setups like SCS and tried installing EEex before running that, but it did not work at all.
Maybe we don't have quite the same SCS components installed and that has something to do with it?
What is spell inspection mode?
Edit: So i tried installing SCS manually after EEex and it just fails.
Changelog:
Returns the given menu's x, y, w, and h components - or nil if passed invalid menuName.
Opcode format:
More goodies from OlvynChuru documented in these posts =>
Fixes =>
@Quitschi: I believe I have fixed your crash in v0.8.4-alpha, try it out and see if it works.
Also, EEex should be installed after SCS, as there is an incompatibility regarding SPELL.IDS at the moment. Other than that, EEex can be put basically anywhere in the install order. The spell menu should be placed after UI overhauls.
This would be useful during pitched battle scenarios that require tight timing, especially if you have many autopause options turned on. With this feature, you won't have to hope an autopause doesn't inadvertently resume the game because you didn't double-tap the space bar fast enough.
To enable, open EEex_INI.lua and flip the B3_Time entry to true.
Default key to timestep is "d", (if you want to change this option, open B3_Time.lua and alter the first line). When the game is paused, hitting the timestep key will advance the game by one tick. Holding the key for half a second lets time flow normally while it is down, repausing the game when the key is released.
I love you.
v0.8.5-alpha is released!
Changelog:
New Features =>
Fixes =>
Here's another idea.
Some of the wild surges change effects of the spell being cast, or change properties of the spell's projectile. Examples are things like:
* Halving the speed of the projectile.
* Changing the projectile of the spell to a different projectile.
* Making it so the spell has no saving throw.
I was wondering if we could make a hook that runs when a character casts a spell, and lets us modify the effects of the spell or projectile in the way we want (e.g. so an effect could double the AoE of a character's spells).
Using EEex_DemandResData() to modify the spell or projectile data directly doesn't work right, because the changes made to the spell or projectile this way apply to everybody who casts the spell, rather than to a specific instance of the spell.
(Thanks for the pull request on GitHub btw, merged.)
@MoonWolf: I finished the UI scaling module - it's currently in master. Enable in EEex_INI.lua by flipping the B3_Scale entry to true.
The "Scale User Interface" graphics option doesn't function when this module is enabled. While in game, you can use the debugging console to set a certain Width target (in pixels) to render at, like so:
Note that if you accidentally input a crazy value that makes the UI unusable / crashes the game, you can remove the B3Scaling->Width line of your Baldur.lua to restore the default behavior.
It's not a dealbreaker for me, as I got used to occasional crashes and I don't mind it. Just wanted to let you know in case it helps. By the way, the crashes happen in both BG1, SoD and BG2.