diff --git a/_opcodes/op000.html b/_opcodes/op000.html index b520c9c86..b83fa2b55 100644 --- a/_opcodes/op000.html +++ b/_opcodes/op000.html @@ -19,7 +19,7 @@ If the targets AC is already 'AC Modifier' or below, this effect will do nothing).

-AC is capped to the range [-20, 20] +Each modifier type to AC from this opcode is capped to the range [-20, 20]. Each AC type total is capped to the range [-32768,32767].

{% capture note %} diff --git a/_opcodes/op001-bgee.html b/_opcodes/op001-bgee.html index 9c1c74248..2f6a25fe6 100644 --- a/_opcodes/op001-bgee.html +++ b/_opcodes/op001-bgee.html @@ -28,15 +28,26 @@
0 Cumulative Modifier -> Key = Key + 'Key Modifier' value
1 Flat Value Modifier -> Key = 'Key Modifier' value
2 Percentage Modifier -> Key = (Key * 'Key Modifier' value) / 100 -
3 Final Value Modifier -> Key = 'Key Modifier' value +
3 Final Value Modifier -> Key = 'Key Modifier' value {% capture note %} -When this opcode is stacked, the values of the Key Modifier are stacked, - not the number of attacks. +When this opcode is stacked, the number of attacks are stacked, not the values of the Key Modifier. {% endcapture %} {% include info.html %} +{% capture note %} +Param#1 can take negative values. These values match their positive counterparts (e.g., "-6" corresponds to "-0.5"). +{% endcapture %} + +{% include note.html %} + +{% capture note %} +The "Set Final" parameter 2 option only works with the Equipped timing modes (2-5-8). It does not work for the Limited or Permanent timing modes. This is regardless of whether the effect is on an ITM or a SPL. +{% endcapture %} + +{% include note.html %} + {% capture note %} IWD1 treats all keys above 5 as 5. PST does not support Type 3, while BG(2)EE uses it differently. diff --git a/_opcodes/op002.html b/_opcodes/op002.html index 24e9a5402..d04263f40 100644 --- a/_opcodes/op002.html +++ b/_opcodes/op002.html @@ -10,11 +10,17 @@ iwd2: 1 pst: 1 --- -Removes the state_sleeping flag from the targeted creature(s). +Removes opcode #39 effects and the STATE_SLEEPING flag from the targeted creature(s).
This effect ignores durations attributed to it. {% capture note %} -Does not remove the state_helpless flag. +Does not remove the STATE_HELPLESS flag. {% endcapture %} -{% include note.html %} \ No newline at end of file +{% include note.html %} + +{% capture note %} +At least in EEs, it can remove opcode #177 effects targeting an EFF with opcode #39. Does not always work when delayed. +{% endcapture %} + +{% include note.html %} diff --git a/_opcodes/op003.html b/_opcodes/op003.html index d105a7259..49c2b7a2d 100644 --- a/_opcodes/op003.html +++ b/_opcodes/op003.html @@ -10,14 +10,23 @@ iwd2: 0 pst: 1 --- -Applies the berserk effect to the targeted creature(s). -
Target will uncontrollably attack enemies if any are in view, and will occasionally -attack neutral creatures. +Applies the berserk effect to the targeted creature(s) in the style specified by the 'Type' field. +
Target will uncontrollably attack enemies if any are in view, and will occasionally attack neutral creatures. +
Known values for 'Type' are: +
0 Default/In Combat -> Only berserk while in combat. +
1 Constant -> always berserk, sets SPELLSTATE 39 - ANIMAL_RAGE (only in EEs). +
2 Blood Rage -> this is probably not implemented. It should be linked to SPELLSTATE 35 - SUPPRESS_HP_INFO. (only in EEs)

The affected creature becomes berserk and its AI scripts stop running. Grants a +2 bonus to hit and damage with all weapons. It also sets the STATE_BERSERK flag.

+{% capture note %} +Forces creature(s) to use a melee weapon if possible. +{% endcapture %} + +{% include note.html %} + {% capture note %} This effect only affects party members. {% endcapture %} @@ -29,3 +38,9 @@ {% endcapture %} {% include note.html %} + +{% capture note %} +Used with timing modes 1/4/7 results in setting STATE_BERSERK when it triggers (and using its default behavior), rather than attaching a removable effect with selected behavior. +{% endcapture %} + +{% include important.html %} diff --git a/_opcodes/op004.html b/_opcodes/op004.html index b86d8c05e..0920ba5f1 100644 --- a/_opcodes/op004.html +++ b/_opcodes/op004.html @@ -10,7 +10,7 @@ iwd2: 1 pst: 1 --- -Removes the state_beserk flag from the targeted creature(s). +Removes opcode #3 effects and STATE_BERSERK from the targeted creature(s). Does not remove opcode #245, opcode #246 and opcode #247 effects.
This effect ignores durations attributed to it. {% capture note %} @@ -24,3 +24,9 @@ {% endcapture %} {% include note.html %} + +{% capture note %} +At least in BG2 and EEs, this effect can remove opcode #177 effects targeting an EFF with opcode #3. +{% endcapture %} + +{% include note.html %} diff --git a/_opcodes/op005.html b/_opcodes/op005.html index 242a6846e..c85b9c5dd 100644 --- a/_opcodes/op005.html +++ b/_opcodes/op005.html @@ -12,15 +12,83 @@ --- Charms the targeted creature(s) according to value in the 'Charm Type' field, if the target is matched by the value in the 'General Type' field. Values for 'General Type' are from General.ids.
Known values for 'Charm Type' are: -
0 Charmed (Target neutral after effect ends) -
1 Charmed (Target hostile after effect ends) -
2 Dire charmed (Target neutral after effect ends) -
3 Dire charmed (Target hostile after effect ends) +
0 Neutral Charm + +
1 Hostile Charm + +
2 Neutral Dire Charm + +
3 Hostile Dire Charm +
4 Controlled by Cleric -
5 Target is hostile -
1000 Charmed (no text) (Target neutral after effect ends) -
1001 Charmed (no text) (Target hostile after effect ends) -
1002 Dire charmed (no text) (Target neutral after effect ends) -
1003 Dire charmed (no text) (Target hostile after effect ends) -
1004 Controlled by Cleric (no text) -
1005 Target is hostile (no text) + +
5 Thrull Charm + +
1000 Neutral Charm (no Feedback) -> Same as 0, but target does not display any string. +
1001 Hostile Charm (no Feedback) -> Same as 1, but target does not display any string. +
1002 Neutral Domination -> Same as 2, except: + +
1003 Hostile Domination -> Same as 3, except: + +
1004 Controlled by Cleric (no Feedback) -> Same as 4, but target does not display any string. +
1005 Thrull Charm (no Feedback) -> Same as 5, but target does not display any string. + +{% capture note %} +If this effect turns a party member hostile, it will disable all of their scripts. +{% endcapture %} + +{% include note.html %} + +{% capture note %} +(# Dice Thrown)[LONG]{EFF:V2.0}: Override Maintained EA Value +{% endcapture %} + +{% include note.html %} diff --git a/_opcodes/op011.html b/_opcodes/op011.html index c3f927687..8bb050451 100644 --- a/_opcodes/op011.html +++ b/_opcodes/op011.html @@ -10,10 +10,16 @@ iwd2: 1 pst: 1 --- -Removes the poison effect from the targeted creature(s). +Removes opcode #25 effects and STATE_POISON from the targeted creature(s). {% capture note %} This effect ignores durations attributed to it. {% endcapture %} {% include info.html %} + +{% capture note %} +At least in EEs, this effect can remove opcode #177 effects targeting an EFF with opcode #25. +{% endcapture %} + +{% include info.html %} diff --git a/_opcodes/op012-bgee.html b/_opcodes/op012-bgee.html index ea0cb4603..64d0bbc07 100644 --- a/_opcodes/op012-bgee.html +++ b/_opcodes/op012-bgee.html @@ -3,6 +3,8 @@ name: "HP: Damage" param1: "Damage Amount" param2: "Type" +savingthrow: "Save Type" +special: "Flags" bg1: 0 bg2: 0 bgee: 1 @@ -73,10 +75,17 @@
1073741826 Disease Set to Percentage
1073741827 Disease Reduce by Percentage

The Dice values can be used to inflict varying damage amounts - e.g. 2d6 would do 2-12 damage (Damage type is still specified by the 'Type' value). +

Useful bit values for 'Save Type' are: +
Bit 10 - Ignore primary target - Line AoE projectile doesn't affect end target +
Bit 11 - Ignore secondary target - Line AoE projectile doesn't affect bystanders +
Bit 24 - Bypass 'mirror image' +
Bit 25 - Ignore difficulty - It refers to the damage multiplier to party members based on difficulty.

Known bit values for 'Flags' are:
Bit 0 - Drain HP to caster
Bit 1 - Transfer HP to target
Bit 2 - Fist damage only +
Bit 3 - Drain to max. HP of caster +
Bit 5 - Suppress combat log feedback string
Bit 8 - Save for half
Bit 9 - Made save
Bit 10 - Does not wake sleepers @@ -93,7 +102,21 @@ {% include note.html %} {% capture note %} -Using 'Magic Fire' or 'Magic Cold' as a damage type will result the game to crash if the damage kills the target. +Damage type "Poison" automatically uses save flag "Bypass Mirror Image". {% endcapture %} -{% include warning.html %} +{% include note.html %} + +{% capture note %} +If this effect reduces target to -20 (Allegiance: [PC]) or -9 (any other Allegiance value) hit points, it also applies opcode #13 of the specified type: + +{% endcapture %} + +{% include note.html %} diff --git a/_opcodes/op013.html b/_opcodes/op013.html index bd70f0773..060206269 100644 --- a/_opcodes/op013.html +++ b/_opcodes/op013.html @@ -16,14 +16,80 @@
1 Don't show death message
Known values for 'Death Type' are:
0 Acid death +
1 Burning death +
2 Crushed death +
4 Normal death +
8 Chunked death +
16 Stoned death +
32 Freezing death -
64 Exploding stoned death + +
64 Exploding stoned death/Level Drain death +
128 Exploding freezing death -
256 Electrified death + +
256 Electrified death +
512 Disintegration death +
1024 Destruction (in IWD2) + +
Other + +
Any -> Removes death states that they do not set (e.g, a normal Death will remove STATE_FROZEN_DEATH). diff --git a/_opcodes/op014-bgee.html b/_opcodes/op014-bgee.html index cb05839d4..5cd6d1089 100644 --- a/_opcodes/op014-bgee.html +++ b/_opcodes/op014-bgee.html @@ -10,4 +10,4 @@ iwd2: 0 pst: 0 --- -Removes the frozen_death state from the targeted creature(s). +Removes STATE_FROZEN_DEATH from the targeted creature(s). Restores creature(s) to 1 HP. Does not affect creatures without STATE_FROZEN_DEATH. diff --git a/_opcodes/op020.html b/_opcodes/op020.html index adc0fbe94..46deaeaba 100644 --- a/_opcodes/op020.html +++ b/_opcodes/op020.html @@ -14,9 +14,10 @@
Known values for 'Type' are :
0 Normal Invisibility -> affected creature makes the first attack with +4
1 Improved Invisibility -> affected creature stays invisible after attack +
2 Weak Invisibility -> It's the same type of invisibility as 'Improved Invisibility' after you take a hostile action and reveal yourself. {% capture note %} -'Improved Invisibility' does not provide saving throw bonuses +'Improved Invisibility' does not provide saving throw bonuses - This is not true for EEs. In particular, it provides a bonus of 4 to all saving throws (the same holds for 'Weak Invisibility'). {% endcapture %} {% include note.html %} @@ -28,7 +29,13 @@ {% include note.html %} {% capture note %} -Creatures attacking an improved invisible creature suffer a -4 penalty to hit, unless they are affected by #193 Invisible Detection by Script +'Weak Invisibility' is not by itself sufficient to trigger backstabs. +{% endcapture %} + +{% include note.html %} + +{% capture note %} +Creatures attacking an improved/weak invisible creature suffer a -4 penalty to hit, unless they are affected by opcode #193 Invisible Detection by Script. Moreover, you cannot target an improved/weak invisible creature with spells unless you're affected by opcode #193 or the spell can target invisible creatures. {% endcapture %} {% include info.html %} diff --git a/_opcodes/op023-bg2.html b/_opcodes/op023-bg2.html index e1241f01a..f7f0748e9 100644 --- a/_opcodes/op023-bg2.html +++ b/_opcodes/op023-bg2.html @@ -5,12 +5,12 @@ param2: "Type" bg1: 0 bg2: 1 -bgee: 1 +bgee: 0 iwd1: 0 iwd2: 0 pst: 0 --- -Sets the Morale stat of the targetted creature(s) to 10. +Sets the Morale stat of the targeted creature(s) to 10. {% capture note %} this is a gimped effect in bg2, unlike the rest of the games! diff --git a/_opcodes/op023.html b/_opcodes/op023.html index b9d565615..093e25222 100644 --- a/_opcodes/op023.html +++ b/_opcodes/op023.html @@ -3,9 +3,10 @@ name: "Stat: Morale Modifier" param1: "Statistic Modifier" param2: "Type" +special: "Mode" bg1: 1 bg2: 0 -bgee: 0 +bgee: 1 iwd1: 1 iwd2: 1 pst: 1 @@ -16,6 +17,15 @@
1 Flat Value Modifier -> Morale = 'Statistic Modifier' value
2 Percentage Modifier -> Morale = (Morale * 'Statistic Modifier' value) / 100 +
At least in EEs, known values for 'Mode' are: +
0 BG2 mode -> It's hardcoded to fill the following values: +
In addition, it checks if the creature is berserking, and if it is, it returns without doing anything. +
1 BG1 mode -> Default (functions as expected) + {% capture note %} Any Morale-based effect (i.e. Panic) may be added or removed by this effect. {% endcapture %} diff --git a/_opcodes/op024.html b/_opcodes/op024.html index 39d134c62..51b475ea8 100644 --- a/_opcodes/op024.html +++ b/_opcodes/op024.html @@ -2,7 +2,7 @@ n: 24 name: "State: Horror" param1: "Irrelevant" -param2: "Irrelevant" +param2: "Type" bg1: 1 bg2: 1 bgee: 1 @@ -10,4 +10,7 @@ iwd2: 0 pst: 1 --- -Applies the horror effect to the targeted creature(s). +Applies the horror effect to the targeted creature(s) in the style specified by the 'Type' field. +
Known values for 'Type' are: +
0 -> Default +
Non-zero -> Bypass opcode #101 (Immunity to effect) diff --git a/_opcodes/op066.html b/_opcodes/op066.html index 48d39fded..8f6c11d81 100644 --- a/_opcodes/op066.html +++ b/_opcodes/op066.html @@ -2,7 +2,7 @@ n: 66 name: "Graphics: Transparency Fade" param1: "Fade Amount" -param2: "Irrelevant" +param2: "Visual Effect" bg1: 1 bg2: 1 bgee: 1 @@ -10,9 +10,13 @@ iwd2: 0 pst: 0 --- -Fades the targeted creature(s) by the value in the amount specified by the 'Fade Amount' field. +Fades the targeted creature(s) by the value in the amount specified by the 'Fade Amount' field in the style specified by the 'Visual Effect' field.
Known values for 'Fade Amount' are:
1 Fully visible
..
255 Almost invisible +
Known values for 'Visual Effect' are: +
0 -> Draw instantly +
1 -> Fade in +
2 -> Fade out

This effect sets stat #60 (TRANSLUCENT) to param #1. diff --git a/_opcodes/op108.html b/_opcodes/op108.html index 5a983155a..d4059904b 100644 --- a/_opcodes/op108.html +++ b/_opcodes/op108.html @@ -11,8 +11,10 @@ pst: 1 --- Sets the individual reputation of the targeted creature(s) to the value specified by the 'Statistic Modifier' field in the style specified by the 'Type' field. -
This does not affect the main reputation of the Party. Though it can affect ranger/paladinhood of any target. +
This does not affect the main reputation of the Party, unless 'Type' 3 or 4 are used. Though it can affect ranger/paladinhood of any target.
Known values for 'Type' are:
0 Cumulative Modifier -> Reputation = Reputation + 'Statistic Modifier' value
1 Flat Value Modifier -> Reputation = 'Statistic Modifier' value
2 Percentage Modifier -> Reputation = (Reputation * 'Statistic Modifier' value) / 100 +
3 Increment Party Reputation -> by 10x param#1, cannot lower reputation below 100, will raise reputation to 100 if already less (only in EEs) +
4 Reset Party Reputation to 100 (only in EEs) diff --git a/_opcodes/op109-bgee.html b/_opcodes/op109-bgee.html index 9b7e8c30b..6ff247c1f 100644 --- a/_opcodes/op109-bgee.html +++ b/_opcodes/op109-bgee.html @@ -3,6 +3,7 @@ name: "State: Hold" param1: "IDS Entry" param2: "IDS File" +special: "Mode" bg1: 0 bg2: 0 bgee: 1 @@ -22,3 +23,10 @@
9 Kit.ids
The affected creature becomes immobile and its AI scripts stop running.
This effect sets stat #58 (HELD) to 1. It also sets the STATE_HELPLESS flag. +

Known values for 'Mode' are: +
0 -> Default +
Non-zero -> False Petrify + diff --git a/_opcodes/op127.html b/_opcodes/op127.html index 9de926b52..3af8870bf 100644 --- a/_opcodes/op127.html +++ b/_opcodes/op127.html @@ -3,6 +3,7 @@ name: "Summon: Monster Summoning" param1: "Number" param2: "Type" +special: "Mode" bg1: 1 bg2: 1 bgee: 1 @@ -11,7 +12,17 @@ pst: 0 --- Summons a number of monsters. -
Each creature files has a Creature Power Level number (at 0x18). The amount of monsters summoned by this effect is equal to the 'Number' field / Creature Power Level. +
Each creature files has a Creature Power Level number (at 0x18). The amount of monsters summoned by this effect depends on this value, the special parameter and if it's used in SPL/ITM or from an external EFF. +
When used in SPL/ITM, known value for 'Mode' are: +
0 Summon until Creature Power Level equals/exceeds 'Number' +
1 Summon amount equal to 'Number' +
2 Summon until Creature Power Level equals/exceeds "Caster Level" + +
When used in EFF, known value for 'Mode' are: +
0 Summon until Creature Power Level equals/exceeds 'Number' +
1 Summon amount equal to ('Number' + Dice rolls) +
2 Summon until Creature Power Level equals/exceeds "Caster Level" field of EFF +
The 'Type' field set which 2da file to pick the creatures to summon from. The 2da files are monsumX and anisumX, where X = Type + 1. 0-4 are allied , 5-9 are hostile. The specific 2da files used are:
0 MONSUM01 Monster Summon 1
1 MONSUM02 Monster Summon 2 diff --git a/_opcodes/op135.html b/_opcodes/op135.html index 68c2b0747..da748dc96 100644 --- a/_opcodes/op135.html +++ b/_opcodes/op135.html @@ -17,3 +17,22 @@

This effect sets stat #59 (POLYMORPHED) to 1 but only if param #2 is 0.
If the resource key is empty, other polymorph effects are removed, allowing for removal of permanent effects. + +{% capture note %} +At least in EEs, when param #2 is 0, this opcode sets Strength, Dexterity, Resistances (excluding Poison and Magic Damage), Base AC, Specific AC (Crush/Slash/Pierce/Missile), and Base APR. +{% endcapture %} + +{% include note.html %} + +{% capture note %} +When the resource key is empty, and it subsequently clears other Polymorph Effects, param#2 is used just like param#1 of opcode #337. +As a result, it will clear all Polymorph effects if param#2 = "-1", else it will only clear Polymorph effects that have a param#2 that matches. +{% endcapture %} + +{% include note.html %} + +{% capture note %} +The creature you're polymorphing into cannot have STATE_SLEEPING, STATE_FROZEN_DEATH, STATE_STONE_DEATH, STATE_FLAME_DEATH, or STATE_DEAD set in its CRE file, or the game will crash. +{% endcapture %} + +{% include warning.html %} diff --git a/_opcodes/op144.html b/_opcodes/op144.html index c0eb3c7f2..ac2361c89 100644 --- a/_opcodes/op144.html +++ b/_opcodes/op144.html @@ -22,7 +22,9 @@
7 Talk Button
8 Use Item Button
9 First Quick Item Button -
10 No effect +
10 Bard Song Button (only in EEs)
11 Second Quick Item Button
12 Third Quick Item Button
13 Innate Ability Button +
14 Find Traps Button +
15 Inventory Button (only in EEs) diff --git a/_opcodes/op171.html b/_opcodes/op171.html index 933f59d78..b309d6e34 100644 --- a/_opcodes/op171.html +++ b/_opcodes/op171.html @@ -11,3 +11,15 @@ pst: 0 --- Gives the spell specified by the resource key to the targeted creature(s). + +{% capture note %} +This opcode has only 3 functional timing modes: Instant/Permanent (1), Delayed/Permanent (4 - seconds), Delayed (7 - ticks). All others effectively convert to one of these. +{% endcapture %} + +{% include note.html %} + +{% capture note %} +Any delayed opcode 171 effect will be removed by death. +{% endcapture %} + +{% include important.html %} diff --git a/_opcodes/op172.html b/_opcodes/op172.html index c17fb8a27..93776743e 100644 --- a/_opcodes/op172.html +++ b/_opcodes/op172.html @@ -15,6 +15,13 @@ If the key is not 8 characters long, all memorized copies will be removed.
If the key is 8 characters, memorized copies will remain intact.

+ +{% capture note %} +This opcode has only 3 functional timing modes: Instant/Permanent (1), Delayed/Permanent (4 - seconds), Delayed (7 - ticks). All others effectively convert to one of these. +{% endcapture %} + +{% include note.html %} + {% capture note %} Both parameters should be 0 (zero). Two 8 characters long keys that are identical up to the 7th character are indistinguishable! diff --git a/_opcodes/op233.html b/_opcodes/op233.html index b97f794ed..573f5db33 100644 --- a/_opcodes/op233.html +++ b/_opcodes/op233.html @@ -13,7 +13,7 @@ Sets the weapon proficiency points for the weapon type specified in the 'Type' field, to the value specified by the 'Amount' field, for the targeted creature(s). {% capture note %} -The Proficiency Modifier effect cannot increment or decrement proficiency points, it can only SET them. +The Proficiency Modifier effect cannot increment or decrement proficiency points, it can only SET them - This is not true for EEs. Indeed, param#2 ('Type') is split into two subfields. Via setting the second subfield to 1 (INCREMENT), it's possible to increment/decrement the proficiency points of the targeted creature(s) by the value specified by the 'Amount' parameter. {% endcapture %} {% include note.html %} diff --git a/_opcodes/op247.html b/_opcodes/op247.html index 622f4d017..ee6afe955 100644 --- a/_opcodes/op247.html +++ b/_opcodes/op247.html @@ -20,3 +20,9 @@ {% endcapture %} {% include important.html %} + +{% capture note %} +At least in EEs, the only difference between opcodes #3 and #247, is that #247 will not force the creature(s) to use melee weapons, and is not removed by Opcode #4 (Cure Berserk). +{% endcapture %} + +{% include note.html %} diff --git a/_opcodes/op248.html b/_opcodes/op248.html index a8be2ecce..70663f1d1 100644 --- a/_opcodes/op248.html +++ b/_opcodes/op248.html @@ -2,7 +2,7 @@ n: 248 name: "Item: Set Melee Effect" param1: "Irrelevant" -param2: "Irrelevant" +param2: "Fist only" bg1: 0 bg2: 1 bgee: 1 @@ -13,3 +13,9 @@ Sets the effect specified by the resource key as a melee effect.
The specified effect will be applied to the target of each successful melee attack.
The resource key references a .eff not a .spl. + +{% capture note %} +At least in EEs, setting parameter2 to 4 (i.e., BIT2) results in restricting this effect to fists only. If you leave it at 0, then all melee weapons are eligible (including fists). +{% endcapture %} + +{% include note.html %} diff --git a/_opcodes/op272.html b/_opcodes/op272.html index ec4c72066..110b755ff 100644 --- a/_opcodes/op272.html +++ b/_opcodes/op272.html @@ -26,7 +26,7 @@ {% include info.html %} {% capture note %} -If two or more effects of this type affect a creature, only the shortest duration effect will occur. +If two or more effects of this type affect a creature, only the shortest duration effect will occur - This is fixed for the EEs. {% endcapture %} {% include note.html %} diff --git a/_opcodes/op279-bgee.html b/_opcodes/op279-bgee.html index e3a111146..a32aea337 100644 --- a/_opcodes/op279-bgee.html +++ b/_opcodes/op279-bgee.html @@ -22,6 +22,9 @@
7 Talk Button
8 Use Item Button
9 First Quick Item Button +
10 Bard Song Button (only in EEs)
11 Second Quick Item Button
12 Third Quick Item Button
13 Innate Ability Button +
14 Find Traps Button +
15 Inventory Button (only in EEs) diff --git a/_opcodes/op319-bgee.html b/_opcodes/op319-bgee.html index 333821248..32a70cb61 100644 --- a/_opcodes/op319-bgee.html +++ b/_opcodes/op319-bgee.html @@ -1,6 +1,7 @@ --- n: 319 name: "Usability: Item Usability" +power: "Usability behavior" param1: "IDS Entry" param2: "IDS File" special: "Description note" @@ -11,7 +12,7 @@ iwd2: 0 pst: 0 --- -This effect restricts the item to creature(s) matching the object identifiers. The string to display when an invalid creature attempts to use the item is held in 0x2c. +When 'Power' is set to 1, this effect restricts the item to creature(s) matching the object identifiers. When 'Power' is set to 0, creature(s) matching the object identifiers cannot use the item. The string to display when an invalid creature attempts to use the item is held in 0x2c.
Known values for 'IDS File' are:
2 EA.ids
3 General.ids @@ -23,6 +24,6 @@
9 Kit.ids
10 Actor's name
11 Actor's scripting name (8 maximum in resource field) -
If 'IDS File' is set to 10, the item is restricted to characters with the name specified by the strref held in parameter1. -
If 'IDS File' is set to 11, the item is restricted to characters with the death variable specified by the resource field. +
If 'IDS File' is set to 10 and the strref held in parameter1 is set to "-1" (None), then you're targeting player-created characters (e.g., ). +
If 'IDS File' is set to 11 and no death variable is specified in the resource field, then you're targeting player-created characters (e.g., ).

The message defined in 'Description note' will be displayed whenever this effect is triggered. diff --git a/_opcodes/op321-bgee.html b/_opcodes/op321-bgee.html index 18a7529ae..3cd3fdb8f 100644 --- a/_opcodes/op321-bgee.html +++ b/_opcodes/op321-bgee.html @@ -15,4 +15,4 @@
0 Default
1 Equipped effects list only
2 Timed effects list only -
If used with a timing mode other than Duration (0) the effect behaves as per effect 206. +

It always needs to be the first effect for stacking prevention. Timing Mode should be either Instant/Limited(0) with 0 duration, or Instant/Permanent(1). diff --git a/_opcodes/op324-bgee.html b/_opcodes/op324-bgee.html index 766b582c2..d5de5dcaa 100644 --- a/_opcodes/op324-bgee.html +++ b/_opcodes/op324-bgee.html @@ -1,6 +1,6 @@ --- n: 324 -name: "Protection: Immunity Spell and Message" +name: "Protection: Immunity from Spell and Message" param1: "Value" param2: "Stat Type" bg1: 0 diff --git a/_opcodes/op326-bgee.html b/_opcodes/op326-bgee.html index f78794731..86582763c 100644 --- a/_opcodes/op326-bgee.html +++ b/_opcodes/op326-bgee.html @@ -1,6 +1,6 @@ --- n: 326 -name: "Add Effects List" +name: "Apply Effects List" param1: "Value" param2: "Stat Type" bg1: 0 diff --git a/_opcodes/op331-bgee.html b/_opcodes/op331-bgee.html index 043aa5234..b23b2d3a7 100644 --- a/_opcodes/op331-bgee.html +++ b/_opcodes/op331-bgee.html @@ -11,13 +11,18 @@ iwd2: 0 pst: 0 --- -Summons a number of monsters, equal to the Dice rolls+'Count'. The 'Type' field set which 2da file to pick the creatures to summon from. The 2da files are listed in smtables.2da. -
If the resource field is filled, it will use a .2da to determine which monsters to summon. -
If used from an external effect (.eff), the vvc field controls the bam/vvc file played over the creatures when summoning. -
If used from an external effect (.eff), the second vvc field controls the bam file played over the target area when summoning. +Each creature files has a Creature Power Level number (at 0x18). This effect summons a number of monsters depending on this value, the special parameter and if it is used in SPL/ITM or from an external EFF. +
When used in SPL/ITM, known value for 'Mode' are: +
0 Summon amount equal to ('Count' + Dice rolls) +
1 Summon amount equal to ('Count' + Dice rolls) +
2 Summon until Creature Power Level equals/exceeds "Caster Level" -{% capture note %} -Setting 'Mode' to 2 will use the caster's level instead of Dice rolls. -{% endcapture %} +
When used in EFF, known value for 'Mode' are: +
0 Summon until Creature Power Level equals/exceeds 'Count' +
1 Summon amount equal to ('Count' + Dice rolls) +
2 Summon until Creature Power Level equals/exceeds "Caster Level" field of EFF -{% include note.html %} +
The 'Type' field set which 2da file to pick the creatures to summon from. The 2da files are listed in smtables.2da. +
If the resource field is filled, it will use a .2da to determine which monsters to summon. +
If used from an external effect (.eff), the vvc field controls the bam/vvc file played over the creatures when summoning. +
If used from an external effect (.eff), the second vvc field controls the bam file played over the target area when summoning. \ No newline at end of file diff --git a/appendices/timers.htm b/appendices/timers.htm index 403bdd2aa..6a80d8e3c 100644 --- a/appendices/timers.htm +++ b/appendices/timers.htm @@ -10,7 +10,7 @@
  • In-game clock that tracks in-game time - (i.e. time displayed in lower left corner of the game screen) (hereafter referred to as CINGAME)

  • - Time is tracked in ticks; by default a tick is defined as 1/15th of a second. There are 100 frame in a round. A round has 6 AI updates.
    + Time is tracked in ticks; by default a tick is defined as 1/15th of a second. There are 100 frames in a round. A round has 6 AI updates.

    When the game starts, both clocks start from 0. When resting, CINGAME is incremented by the time spent resting (usually 8 hours). CREAL is incremented by a the few seconds while the rest movie is played. This puts CINGAME at a higher value than CREAL.

    diff --git a/file_formats/ie_formats/itm_v1.htm b/file_formats/ie_formats/itm_v1.htm index dbc38a152..7d24804f3 100644 --- a/file_formats/ie_formats/itm_v1.htm +++ b/file_formats/ie_formats/itm_v1.htm @@ -676,22 +676,22 @@ 0 - Unsellable (critical item)* + Unsellable (critical item)1 Silver Unused Not dispellable in magical weapon slot (BGEE, TobEx) 1 - Two-handed + Two-handed2 Cold-Iron Unused - Toggle critical hit aversion (BGEE, TobEx) + Toggle critical hit aversion5 (BGEE, TobEx) 2 Movable - Unsellable (stolen) / two handed animation

    + Unsellable (stolen) / forces dual-wield animation

    Set offhand animations for 0x5###-0x6### animId series (excluding 0x64##) when weapon placed in offhand. Unused Unused @@ -713,7 +713,7 @@ 5 Cannot scribe to spellbook (scrolls) - Not usable in off-hand (BGEE) + Not usable in off-hand4 (BGEE) Unused Unused @@ -726,7 +726,7 @@ 7 - Bow + Left-handed3 Adamantine (BGEE) Unused Unused @@ -734,7 +734,15 @@
    - * In BG1, this flag does not affect whether the item can be sold.
    + 1 In BG1, this flag does not affect whether the item can be sold.
    + 2 Forces Two-Handed Weapon style, disables off-hand attacks and equipped effects.
    + 3 Disables off-hand attacks, equipped effects and Two-Weapon style (inventory still displays Two-Weapon style modifiers, but they are not included in the calculations).
    + 4 It does not disable equipped effects of the off-hand (weapon or shield). In particular: +
    + 5Keep in mind that if you set this bit to 1 for an ITM whose Item type is 0x0007 (Headgear), then you'll toggle off the Critical hit aversion.
    @@ -1740,12 +1748,12 @@ 2 - Unknown + Damage strength bonus (BGEE) Hostile 3 - Unknown + THAC0 strength bonus (BGEE) Recharges diff --git a/file_formats/ie_formats/spl_v1.htm b/file_formats/ie_formats/spl_v1.htm index b4a3592cf..66cffb378 100644 --- a/file_formats/ie_formats/spl_v1.htm +++ b/file_formats/ie_formats/spl_v1.htm @@ -587,14 +587,14 @@ Unknown Unknown Not in combat - Unknown + Can target invisible (BGEE, TobEx) 1 Unknown - Breaks Sanctuary (BGEE) - Unknown + Breaks Sanctuary (BGEE) Unknown + Castable when silenced (BGEE, TobEx) 2 diff --git a/files/2da/2da_bgee/racefeat.htm b/files/2da/2da_bgee/racefeat.htm index 92ae8c732..e36a346be 100644 --- a/files/2da/2da_bgee/racefeat.htm +++ b/files/2da/2da_bgee/racefeat.htm @@ -3,7 +3,7 @@ ---
    racefeat.2da

    -No description available yet.
    +This file lists which races (from RACE.ids) have Infravision as an innate passive ability. Note that it does not set STATE_INFRAVISION.

    In BG2EE we have:
    diff --git a/files/2da/2da_bgee/statval.htm b/files/2da/2da_bgee/statval.htm index c1845e42f..292309bc6 100644 --- a/files/2da/2da_bgee/statval.htm +++ b/files/2da/2da_bgee/statval.htm @@ -3,7 +3,9 @@ ---
    statval.2da

    -No description available yet.
    +It has to do with how the engine recommends you equip certain items when you are moving them around the inventory. The VALUE column is multiplied with the stat's real value, and the resulting number is added to a total "rating" count. The higher the rating, the better the item in the eyes of the engine.
    +Any stat not listed in this file will be treated as a "0" towards the total rating. ARMORCLASS has a VALUE of -1 because lower is better, and so it needs to be flipped.
    +It appears this file can be appended with any stat in STATS.IDS along with a multiplier to make the engine consider that stat when recommending equipment.

    In BG2EE we have:
    diff --git a/files/ids/bgee/ea.htm b/files/ids/bgee/ea.htm index 3c2252211..9ad5c4fb8 100644 --- a/files/ids/bgee/ea.htm +++ b/files/ids/bgee/ea.htm @@ -37,7 +37,12 @@
    -Creatures under control of the player by the charm spell. +Uncontrolled ally (green selection circle) of the player. +
    +
    + +
    +Creatures fully under control of the player.

    @@ -83,10 +88,13 @@ Hostile creatures, but uses blue (neutral) selection circles.
    + +
    + This is just a separate EA from ENEMY for detection purposes. They're still valid objects for [EVILCUTOFF] and NearestEnemyOf(), but not by [ENEMY]. It's not specific to PC's. +
    +
    Creatures that are hostile to the party and allied creatures.

    -254 CHARMED_PC
    - diff --git a/files/ids/bgee/stats.htm b/files/ids/bgee/stats.htm index 8a51c3ec6..f3b2430ee 100644 --- a/files/ids/bgee/stats.htm +++ b/files/ids/bgee/stats.htm @@ -11,6 +11,11 @@ CheckStatLT(O:Object*,I:Value*,I:StatNum*Stats)

    + +
    +The creature's Current Hit Points. Note that it can only be checked in SPLPROT.2da as 'STAT' 0. As a result, you can use it in opcodes #318/324/326 but not in scripts/dialogs. +
    +
    The creature's Maximum Hit Points. diff --git a/scripting/actions/bgeeactions.htm b/scripting/actions/bgeeactions.htm index 9b36d1ccf..5c536f2cc 100644 --- a/scripting/actions/bgeeactions.htm +++ b/scripting/actions/bgeeactions.htm @@ -1710,6 +1710,7 @@
    This action instructs the active creature to attack the target for the specified time (ReevaluationPeriod) which is measured in AI updates (which default to 15 per second).The script will then run again, checking for other true conditions.
    + Just to give an idea, AttackOneRound() would be equivalent to AttackReevaluate() with a 100 tick reevaluation period.

       IF
    @@ -2746,12 +2747,32 @@
       
       
    This action causes the active creature to become the players ally. The active creature does not act as a normal familiar (i.e. no HP bonus or Constitution loss on death).
    + {% capture note %} + Unfortunately, this action is currently bugged (as of v2.5) - It temporarily sets all non-EA values to 0 (GENERAL, RACE, CLASS, ALIGNMENT, SPECIFICS). Anything that forces the targeted character's action bar to update itself will revert the creature to its normal values (and action bar). For instance: +
      +
    • Casting a spell from a quick spell slot (needs to update the quantity)
    • +
    • Changing the spell in a quick spell slot
    • +
    • Using a quick item with quantity/charges
    • +
    + {% endcapture %} + + {% include warning.html %}
    This action removes the ally flag set by AddFamiliar.
    + {% capture note %} + Unfortunately, this action is currently bugged (as of v2.5) - It temporarily sets all non-EA values to 0 (GENERAL, RACE, CLASS, ALIGNMENT, SPECIFICS). Anything that forces the targeted character's action bar to update itself will revert the creature to its normal values (and action bar). For instance: +
      +
    • Casting a spell from a quick spell slot (needs to update the quantity)
    • +
    • Changing the spell in a quick spell slot
    • +
    • Using a quick item with quantity/charges
    • +
    + {% endcapture %} + + {% include warning.html %}
    @@ -3912,7 +3933,16 @@
    - Unknown
    + This action puts the item specified by the Item parameter in the slot specified by the Slot parameter of the creature specified by the Object parameter in the style specified by the Equip/UnEquip parameter.
    +
    + Code snippet: +
    +  IF
    +    True()
    +  THEN
    +    RESPONSE #100
    +      XEquipItem("HAMM01",Protagonist,SLOT_WEAPON1,EQUIP)  // War Hammer
    +  END

    diff --git a/scripting/triggers/bgeetriggers.htm b/scripting/triggers/bgeetriggers.htm index 84468acda..f9bc1d215 100644 --- a/scripting/triggers/bgeetriggers.htm +++ b/scripting/triggers/bgeetriggers.htm @@ -438,7 +438,7 @@
    0x0091 SpellCast(O:Object*,I:Spell*Spell)
    0x0091 SpellCastRES(S:Spell*,O:Object*)
    - Returns true only if the specified object cast the spell in the 2nd paramater in the last script round.
    + Returns true only if the specified object cast the spell in the 2nd paramater in the last script round. If the Spell parameter is 0, then this will return true for ANY spell cast.

    0x4092 InLine(S:Target*,O:Object*)
    InLine(S:Target*,O:Object*) seems to have no effect.
    @@ -488,7 +488,7 @@
    0x00A1 SpellCastOnMe(O:Caster*,I:Spell*Spell)
    0x00A1 SpellCastOnMeRES(S:Spell*,O:Caster*)
    - Returns true only if the specified object cast the specified spell on the active CRE in the last scriptround.
    + Returns true only if the specified object cast the specified spell on the active CRE in the last scriptround. If the Spell parameter is 0 (or "" for the RES version), then this trigger will return true for ANY spell cast.

    0x40A2 CalanderDay(I:Day*)
    NT Returns true only if the current day is the day specified.