Skip to content

New versions of NearInfinity available

1222325272844

Comments

  • BloodstoneBloodstone Member Posts: 99
    I must be an idiot or something. I have the Jar file. Tried to open it, it was saved as a 7zip file. I kept getting the support error, so I figured it must be the 7zip format that was the problem. I downloaded a new file archive app, Files and Folders Lite from the app store. Now it's in that format and I put the file in the game program folder and clicked on it, and it opens the .jar file just like it was an archive. gives me 4 folders (com, org, and a couple others) that I can view and open, but it doesn't start the program.......I'm really sorry I'm not getting this because it's gotta be obvious that I'm doing something wrong, obviously many people use this program all the time......what am I doing wrong?
  • argent77argent77 Member Posts: 3,476
    Near Infinity doesn't use the 7zip file format. Did you download the tool from there?

    It could be that your Java Runtime hasn't been installed correctly, or another tool (like 7-Zip) has overridden the .jar file association. In that case you should remove the file association (from 7-Zip or whatever tool is executed when you double-click on NearInfinity.jar). If that doesn't help, try re-installing the Java Runtime.

    You could also bypass the file association completely and try to execute Near Infinity directly with the following command from the Command Prompt:
    javaw -jar NearInfinity.jar
  • dbianco87dbianco87 Member Posts: 21
    Having that problem where NearInfinity is microscopic due to me having a modern 4k monitor. Tried to fix it by setting dpiaware to false on my java apps. Didn't change anything. It is not useable in this state and I would 1000x prefer being able to use the app without changing my desktop's resolution if that is possible. PC is top of the line modern gaming pc running windows 10 pro.

    I remember fixing this somehow in the past but haven't been able to figure it out so far this time, any help is appreciated, unless that "help" is you explaining why my problem is not a problem, in that case please do not respond.
  • argent77argent77 Member Posts: 3,476
    edited June 2018
    Well, Near Infinity uses Java's Swing Library for implementing GUI stuff, which isn't DPI-aware and will probably never be. This issue has been discussed before (e.g. here).

    A few months back I have tried out a work-around, by implementing an option that will globally increase font size for all UI controls. You can change them via Options > Change Global Font Size for UI controls, menus, etc. and Options > Text Font for fonts in resource tables and text windows. However, I didn't get any feedback yet about whether it worked correctly (and I don't have the means to test it myself).

    Apart from that, there are several hacks described on various platforms to enforce DPI-awareness for Java apps. I'm posting one for Windows 10. Maybe it helps in your case:
    1. Find java.exe (or javaw.exe) you installed.
    2. Right click -> Properties
    3. Go to Compatibility tab
    4. Check "Override high DPI scaling behavior"
    5. Choose "System" for "Scaling performed by:"
  • BubbBubb Member Posts: 1,005
    I mapped these bytes a while back; maybe they can be of some use here.

    IWD2 CRE (v2.2) offset 0x2f2: The first six bytes here are used to keep track of the summoner-summon relationship. One of these six bytes is set (on the summoner) when a creature is summoned by a PC; the corresponding byte is unset when the summon is killed / unsummoned. The bytes can be described like so:

    byte at offset (0x2f2 + n) is 00 if the nth summon was not summoned by this PC.
    byte at offset (0x2f2 + n) is 01 if the nth summon was summoned by this PC.

    0x2f2 => Summon 1 summoned by this PC (00 => No ; 01 => Yes)
    0x2f3 => Summon 2 summoned by this PC (00 => No ; 01 => Yes)
    0x2f4 => Summon 3 summoned by this PC (00 => No ; 01 => Yes)
    0x2f5 => Summon 4 summoned by this PC (00 => No ; 01 => Yes)
    0x2f6 => Summon 5 summoned by this PC (00 => No ; 01 => Yes)
    0x2f7 => Summon 6 summoned by this PC (00 => No ; 01 => Yes)

    These bytes also control the summon limit; if these (set) bytes are unset using Near Infinity the summoning cap can be exceeded.
  • argent77argent77 Member Posts: 3,476
    Looks interesting. I'll see if I can try it out sometime. IWD2 doesn't work well on my system, so it might take a while.
  • kjeronkjeron Member Posts: 2,368
    edited July 2018
    An odd change in v2.5 to opcode 282:

    Parameter2 values 18 - 43 now occupy values 19 - 44.
    Unknown what effect current value 18 has.
    Previous value 44 (DO_NOT_DRAW) has unknown (if any) current value.

    I double-checked with v2.3 to make sure these weren't just an error from my previous post about this opcode:
    In v2.3, 18 is preventspellprotectioneffects.
    In v2.5, 19 is preventspellprotectioneffects.
    ...
    In v2.3, 42 is golemstoneskin.
    In v2.5, 43 is golemstoneskin.
  • argent77argent77 Member Posts: 3,476
    Hmm, that's a rather unusual change and causes the opcode to be out of sync with STATS.IDS. It might be a regression from the latest patch. I would suggest to create a bug report on redmine, if only to find out whether this issue is indeed a bug or a deliberate change.
  • BalquoBalquo Member, Developer Posts: 2,746
    edited July 2018
    Found a small issue I believe. Using StringRef Lookup and search for 27505 (bgee string) it will find 6 hits. However, opening any one of these hits will open up the first hit only - In this case being state 1.
  • CoM_SolaufeinCoM_Solaufein Member Posts: 2,606
    I like what Near Infinity has become. I haven't used it in the past couple years, this current version looks and works great.
  • argent77argent77 Member Posts: 3,476
    Balquo said:

    Found a small issue I believe. Using StringRef Lookup and search for 27505 (bgee string) it will find 6 hits. However, opening any one of these hits will open up the first hit only - In this case being state 1.

    I can confirm this behavior. However, from what I can see, it was always like this even back at NI v1.36. I'll see what I can do to improve the situation.
  • kjeronkjeron Member Posts: 2,368
    Not sure how practical it would be to map these in string fields (or if any of them are even used in an unmodded game), but the dialog.tlk references listed in ENGINEST.2da can be referenced as (row# + 0xf00000). Row# starts at 0, excluding the header rows.

    For example, if I set offset 0x8 (unid name) for an item to 0xf00008, in-game it will display:
    Auto-Paused: Scripted
    which is tlk reference 24545 (BGEE), row#8 in ENGINEST.2da:
    STRREF_AUTOPAUSE_SCRIPTED 24545
  • argent77argent77 Member Posts: 3,476
    Adding this functionality would be quite a lot of work, since strrefs are used by several different parts of NI (e.g. string fields, strref lookups or string editor). Chances are rather slim that it will be implemented. I haven't seen it used in the game yet.
  • kjeronkjeron Member Posts: 2,368
    No problem, as far as I've seen they are only used by the UI.
  • argent77argent77 Member Posts: 3,476
    kjeron said:

    An odd change in v2.5 to opcode 282:

    Parameter2 values 18 - 43 now occupy values 19 - 44.
    Unknown what effect current value 18 has.
    Previous value 44 (DO_NOT_DRAW) has unknown (if any) current value.

    I double-checked with v2.3 to make sure these weren't just an error from my previous post about this opcode:
    In v2.3, 18 is preventspellprotectioneffects.
    In v2.5, 19 is preventspellprotectioneffects.
    ...
    In v2.3, 42 is golemstoneskin.
    In v2.5, 43 is golemstoneskin.

    Based on this info I have decided to leave the state list unchanged, but add an "undocumented" remark to states > 10 in NI. With luck this issue will be resolved in a future game patch.
  • BubbBubb Member Posts: 1,005
    @argent77: I had a quick question regarding strings in BCS scripts; I seem to recall that you worked on overhauling NI's script parser (or something like that) semi-recently, so I think you would be the best person to ask this...

    Would it be possible to allow multi-line strings in BCS scripts? I don't believe the BCS format can encode multi-line strings correctly, but for my instance that doesn't matter. Basically, all I want the newlines for is sanity in my arguments, the newlines can be converted to spaces in the compiling process...

    This is all for a custom trigger I'm working on btw; I understand its an odd request. I don't expect you to act on this or anything, I just wanted to know if it's theoretically possible. Thanks!
  • argent77argent77 Member Posts: 3,476
    I'm pretty certain this is not possible without changing the syntax definition of the BAF script. The syntax definition is the very core of the script compiler. I don't want to touch it unless there is no other way, as it could easily break compatibility with current syntax or introduce unexpected side effects.

    It would also be necessary to make changes to the syntax highlighter and possibly various search routines (since script code in dialogs is stored in human-readable format). Sounds like a tremendously complicated task for a simple change.

    To save your sanity you could simply write the code somewhere in a text editor and use a find-and-replace operation on line breaks to turn them into spaces before pasting the whole block into the script editor.
  • kjeronkjeron Member Posts: 2,368
    edited August 2018
    Well, here's another oddball:
    Opcode 233 (Modify Proficiency):
    Parameter2 = (any prof) + (Increment)
    Special = (non-zero)

    Only applies the effect if the creature does not currently have any active-class Longsword proficiency. As far as I've checked it doesn't matter what proficiency your adding, it always checks Longsword proficiency.

    Currently used by Black Blade of Disaster, with less than optimal results. At this point I think they should just remove the proficiency from it entirely and simulate it with opcodes 1/73/190/278.
  • kjeronkjeron Member Posts: 2,368
    edited August 2018
    More v2.5 changes:
    The Frequency Multiplier used by Opcode 25 (Poison) has been moved to "Parameter4".
    The "Special" field now dictates the portrait Icon displayed.

    Opcodes 78(Disease), 98(Regeneration), and 272(Use EFF on Condition) also now use their "Special" field for Portrait Icons.
  • argent77argent77 Member Posts: 3,476
    kjeron said:

    More v2.5 changes:
    The Frequency Multiplier used by Opcode 25 (Poison) has been moved to "Parameter4".
    The "Special" field now dictates the portrait Icon displayed.

    Opcodes 78(Disease), 98(Regeneration), and 272(Use EFF on Condition) also now use their "Special" field for Portrait Icons.

    Thanks. This change may cause compatibility issues with mods, but at the very least it's more consistent with other opcodes now.
  • BubbBubb Member Posts: 1,005
    Is it possible to build the NearInfinity source using a JDK version higher than 8? I just updated my Java version to JDK 10.0.2, and attempting to compile NI (with the latest version of Apache Ant) yields these errors:

    compile: [mkdir] Created dir: C:\NearInfinity-devel\build\src [javac] Compiling 516 source files to C:\NearInfinity-devel\build\src [javac] warning: [options] bootstrap class path not set in conjunction with -source 8 [javac] C:\NearInfinity-devel\src\org\infinity\gui\OpenResourceDialog.java:444: error: method accept in interface Action cannot be applied to given types; [javac] accept(); [javac] ^ [javac] required: Object [javac] found: no arguments [javac] reason: actual and formal argument lists differ in length [javac] C:\NearInfinity-devel\src\org\infinity\gui\converter\ConvertToBam.java:5799: error: method accept in interface Action cannot be applied to given types; [javac] accept(); [javac] ^ [javac] required: Object [javac] found: no arguments [javac] reason: actual and formal argument lists differ in length [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] 2 errors [javac] 1 warning


    I attempted to search for a solution to the error, and the only one I've found says to use an older JDK. I just wanted to confirm here that compiling NI does indeed require JDK 8, and that I need to keep that on my machine.
  • RaduzielRaduziel Member Posts: 4,714
    edited August 2018
    @argent77 one suggestion

    Undead level -> Turn undead level

    The offset as it is written gives the idea that it is the level that a creature would present when affected by turn undead.

    Well, happened to me but I can be quite stupid.
  • argent77argent77 Member Posts: 3,476
    @Bubb It appears Java 10 introduces some incompatibilities (on source level). I don't think NI can be built successfully without a good number of code changes.

    I would suggest to install JDK 8. It is still officially available from Oracle (download). It can be installed side by side with newer versions. You'll probably have to update PATH and the JAVA_HOME environment variable to point to the right JDK installation.

    I'll keep Java 8 compatibility for a while, since not all platforms have been updated to Java 10 yet.

    @Raduziel Will be fixed.
  • Rik_KirtaniyaRik_Kirtaniya Member Posts: 1,742
    I'm not sure if this is the right thread to ask, but this should be relevant, I hope. :)

    I use NearInfinity to convert the BAM files of monsters to animated GIFs in order to put them on the wiki. Generally, all I have to do is go to Edit BAM --> Post-processing tab --> Add filters Transform: Center BAM Frames and Output: GIF Output and that does it all very well.

    Examples:


    However, in case of very large monsters like Firkraag and Demogorgon, their animations appear to be cut into four squares (as if a set of coordinate axes passed through the center of their bodies) and placed in many separate BAM files part by part. (Demogorgon has 52 such BAM files all prefixed MDEMG and then having various numbers suffixed.) As a result, the method which I mentioned above does not work for them. Is there any way to assimilate those BAM files and make a complete GIF animation of these monsters? I'd appreciate any help provided. :)
  • argent77argent77 Member Posts: 3,476
    I don't think that's possible with Near Infinity. You can do the reverse process, splitting very large creature animations into multiple segments to make them work in the game engine.

    You can create animations out of the individual segments, but combining these segments will require some other tools. I don't know how difficult it will be though. Never done it before.
  • GwendolyneGwendolyne Member Posts: 461
    Which creatures do you want? Which directions and actions? Many years ago, I reassembled a few. If you are lucky, I might dig them up from my old HD.
  • Rik_KirtaniyaRik_Kirtaniya Member Posts: 1,742
    @Gwendolyne Thanks, but I would actually like to know the method of doing it (so that I can do it anytime I want ;) ). How did you reassemble them? What tools did you use?
  • GwendolyneGwendolyne Member Posts: 461
    I used a home made dev tool a Diablo II modder wrote for me when I decided to port Diablo II animations into BG2. Unfortunately, the guy retired from modding five or six years ago. I remember having reassembled dragons (maybe demogorgon?, not sure). But I need to check in my old HD to find them. As for the tool, I am not sure it survived my computer failures... :(
  • Rik_KirtaniyaRik_Kirtaniya Member Posts: 1,742
    Hello @argent77, I was trying to open a few areas in BGEE using the area viewer in NearInfinity. However, the following error shows up:

    I cannot understand why this happens. My laptop has a 4 GB RAM and a 1 TB HDD in it, and I don't think any area is so large as to not fit within. What might be the problem? Can you please help me with this?
Sign In or Register to comment.