Jump to content

ToB effects


devSin

Recommended Posts

#16 Haste - type 2 appears to work similar to normal haste (the character is hasted, the regular haste icon is applied, and they gain .5 attacks).
I wasn't able to reproduce this. :( Type 2 now appears to give only the bonus to movement rate.

 

#163 Free action - this warrants further testing. It doesn't appear to do anything at all. Or maybe it only clears 176? EDIT: or, this may just set movement rate to 9, but without clearing the effects, there won't be any apparent effect (I think the default is hard-coded, so I'm not sure how it could ever be !9).

 

#317 Dbl #attacks - this really does look like Haste2. If param2 is 0, normal haste; if 1, improved haste (set stat 155 to 1); if 2, movement rate only. It's still canceled by the slow effect.

Link to comment

I've checked the executable for 0x76 ShowCreatures and 0x72 Dither. They do absolutely nothing. They just notify the engine that the effect has been called and that's it. (this was ToB, they might do something in BG1, and GemRB will implement that behaviour, if there is any).

 

 

[edit]

Do nothing effects so far:

0x6e RunAway (does nothing)

0x71 EquipWeapon (does nothing)

0x72 Dither (does nothing)

0x76 Reveal:Creatures (does nothing)

0x79 VisualAnimationEffect (does nothing)

 

(i'll modify gemrb to use the original function names later, these names are how gemrb recognises them).

 

For some reason or another, the engine doesn't contain a Turn effect. It is somehow hardcoded. I think i'll make 0x6e the turn effect.

Link to comment

I don't think they've ever been used (definitely not in BG1 or BG2); I suspect Visual animation effect will be the same (effect 121 (0x79), if you want to check). It's good to know Show creatures is useless; I've never even thought to check that one.

 

For GemRB, you could make Show creatures emulate tracking (the arrows that are supposed to show up pointing to creatures in the area), but without the string. Dither could be used to force dithering in the manner I suggested (even if "Always Dither" is disabled, a creature with this effect would be dithered when obscured). Or you can be like BioWare and have them do nothing. ;-)

 

The current HP bonus thing worries me. If all increment types are 2 bytes, there could be a bunch of additional behaviors in other effects that nobody knows about.

 

I did go back and check bit 14. Just setting it for a bunch of creature files in the SAV ARE, and for Imoen in the GAM, the bit was just cleared for the next area (in the auto-save, when using the dungeon portals). So it must need the Move to area effect, or the game has some other way of tracking if it's legit.

Link to comment

You didn't write what does the current hp bonus param2 upper word do.

I've been checking a lot of effects but it is the first -new- one that does this trick (i still don't know what it does with the upper word).

Anyway, in most of the times it checks if param2 is 0,1,2 if not, then it crashes.

Link to comment

#163 definitely does something if movement rate is lowered.

It compares the original movement rate to the modified one to determine if it has to do something. (9 isn't hardcoded).

 

 

It removes all 0x7e (126) effects if the modified movement rate is lower than the original.

This is, of course, crap. It should remove individual 0x7e effects if they lower the movement rate (or remove all of them).

 

Remove curse truly tries to remove 0x11b (283) effects.

Link to comment
You didn't write what does the current hp bonus param2 upper word do.
The first 2 bytes control the bonus type, the second seems to control the heal target.
The first word is standard mod type; the last word is the "heal dead" stuff.
Link to comment

Sorry, i found it now in the earlier notes :)

This heal dead bit is interesting, is it used anywhere?

 

[edit]

known values for the high word:

1 cures death

2 removes ALL effects that are not in timing mode 9 (permanent after death)

3 both, probably this is used by ctrl-r

Link to comment

[edit]

My previous notes about #23 were crap :)

 

Actually, #23 always modifies the morale to 10, just as DevSin wrote.

Earlier this effect was a Morale setter function which didn't ignore the param1/param2 values, but a crude hack modifies them: p1=10;p2=1;

 

I expect this to be a bg2 only feature. iwd2/bg1 and all should be able to modify morale.

Link to comment

I just noticed that 'knock' also does nothing (when targetted at creatures).

This also means, there is hope that 'reveal creatures' etc, effects do something, but not when targetted at a creature. As DevSin also wrote, the effect classes have more than 2 methods (constructor+applyeffect).

Now, i just have to find a way to catch the Knock effect when targetted on something else than a creature and then check those 'do nothing' effects again.

Link to comment
Actually, #23 always modifies the morale to 10, just as DevSin wrote.

Earlier this effect was a Morale setter function which didn't ignore the param1/param2 values, but a crude hack modifies them: p1=10;p2=1;

 

I expect this to be a bg2 only feature. iwd2/bg1 and all should be able to modify morale.

It looks like BG also overrides the parameters, but I very much could be wrong.
Link to comment

#307 Ranger tracking - param1 is the range. When the tracking ability is used, arrow indicators appear at the edge of the screen (green for allies, blue for neutrals, and red for enemies) for creatures within a given distance that are offscreen. The larger the range, the greater allowed distance for the offscreen enemies to show arrows for. This is not feet, but some other metric (maybe square feet or circumference or diameter or something). Oddly, I couldn't get the effect to work outside SPCL922 (the string always runs, but no arrows).

 

#308 Unknown - this is immunity to tracking; works fine. If a creature has this effect, no arrow will be shown for it (as described above) when the tracking ability is used. Has no effect on the tracking string (set in the 2DA).

 

Unless something major or cool turns up, this is hopefully the end of my involvement with engine/IESDP stuff.

Link to comment
Sorry, i found it now in the earlier notes :)

This heal dead bit is interesting, is it used anywhere?

 

[edit]

known values for the high word:

1 cures death

2 removes ALL effects that are not in timing mode 9 (permanent after death)

3 both, probably this is used by ctrl-r

In SoA, the second bit (dispel) doesn't do anything. Not surprisingly, Ctrl+R doesn't dispel effects in SoA, only heal and raise dead.

 

It does work as you describe in ToB (bit 0 is raise, bit 1 is dispel, both are raise+dispel).

Link to comment
#114 Dither - I'd call this one unknown. It doesn't appear to do anything. It really is Dither.

 

But it doesn't do anything?

 

#121 VFX - I'd call this one unknown. It doesn't appear to do anything. It really is Visual animation effect.

 

But it doesn't do anything?

 

 

The bounce opcode stuff is particularly interesting, as is EFF2 - I like it :rolleyes:

 

Anyway, fine work Devsin, and Avenger. Most of this is now in the local copy, I'll add the rest soon (and maybe generate a few more questions).

Link to comment
#114 Dither - I'd call this one unknown. It doesn't appear to do anything. It really is Dither.

 

But it doesn't do anything?

 

#121 VFX - I'd call this one unknown. It doesn't appear to do anything. It really is Visual animation effect.

 

But it doesn't do anything?

Correct on both. There is no code to generate any sort of effect, and unlike Avenger, I don't think this is a case where the object type may produce different behaviors (when given something other than CGameSprite).

 

The effects can be used, and will not crash, but there will not be any effect, and it's not worth investigating or playing with any further (the disassembled code is fairly obvious that these will never have any effect on an actor object).

 

The list of functional (non-crashing), but useless effects posted by Avenger is accurate, and should cover all of the effects that don't have code to actually do anything.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...