@lefreut I can confirm this issue. NI attempts to parse the baldur.lua in ASCII mode even though the file is encoded in UTF-8. This will only have an effect if the file contains any non-ASCII characters.
I will fix it with the next release. Until then you can work around this issue by selecting a specific language for each game in Options > TLK Language (EE only).
I have recently begun to design a new BCS script compiler and decompiler for NI from scratch as the current version is very limited, slow and difficult to maintain.
My goal is a compiler and decompiler that works flawlessly with BCS scripts of any IE games, is more configurable and faster than the current one, handles illegal or buggy scripts gracefully and is fully compatible with WeiDU's own script compiler (which includes support for artificial constructs such as TriggerOverride()).
It may still take some time before it is in a working state. Are there any features you think may be useful to be included in the new compiler?
@argent77 Looks like it omits spells with spell-flag 15, Ignore wild surge, not those listed in CONTINGX.2da. They're just very similar list of spells.
Opcode 273: Zone of Sweet Air Now accepts "2da" resources to define custom projectile lists. Still defaults to "CLEARAIR.2da" when not set. Request 2da Resource Menu.
Opcode 5: Charm, Opcode 241: Control Creature as CRE effect: # Dice Thrown = EA override This field stores the creatures temporary EA value when it is not the default for the specified Charm type (CHARMED[6]/CONTROLLED[5]), such as when enemies use it against the Party/Allies, it is set to (ENEMY[255]). Setting this field in an External EFF will override the normal, caster-based EA value assigned to the creature while it is charmed. Not of much use though given Charm's AI scripts are still hardcoded.
Occasionally, I have noticed CRE effects with a resist/Dispel Value of 4-7. Haven't found a cause or purpose yet, but they do line up with the normal values: 0 becomes 4, 1 becomes 5, 2 becomes 6, 3 becomes 7. The Haste Spell's effects often end up this way.
Opcode 273: Zone of Sweet Air Now accepts "2da" resources to define custom projectile lists. Still defaults to "CLEARAIR.2da" when not set. Request 2da Resource Menu.
Thanks, will be added to EE games. (It's currently only set for TobEx games.) Btw, is parameter1 used in EE games? TobEx supports two modes: 0=Remove CLEARAIR.2DA only and 1=Remove CLEARAIR.2DA and resource.
Opcode 5: Charm, Opcode 241: Control Creature as CRE effect: # Dice Thrown = EA override This field stores the creatures temporary EA value when it is not the default for the specified Charm type (CHARMED[6]/CONTROLLED[5]), such as when enemies use it against the Party/Allies, it is set to (ENEMY[255]). Setting this field in an External EFF will override the normal, caster-based EA value assigned to the creature while it is charmed. Not of much use though given Charm's AI scripts are still hardcoded.
NI does not provide an easy way to determine where the effect is embedded. I would have to set it globally. If it's really only used in CRE structures then I would leave it as is, and users have to set EA values manually. It would probably be a good idea to add this piece of information to IESDP though.
Occasionally, I have noticed CRE effects with a resist/Dispel Value of 4-7. Haven't found a cause or purpose yet, but they do line up with the normal values: 0 becomes 4, 1 becomes 5, 2 becomes 6, 3 becomes 7. The Haste Spell's effects often end up this way.
The Dispel field is most likely handled as a bit field internally with bit 0 = Dispel and bit 1 = Bypass resistance. In that case setting a higher value wouldn't make a difference as only bits 0 and 1 are evaluated. Did you notice a difference when using the higher values? Maybe bit 2 has a special meaning as well.
The Dispel field is most likely handled as a bit field internally with bit 0 = Dispel and bit 1 = Bypass resistance. In that case setting a higher value wouldn't make a difference as only bits 0 and 1 are evaluated. Did you notice a difference when using the higher values? Maybe bit 2 has a special meaning as well.
I haven't been able to find any cause or effect: - Setting bit 2 manually in an effect only screws up the timing mode it uses when attached to a creature, the resist/dispel mode still uses whatever value it would have without bit 2 set. - It's not related to setting bit 8, which is used for Timing Mode 4096 (Absolute Duration). - It's not related to spells bypassing MR when they target their Caster (Sunfire). - It's not related to the spells hostility.
Thanks. Btw, I've looked up TobEx docs for opcode 273 again. Param1=1 indicates "Removes projectiles from resource only". CLEARAIR.2DA appears to be untouched in this case. I'll update value description.
I figured it out: Spell Deflection/Reflection/Trap. Setting Bit 2 prevents the effect from being turned/deflected/absorbed, but you can only use it in V2 effects. It's naturally set by Area of Effect spell effects, excluding those applied through single-target subspells. Not sure if this is functionally any different from set its power to 0 though, otherwise it might have some practical use.
Something I've noticed and worth noting is opcode 72 (set IDS state) breaks both charm opcodes (5 and 241). If opcodes 5 or 241 expire while an instance of 72 is active they will not restore the original EA of the creature, meaning the charm effects will linger permanently. This occurs even if opcode 72 is used to alter some IDS state other than EA.ids (i.e. GENERAL.ids value).
There is the Near Infinity Wiki which should provide a good overview of NI's key functionality. It's linked in the first post of this topic, the project page readme and in the "About Near Infinity" box of NI itself.
I'm always open for suggestions how it can be further improved though.
Opcode 362 (Critical Miss Bonus) Parameter1 = Type(Increment/Set/Set%) -> Value(+/-)
Opcode 183 (Apply Effect on Equip Type) -> (Use Eff file while Equip Type) Resource = EFF menu
Opcode 182 (Apply Effect on Equip Item) -> (Use Eff file Knockoff ) Resource = Irrelevant? Resource2 = EFF menu
Some notes about 182: - Only functions as V2 EFF - Does not function when either it or it's calling effect (Use EFF/177, etc) use limited timing modes - both require Timing modes 2 or 9. - It's not checking Equipment at all. Conclusion - Useless: duplicates effects of Opcode 177 while restricted to 2 timing modes and unable to be used as a V1 effect. Possibly meant for internal use.
Two bugs I noticed. The first one: when creating similar Apply Effects List effects one under the other, the ones below all get converted to the one just edited - they get the same target filter. For example, if you want to make a series of identical immunities to a spell for different creature types, you set up one effect for RACE - DRACONIC, then copy that effect a number of times and get down to editing them one by one so they target different race - DEMONIC, GNOME and so on. You want a nice diverse list. But the bug makes it so that you edit one of the filters higher on the list, close that effect's window and voila, the lower effects all got turned to the current one, e.g. they all now say DEMONIC. This can happen several times in a row. I've only noticed it for opcode 326. I now only add these filters one at a time, then click away, save, come back to add another filter etc.
The second bug, which leads to corrupted files, is that effects in a spell ability gets added to the top of the list. You know how effects are normally on the bottom - effect 0, effect 1 and so on. Well, with this bug they appear on top, before all other lines. If this file is saved and reloaded, it gets an empty spell ability with crazy values.
Well this is amazing, Opcode 183's functionality is partly controlled by the effect it uses:
If the called effect can be maintained, such as haste, slow, stat bonuses, etc, then opcode 183 remains on the creature as a passive effect for its full duration(even permanent), while its called effect is only active while the item type is equipped.
If the called effect is always instantaneous, such as damage, create item, free action, cure (state), etc, then opcode 183 functions as a On-Equip Contingency, ending after its first trigger.
So it can be both While Equipped and On Equip, depending on the called effect.
I think it is more that instantaneous effects forcibly end opcode 183 when they trigger, because maintained effects do not end opcode 183 if you unequip the item type, it just returns to being dormant, and will reactivate if you re-equip that item type.
Dammit, why does it keep converting these things! What I wrote about before: you make a bunch of effects of the same type, they turn identical. I just spent a lot of time fine-tuning color change effects, the last color was black, I closed the window and pow, they all turned black! And I didn't know NI was doing this again, so I saved the file - now they're showing in the game all wrong. I have to redo the whole thing. Great, just great!
As mentioned in this post this bug has only been fixed internally yet. Next public release will contain this fix along with a great number of new or improved features. Because of... reasons I can't release it before April 11th though.
If you really need it now you can follow the build instructions in the Near Infinity Wiki to compile it yourself. The process is fairly simple.
Hi, thanks for this @argent77 , I'm just starting to learn to mod and NI in incredible. One thing I couldn't get to work (no sure if this has been mentioned before), but if I load a saved game from TOB (bg2ee) latest - it lets me select the save game file, then NI crashes, any idea why?
Comments
I will fix it with the next release. Until then you can work around this issue by selecting a specific language for each game in Options > TLK Language (EE only).
Is it up to date?
My goal is a compiler and decompiler that works flawlessly with BCS scripts of any IE games, is more configurable and faster than the current one, handles illegal or buggy scripts gracefully and is fully compatible with WeiDU's own script compiler (which includes support for artificial constructs such as TriggerOverride()).
It may still take some time before it is in a working state. Are there any features you think may be useful to be included in the new compiler?
Opcode 214
Parameter 2
2 - (Known Mage Spells excluding CONTINGX.2da spells)
Looks like it omits spells with spell-flag 15, Ignore wild surge, not those listed in CONTINGX.2da.
They're just very similar list of spells.
Now accepts "2da" resources to define custom projectile lists.
Still defaults to "CLEARAIR.2da" when not set.
Request 2da Resource Menu.
Opcode 5: Charm, Opcode 241: Control Creature
as CRE effect:
# Dice Thrown = EA override
This field stores the creatures temporary EA value when it is not the default for the specified Charm type (CHARMED[6]/CONTROLLED[5]), such as when enemies use it against the Party/Allies, it is set to (ENEMY[255]).
Setting this field in an External EFF will override the normal, caster-based EA value assigned to the creature while it is charmed. Not of much use though given Charm's AI scripts are still hardcoded.
Occasionally, I have noticed CRE effects with a resist/Dispel Value of 4-7. Haven't found a cause or purpose yet, but they do line up with the normal values: 0 becomes 4, 1 becomes 5, 2 becomes 6, 3 becomes 7. The Haste Spell's effects often end up this way.
Will TestNope I think you mentioned this to me before, no problem. I haven't been able to find any cause or effect:- Setting bit 2 manually in an effect only screws up the timing mode it uses when attached to a creature, the resist/dispel mode still uses whatever value it would have without bit 2 set.
- It's not related to setting bit 8, which is used for Timing Mode 4096 (Absolute Duration).
- It's not related to spells bypassing MR when they target their Caster (Sunfire).
- It's not related to the spells hostility.
Setting Bit 2 prevents the effect from being turned/deflected/absorbed, but you can only use it in V2 effects.
It's naturally set by Area of Effect spell effects, excluding those applied through single-target subspells.
Not sure if this is functionally any different from set its power to 0 though, otherwise it might have some practical use.
I'm always open for suggestions how it can be further improved though.
Parameter1 = Type(Increment/Set/Set%) -> Value(+/-)
Opcode 183 (Apply Effect on Equip Type) -> (Use Eff file while Equip Type)
Resource = EFF menu
Opcode 182 (Apply Effect on Equip Item) -> (Use Eff file Knockoff )
Resource = Irrelevant?
Resource2 = EFF menu
Some notes about 182:
- Only functions as V2 EFF
- Does not function when either it or it's calling effect (Use EFF/177, etc) use limited timing modes - both require Timing modes 2 or 9.
- It's not checking Equipment at all.
Conclusion - Useless: duplicates effects of Opcode 177 while restricted to 2 timing modes and unable to be used as a V1 effect. Possibly meant for internal use.
What do you mean with EFF menu?
The second bug, which leads to corrupted files, is that effects in a spell ability gets added to the top of the list. You know how effects are normally on the bottom - effect 0, effect 1 and so on. Well, with this bug they appear on top, before all other lines. If this file is saved and reloaded, it gets an empty spell ability with crazy values.
Can you give me instructions how to reproduce the second bug? The effect entries were all added at the botton of the ability structure in my tests.
If the called effect can be maintained, such as haste, slow, stat bonuses, etc, then opcode 183 remains on the creature as a passive effect for its full duration(even permanent), while its called effect is only active while the item type is equipped.
If the called effect is always instantaneous, such as damage, create item, free action, cure (state), etc, then opcode 183 functions as a On-Equip Contingency, ending after its first trigger.
So it can be both While Equipped and On Equip, depending on the called effect.
If you really need it now you can follow the build instructions in the Near Infinity Wiki to compile it yourself. The process is fairly simple.