It's like, now the SPL folder list spells as follows: SPWI101.spl SPWI102.spl SPWI103.spl
Could the list look like this: Grease Armor Burning Hands
Or even: Grease (SPWI101.spl) Armor (SPWI102.spl) Burning Hands (SPWI103.spl) - Or swap the place: SPWI101.spl (Grease)
Sounds like an interesting feature. I'll see what can be done.
Also about the area images, as of now when moving mouse over to a Automap Note, it will show the note name, but only the note name the mouse over to, can there be an option to show all note names?
That has already been added to the latest release (v2.1-20170907). You can enable it for individual layer types in the Area Viewer Settings.
Hi @argent77, Sorry I didn’t post in the right place on github site.
It's like, now the SPL folder list spells as follows: SPWI101.spl SPWI102.spl SPWI103.spl
Could the list look like this: Grease Armor Burning Hands
Definitely not the above, please. Too many spells have no spell name (i.e., the spell name string reference is -1; EDIT: I checked in NI, and 512 SPL files in SoD have no spell name) or a non-unique name (e.g., there are 11 SPL files in SoD with the spell name "Magic Missile"). A list of SPL resources with dozens of non-unique entries would be bad.
If this were implemented, I would suggest the form "FILENAME.SPL (Spell name)". That would preserve the current sorting by filename.
It doesn't have to be one way, names like "Burning Hands (SPWI103.spl)" still have their uses, such as the conveniences of alphabetical sorting order, with "no name spells (Filename.spl)" grouped together to be ignored, this sorting is better used for player-accessible spells & abilities, same goes for items, with many "Attacks (Filename.itm)" grouped together.
So I would suggest the better way is to have both "Burning Hands (SPWI103.spl)" and "SPWI103.spl (Burning Hands)" sorting and the option the swap them for different needs.
I have already peeked at the relevant code. It would be a bit of work to update everything without leaving unwanted side effects since everything is spread all over the sources. I can't say yet when I get down to it.
I would probably add an option that allows you to toggle between "filename" and "search name (filename)" scheme, both sorted alphabetically. I guess the main reason for this feature request is to quickly jump to a resource by starting to type the search name (basically like a resource search without the search dialog).
Update: The implementation will most likely not be perfect since names of selected resource types are initialized after the resource tree has been constructed (e.g. area names in PSTEE). As a result the affected entries will be sorted by resource name rather than search name. There is probably not much I can do about it.
Say, Argent, can you make NI not look for movies in the Movie folder to determine which game it is pointed at? I'm sick and tired of those intros, and I could probably delete the folder or the movies, but NI needs them.
There aren't many more safe options left to determine the type of game.
However, you can force a game type via command line parameter, e.g. for IWDEE: javaw -jar NearInfinity.jar -t IWDEE Create a shortcut for NearInfinity.jar in the game installation folder and expand or add this line to the target field.
Full list of supported game types: BG1, BG1TotSC, BG2SoA, BG2ToB, Tutu, BGT, PST, IWD, IWDHoW, IWDHowTotLM, IWD2, BG1EE, BG1SoD, BG2EE, IWDEE, PSTEE and EET.
Update: The implementation will most likely not be perfect since names of selected resource types are initialized after the resource tree has been constructed (e.g. area names in PSTEE). As a result the affected entries will be sorted by resource name rather than search name. There is probably not much I can do about it.
Hi there @argent77 , You mean it's not likely to sort search name alphabetically, so the list is still based on source order but with the displayed names such as "Burning Hands (SPWI103.spl)" ? If so, I guess that will still do, since the some files are already grouped together by source, ie, SPWI2XX for wizard level 2 spells. I have one suggestion though, since this is the only way, why not go with "SPWI103.spl (Burning Hands)" ? And adding an option to toggle "(Burning Hands)" on/off?
The feature itself already works as intended, but I have to resolve a number of side effects yet, such as the above-mentioned issue with PSTEE area names and some conflicts with the override folder.
Argent, are you going to bring back the no-need-to-refresh feature? I'm using a computer with an old version of NI at the moment, and though it lacks some newer features, I couldn't be pleased more that I don't have to refresh the Tree every time I make or copy a file. It appears on the list as though by magic, and I can get to changing it right away. I don't know about others, but for me this is by far the most valuable handle on this tool.
And another thing. I've never noticed it before, but this old version pastes effects in an SPL by type, after the copied effect, rather than attach them to the end of the list. Say, you are creating a series of Use EFF effects from some one line up in the list. Or it could be glow-color effects, protections and so on. You probably want to have them all in one place inside the SPL, both for convenience and because you might insert some negating effects below. In the current version you cut or copy the effect and it is pasted below, so you have to cut out all of the other effects between, then paste them on the bottom for those two to appear next to each other. Sometimes these clever slidings begin to feel like a minigame, a backgammon. The old version, on the other hand (v. 2.1), puts the copies right after the originals - noticeably more rational.
Argent, are you going to bring back the no-need-to-refresh feature? I'm using a computer with an old version of NI at the moment, and though it lacks some newer features, I couldn't be pleased more that I don't have to refresh the Tree every time I make or copy a file. It appears on the list as though by magic, and I can get to changing it right away. I don't know about others, but for me this is by far the most valuable handle on this tool.
A real-time resource scanner was never part of NI. However, files created by "Add copy of" are automatically added to the resource tree in more recent releases. I attempted to implement a file watch feature in the past, but had to put it on hold because of serious negative side effects on Windows systems.
And another thing. I've never noticed it before, but this old version pastes effects in an SPL by type, after the copied effect, rather than attach them to the end of the list. Say, you are creating a series of Use EFF effects from some one line up in the list. Or it could be glow-color effects, protections and so on. You probably want to have them all in one place inside the SPL, both for convenience and because you might insert some negating effects below. In the current version you cut or copy the effect and it is pasted below, so you have to cut out all of the other effects between, then paste them on the bottom for those two to appear next to each other. Sometimes these clever slidings begin to feel like a minigame, a backgammon. The old version, on the other hand (v. 2.1), puts the copies right after the originals - noticeably more rational.
Copied effects are pasted right above the currently selected effect in more recent NI releases. That way it is possible to paste an effect at the first position without much effort. To paste an effect at last position you can either remove selection (e.g. via Ctrl + left mouse click) or select a non-effect entry before pasting. It works the same way regardless of whether you copy/paste one or multiple entries at once.
Found another offset projectile list: Opcode 140, when Parameter2 = 0. Listed values for Parameter1 match up with (PROJECTL.IDS + 1)/(MISSILE.IDS), while game uses values from PROJECTL.IDS. Example: #37 is listed as Magic Missile (MAGICMIS.PRO). #36 should be Magic Missile (MAGICMIS.PRO), #37 should be Fireball (FIREBALL.PRO).
@kjeron Do you know if opcode 339 (Alter visual animation effect) has to be fixed as well? It is also using projectile references, but I couldn't find any useful examples to be certain (only two instances in IWD:EE).
@kjeron Do you know if opcode 339 (Alter visual animation effect) has to be fixed as well? It is also using projectile references, but I couldn't find any useful examples to be certain (only two instances in IWD:EE).
Another interesting find: Opcode 39(Sleep), allows its special field to define the portrait icon it displays, similar to Opcode 218(stoneskin). A value of 0 still uses the default ('sleeping').
I could have sworn I tried this before without success, because I even put a feature request in for this exact behavior only 3 months ago.
Now to see if any other opcodes received this feature.
Edit: Deflection/Reflection/Trap spells didn't. Opcode 213(Maze) did - its even already in use by the Shaman's Ethereal Gate spell.
And some more: Poison(25) and Regeneration(98) use their special field as a "Frequency Multiplier", with a default(0) value of '1'. Parameter2 = (0 or 1) do not utilize the Special field. Parameter2 = 2, Frequency = 'Special' Parameter2 = 3, Frequency = 'Parameter1' * 'Special' Parameter2 = 4, Frequency = 'Parameter1' * 'Special'
This is what enables opcode 329 (Slow Poison) to work, as it writes over the 'Special' field of any Opcode 25 effects on the creature. Oddly a value of '0' causes it to crash the game, rather than use the default '1'. As is, Opcode 329 is useless against Poisons that use Parameter2=(0 or 1), as well as any Poison effect that is used through Opcode 177(Use EFF File), as Parameter2=4 requires. It is also not necessary "Slow" Poison, as it can also accelerate poisons if their Special Field was already higher than the value specified in Opcode 329. There is a slight discrepancy when the effect is applied and the timer has to recalculate itself, but I've not seen it result in more than a single extra trigger. It does not alter the duration of the poison, nor does it affect any of the other frequency opcodes (78/98/272).
Disease(78) and Use EFF file on Condition(272) showed similar results with their special field, but were not stable. The values sometimes resulting in them not triggering at all without using the "AdvanceTime(I:Time*GTIMES)" action to forcibly advance more the 60 seconds worth at a time.
Is it possible to increase the width of the color slider of the 'set color effect' somewhat? It's awkward to look for colors without skipping numbers while sliding left and right.
If I dual class a character—let's say, for example, I start out as a Cleric and dual to Fighter—what happens to my character's class in the CRE file / Near Infinity? Does it show anywhere that my original class was Cleric?
The original class is stored in the Flags field of the CRE structure (one of the "Original class" bits). It is also used by the engine to distinguish between multi class and dual class.
NearInfinity v20170907, BG:EE v2.3.67.3, modded worldmap: if I open the WORLDMAP.WMP it takes very long until it is displayed and if I try to EDIT/VIEW one of the areas NI just freezes.
Is this an indicator that my mod borked the worldmap or is there a chance the cause is something else (too little memory, I am too impatient) and you can help me with this?
The long loading time is a known issue and seems to happen only if the map graphics is using the pvrz-based MOS format (which usually is with the EE games). I'll look into it further eventually.
I don't think the freeze is caused by a borked map. In that case it would simply not load at all or create an error message.
It is more likely that it's a memory issue. If you're still using a 32-bit version of the Java Runtime, you could try your luck with the "Hide NI DOS" tool (download somewhere in this post), or start NI from the command prompt with this call
This is not needed if you have a 64-bit version of the Java Runtime installed on your system.
Starting NI from the command line might also be helpful to catch error messages that are lost because of the freeze. Simply start NI from the command prompt with
java.exe -jar NearInfinity.jar
All log outputs will be printed into the console window.
Thank you! Using the first command line you posted gives me a "Initial heap size set to a larger value than the maximum heap size". I guess that's a bad sign, haha. Thank you nontheless, at least I know what could be the problem now.
When you copy & paste several entries of shop items or effects, the order is reversed. For example, if you like an alphabetical order in shops, you always have to copy/cut & paste all the store-items twice. It would save time if the order wouldn’t be flipped every time with the paste-command.
The preset list of Scripting States/Stats for Opcode 282 is off. From 32 onward, all stats should be one less. 32 is Chaos_Shield 33 is NPC_Bump 34 is Use_Any_Item 35 is Assassinate etc... 42 is StoneSkinsGolem 43 is LevelDrain 44 is DonotDraw
The current stat for 32, Summon_Disable_Action, is skipped. The final stat, Ignoredraindeath109, cannot be set by this opcode. This may be EE-only (maybe a side effect of giving it a proper upper/lower bound, I don't know).
Comments
If this were implemented, I would suggest the form "FILENAME.SPL (Spell name)". That would preserve the current sorting by filename.
It doesn't have to be one way, names like "Burning Hands (SPWI103.spl)" still have their uses, such as the conveniences of alphabetical sorting order, with "no name spells (Filename.spl)" grouped together to be ignored, this sorting is better used for player-accessible spells & abilities, same goes for items, with many "Attacks (Filename.itm)" grouped together.
So I would suggest the better way is to have both "Burning Hands (SPWI103.spl)" and "SPWI103.spl (Burning Hands)" sorting and the option the swap them for different needs.
I would probably add an option that allows you to toggle between "filename" and "search name (filename)" scheme, both sorted alphabetically. I guess the main reason for this feature request is to quickly jump to a resource by starting to type the search name (basically like a resource search without the search dialog).
However, you can force a game type via command line parameter, e.g. for IWDEE:
javaw -jar NearInfinity.jar -t IWDEE
Create a shortcut for NearInfinity.jar in the game installation folder and expand or add this line to the target field.
Full list of supported game types: BG1, BG1TotSC, BG2SoA, BG2ToB, Tutu, BGT, PST, IWD, IWDHoW, IWDHowTotLM, IWD2, BG1EE, BG1SoD, BG2EE, IWDEE, PSTEE and EET.
You mean it's not likely to sort search name alphabetically, so the list is still based on source order but with the displayed names such as "Burning Hands (SPWI103.spl)" ? If so, I guess that will still do, since the some files are already grouped together by source, ie, SPWI2XX for wizard level 2 spells.
I have one suggestion though, since this is the only way, why not go with "SPWI103.spl (Burning Hands)" ? And adding an option to toggle "(Burning Hands)" on/off?
In the unlikely case that it causes some issues you can easily downgrade to Java 8 again. Both versions are still available at the Java download page.
And another thing. I've never noticed it before, but this old version pastes effects in an SPL by type, after the copied effect, rather than attach them to the end of the list. Say, you are creating a series of Use EFF effects from some one line up in the list. Or it could be glow-color effects, protections and so on. You probably want to have them all in one place inside the SPL, both for convenience and because you might insert some negating effects below. In the current version you cut or copy the effect and it is pasted below, so you have to cut out all of the other effects between, then paste them on the bottom for those two to appear next to each other. Sometimes these clever slidings begin to feel like a minigame, a backgammon. The old version, on the other hand (v. 2.1), puts the copies right after the originals - noticeably more rational.
Copied effects are pasted right above the currently selected effect in more recent NI releases. That way it is possible to paste an effect at the first position without much effort. To paste an effect at last position you can either remove selection (e.g. via Ctrl + left mouse click) or select a non-effect entry before pasting. It works the same way regardless of whether you copy/paste one or multiple entries at once.
Opcode 140, when Parameter2 = 0.
Listed values for Parameter1 match up with (PROJECTL.IDS + 1)/(MISSILE.IDS), while game uses values from PROJECTL.IDS.
Example:
#37 is listed as Magic Missile (MAGICMIS.PRO).
#36 should be Magic Missile (MAGICMIS.PRO), #37 should be Fireball (FIREBALL.PRO).
@kjeron Do you know if opcode 339 (Alter visual animation effect) has to be fixed as well? It is also using projectile references, but I couldn't find any useful examples to be certain (only two instances in IWD:EE).
Opcode 39(Sleep), allows its special field to define the portrait icon it displays, similar to Opcode 218(stoneskin). A value of 0 still uses the default ('sleeping').
I could have sworn I tried this before without success, because I even put a feature request in for this exact behavior only 3 months ago.
Now to see if any other opcodes received this feature.
Edit:
Deflection/Reflection/Trap spells didn't.
Opcode 213(Maze) did - its even already in use by the Shaman's Ethereal Gate spell.
Poison(25) and Regeneration(98) use their special field as a "Frequency Multiplier", with a default(0) value of '1'.
Parameter2 = (0 or 1) do not utilize the Special field.
Parameter2 = 2, Frequency = 'Special'
Parameter2 = 3, Frequency = 'Parameter1' * 'Special'
Parameter2 = 4, Frequency = 'Parameter1' * 'Special'
This is what enables opcode 329 (Slow Poison) to work, as it writes over the 'Special' field of any Opcode 25 effects on the creature. Oddly a value of '0' causes it to crash the game, rather than use the default '1'.
As is, Opcode 329 is useless against Poisons that use Parameter2=(0 or 1), as well as any Poison effect that is used through Opcode 177(Use EFF File), as Parameter2=4 requires.
It is also not necessary "Slow" Poison, as it can also accelerate poisons if their Special Field was already higher than the value specified in Opcode 329.
There is a slight discrepancy when the effect is applied and the timer has to recalculate itself, but I've not seen it result in more than a single extra trigger.
It does not alter the duration of the poison, nor does it affect any of the other frequency opcodes (78/98/272).
Disease(78) and Use EFF file on Condition(272) showed similar results with their special field, but were not stable. The values sometimes resulting in them not triggering at all without using the "AdvanceTime(I:Time*GTIMES)" action to forcibly advance more the 60 seconds worth at a time.
It's awkward to look for colors without skipping numbers while sliding left and right.
Is this an indicator that my mod borked the worldmap or is there a chance the cause is something else (too little memory, I am too impatient) and you can help me with this?
I don't think the freeze is caused by a borked map. In that case it would simply not load at all or create an error message.
It is more likely that it's a memory issue. If you're still using a 32-bit version of the Java Runtime, you could try your luck with the "Hide NI DOS" tool (download somewhere in this post), or start NI from the command prompt with this call This is not needed if you have a 64-bit version of the Java Runtime installed on your system.
Starting NI from the command line might also be helpful to catch error messages that are lost because of the freeze. Simply start NI from the command prompt with All log outputs will be printed into the console window.
Thank you nontheless, at least I know what could be the problem now.
From 32 onward, all stats should be one less.
32 is Chaos_Shield
33 is NPC_Bump
34 is Use_Any_Item
35 is Assassinate
etc...
42 is StoneSkinsGolem
43 is LevelDrain
44 is DonotDraw
The current stat for 32, Summon_Disable_Action, is skipped.
The final stat, Ignoredraindeath109, cannot be set by this opcode.
This may be EE-only (maybe a side effect of giving it a proper upper/lower bound, I don't know).