Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Dark Dreams of Furiae - a new module for NWN:EE! Buy now
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

New versions of NearInfinity available

1282930313234»

Comments

  • kjeronkjeron Member Posts: 2,146
    edited December 2019
    Luke93 wrote: »
    Unless I'm missing something, most values between 255 and 65536 will end up in the first category. Is that correct? I think it would be clearer if you added an example (how it works and why one'd want to use it).
    I don't really think there is any reason to want to use p2=1 it with p1 values > 255, or even >100.
    If 'Parameter1' is 65536, it will deal damage while the target's current HP is between 0 and 50, 100 and 150, 200 and 250, etc...
    If 'Parameter1' is 131072, it will deal damage while the target's current HP is between 0 and 25, 50 and 75, 100 and 125, etc...
    Both at a rate of 1/s. Dropping out of those ranges does not end the effect, damage will resume if they are later healed/damaged back into one of those ranges.

    This function (param2=1) was intended to damage a target for a total given percentage of maximum health (See description on Arrows of Biting), but has never worked that way, and is why it's mechanics are so weird.
    The arrows, in their current form, damage a target until their current HP < 3.33 (100 / 30) , or their duration expires (it's on redmine somewhere, if they haven't purged it yet).
    Luke93 wrote: »
    To sum up, the opcodes that behave like that are: #25 (Poison) and #98 (Regeneration). #78 (Disease) and #272 (Use EFF file on condition) seem to be slightly different. In particular:
    • op#78 – when param#2 = 1, the damage dealt is 'Parameter1' per rounds (instead of per seconds)
    • op#272 – param#2 = 1 is unknown
    Is that correct? Are there any other significant differences?
    In the EE's, op25, 78, and 98 share the same p2=1 behavior.
    In the EE's, op272 does not AFAIK have any function when p2=1, thought the effect is still present (it doesn't just instantly terminate), and will generate a portrait icon is special is non-zero.

    Luke93
  • Luke93Luke93 Member, Mobile Tester Posts: 1,335
    edited December 2019
    kjeron wrote: »
    Luke93 wrote: »
    To sum up, the opcodes that behave like that are: #25 (Poison) and #98 (Regeneration). #78 (Disease) and #272 (Use EFF file on condition) seem to be slightly different. In particular:
    • op#78 – when param#2 = 1, the damage dealt is 'Parameter1' per rounds (instead of per seconds)
    • op#272 – param#2 = 1 is unknown
    Is that correct? Are there any other significant differences?
    In the EE's, op25, 78, and 98 share the same p2=1 behavior.
    In the EE's, op272 does not AFAIK have any function when p2=1, thought the effect is still present (it doesn't just instantly terminate), and will generate a portrait icon is special is non-zero.

    What about p2=0,2,3,4 and the special field? Do they share the same behavior?

    If I got it right, the only difference between op#25, #78, #98 and #272 should be the relation with opcode #329 (which affects only op#25) and that detail about p2=1 and op#272 – Is that correct?

  • kjeronkjeron Member Posts: 2,146
    The special field determines the portrait icon for all 4 opcodes regardless of parameter2. The only difference between the opcodes special field is which icon is used as the default (#0). (Poison uses the poison icon, the others default to "none").

    The other major difference is op78 (Disease) p2 values 4-13, which are completely unrelated to the other 3 opcodes. Used for ability score drain, mold touch, slow, and contagion.
    The ability score drain effects are rather simple - reduces said ability score by 'parameter1'.
    The Slow effect is no different from that caused by op40, including it's stacking interaction with haste, except that it is blocked/removed as a disease, not as a slow effect.
    Contagion is a composite of Strength, Dexterity, Charisma drain and the Slow effect, each ability score reduced by 'parameter1'.
    Mold touch is complicated and not consisted across the EE games (it currently does not match what is mentioned on IESDP), but the general idea is that it deals (x or xd6) damage and applies the resource SPL every (round or second) for either 1 round (single) or across multiple rounds dealing less each round (decrement).

  • Luke93Luke93 Member, Mobile Tester Posts: 1,335
    edited December 2019
    kjeron wrote: »
    The other major difference is op78 (Disease) p2 values 4-13, which are completely unrelated to the other 3 opcodes.

    Unlike the other 3 opcodes, this one lacks the behavior that involves EFF files and 'Parameter3', right?
    kjeron wrote: »
    Mold touch is complicated and not consisted across the EE games (it currently does not match what is mentioned on IESDP), but the general idea is that it deals (x or xd6) damage and applies the resource SPL every (round or second) for either 1 round (single) or across multiple rounds dealing less each round (decrement).

    I see, so NI's description of the special field is wrong too...
    When you say it deals (x or xd6) damage, that 'x' is 'parameter1', right?

  • kjeronkjeron Member Posts: 2,146
    edited December 2019
    Luke93 wrote: »
    Unlike the other 3 opcodes, this one lacks the behavior that involves EFF files and 'Parameter3', right?
    Yes.
    Luke93 wrote: »
    I see, so NI's description of the special field is wrong too...
    When you say it deals (x or xd6) damage, that 'x' is 'parameter1', right?
    If p2=11(single), it's always '1'.
    If p2=12(decrement), it depends on the game:
    IWDEE uses 'parameter1' for x, and calculates duration as (6 * parameter1).
    BGEE calculates x from (duration / 6). (I think BG2EE uses this one as well).
    If you set (duration = 6 * parameter1) it should junction the same in both games.
    'parameter4' determines whether it deals damage every second or every round, and whether it deals x or xd6 damage.
    p4 = 0 = xd6 per round.
    p4 = 65536+ (even) = x per round.
    p4 = 65537+ (odd) = x per second.
    regardless, the value of x decrements only once per round.

  • Luke93Luke93 Member, Mobile Tester Posts: 1,335
    @kjeron

    Thank you, everything is hopefully clear now...

    I've got other questions though:
    1. What are the differences between op#218 and op#314? As far as op#218 is concerned, is it correct that if p2=1, then the total number of skins is: p1 + dice values (i.e., it behaves like op#12)?
    2. It seems that if a CRE is affected by op#39, then STATE_REALLY_DEAD returns true. Intended or bug?
    3. As far as ITM headers are concerned, what are exactly Alternative dice thrown (located at offset 0x11) and Alternative damage bonus (located at offset 0x13)?
    4. Is it true that op#45 (Stun) automatically provides the stun portrait icon?
    5. Is it true that both op#175 and op#185 automatically provide the "Held" string (or, better, the string specified by STRREF_EFFECT_HOLD in ENGINEST.2da)?

  • kjeronkjeron Member Posts: 2,146
    edited January 8
    Luke93 wrote: »
    [*] What are the differences between op#218 and op#314? As far as op#218 is concerned, is it correct that if p2=1, then the total number of skins is: p1 + dice values (i.e., it behaves like op#12)?
    Yes to dice values.
    Each sets a different STAT (218:88, 314:199), important for detecting them through scripts.
    #314 doesn't support the dice values or a customizable portrait Icon through the Special Field.
    The Juggernaut Golem 'TOMEGOL4.CRE' is scripted by 'TOMEGOL4.BCS' to Kill() itself if its Summoner and none of the Players Party have stat #199 set to a non-zero value.
    Stat 199 can also be set by op282 (Modify Scripting States), though is not officially supported, setting it this way provides all the benefits of stoneskin, but it does not decrement, nor does it provide the "stone" overlay color.
    Luke93 wrote: »
    [*] It seems that if a CRE is affected by op#39, then STATE_REALLY_DEAD returns true. Intended or bug?
    I don't see such behavior in my game, whether op39 is used for sleep or unconsciousness.
    STATE_REALLY_DEAD should be 0x00000FC0 in STATE.IDS
    Luke93 wrote: »
    [*] As far as ITM headers are concerned, what are exactly Alternative dice thrown (located at offset 0x11) and Alternative damage bonus (located at offset 0x13)?
    Unused AFAIK.
    Luke93 wrote: »
    [*] Is it true that op#45 (Stun) automatically provides the stun portrait icon?
    Yes.
    Luke93 wrote: »
    [*] Is it true that both op#175 and op#185 automatically provide the "Held" string (or, better, the string specified by STRREF_EFFECT_HOLD in ENGINEST.2da)?
    Sadly yes (both), it even overrides the entries in EFFTEXT.2DA.

    Luke93
  • HalfCelestialHalfCelestial Member Posts: 233
    Looks like NI sometimes allows filenames of over 8 characters. Not sure in what circumstances though. Made EEKeeper crash when I loaded the new resources.

    ybpyphnyv2nd.png

  • argent77argent77 Member Posts: 2,821
    Looks like NI sometimes allows filenames of over 8 characters. Not sure in what circumstances though. Made EEKeeper crash when I loaded the new resources.
    Do you have menu "Options -> Show Unknown Resource Types" enabled? In this case the entry counts as "unknown resource" and should not be available for resource-specific operations. Other game editors (and the game itself) should ignore these files. They were probably installed by some mods, maybe as marker files or simply by accident.

  • HalfCelestialHalfCelestial Member Posts: 233
    Yes, that option was enabled by default when I first started up the program. The files in the screenshot were in the override folder, and were created by me using "Add copy of".

  • majbermajber Member Posts: 50
    Can anyone please provide step by step guide how to build Near Infinite (compile) with build.xml (latest commits)?
    I cant start Ant -> that program should compile? I dont know now anything.
    Please help
    That my NearInfinite dir: https://imgur.com/a/UXho8Vp

  • argent77argent77 Member Posts: 2,821
    @majber If you have correctly installed JDK (8 or later) and Apache Ant then calling "ant" from the source base directory (where build.xml is located) should be enough to build NearInfinity.jar. You might see a couple of warnings if you compile it with more recent JDK versions, but the build process should complete successfully (haven't tested yet with JDK 13 though).

    But it's not really necessary to build NI yourself unless you want to modify the sources or test the latest experimental changes. Precompiled binaries can be downloaded from the link in the first post of this thread.

Sign In or Register to comment.