DT6

From OHRRPGCE-Wiki
Jump to: navigation, search

This lump is one of two containing attack data. Each attack is treated as a single block of data. The first 40 INTs of each record are stored in .DT6, the remainder are stored in records ATTACK.BIN, which is resizeable using BINSIZE.BIN

In the loadattackdata sub in loading.bas, the attack data is combined into a single INT array. The complete specification combining data from both lumps follows. Offsets are in INTs from the start of the combined attack data.

Grey fields are obsolete or unused.
Pink fields are data that is only used in the latest development WIP version

[edit] Complete Attack Data Formal Specs

About Formal Specs

Offset Data Meaning
0 INT (1) Animation picture
1 INT (1) Animation palette, or -1 for default
2 INT (1) Animation pattern:

0 = Cycle forward
1 = Cycle backward
2 = Oscillate
3 = Random

3 INT (1) Target Class:

0 = Enemy
1 = Ally excluding dead
2 = Self
3 = All
4 = Ally including dead
5 = Ally excluding self
6 = Revenge (last hit)
7 = Revenge (whole battle)
8 = Previous target
9 = Recorded target
10 = Dead allies (heroes only)
11 = Thankvenge (last to cure attacker)
12 = Thankvenge (whole battle)

4 INT (1) Target Setting:

0 = Focused
1 = Spread
2 = Optional spread
3 = Random focus
4 = First target

5 INT (1) Damage Equation:

0 = Normal: Atk - Def*.5
1 = Blunt: Atk*.8 - Def*.1
2 = Sharp: Atk*1.3 - Def
3 = Pure Damage
4 = No Damage
5 = Set target stat to (100+extra damage)% of Max
6 = Set target stat to (100+extra damage)% of Current

6 INT (1) Aim Math:

0 = Normal: Aim*4 vs Dog
1 = Poor: Aim*2 vs Dog
2 = Bad: Aim vs Dog
3 = Never misses
4 = Magic: Mag vs Wil*1.25

7 INT (1) Base Attack Stat:

0 = Atk
1 = Mag
2 = HP
3 = Lost HP
4 = Random (0 to 999)
5 = 100
6 = HP
7 = MP
8 = Atk
9 = Aim
10 = Def
11 = Dog
12 = Mag
13 = Wil
14 = Spd
15 = Ctr
16 = Focus
17 = extra Hits
18 = Previous attack
19 = Last damage to attacker
20 = Last damage to target
21 = Last cure to attacker
22 = Last cure to target

8 INT (1) MP Cost
9 INT (1) HP Cost
10 INT (1) Money Cost
11 INT (1) Extra Damage %
12 INT (1) Chain-to attack number + 1, 0 for none
13 INT (1) Chain Rate % (0-100)
14 INT (1) Attacker Animation:

0 = Strike
1 = Cast
2 = Dash In
3 = SpinStrike
4 = Jump
5 = Land
6 = Null
7 = Standing Cast
8 = Teleport

15 INT (1) Attack Animation:

0 = Normal
1 = Projectile
2 = Reverse projectile
3 = Drop
4 = Ring
5 = Wave
6 = Scatter
7 = Sequential Projectile
8 = Meteor
9 = Driveby
10 = Null

16 INT (1) Attack Delay (ticks)
17 INT (1) Number of hits (range 1 to 20)
18 INT (1) Target Stat:

0 = HP
1 = MP
2 = Atk
3 = Aim
4 = Def
5 = Dog
6 = Mag
7 = Wil
8 = Spd
9 = Ctr
10 = Focus
11 = extra Hits
12 = Poison register
13 = Regen register
14 = Stun register
15 = Mute register

19 INT (1) Preferred target:
0 = default
1 = first
2 = closest
3 = farthest
4 = random
5 = weakest
6 = strongest
7 = weakest%
8 = strongest%
20 - 23:
Attack Bitsets 1 (64)
BIT (1) 0: Cure Instead of Harm
BIT (1) 1: Divide Spread Damage
BIT (1) 2: Absorb Damage
BIT (1) 3: Unreversable Picture
BIT (1) 4: Steal Item
BIT (8) 5 - 12: Elementary 1 - 8 Damage
BIT (8) 13 - 20: Bonus vs. Monster Type 1 - 8 (aka. Elemental 9 - 16 damage)
BIT (8) 21 - 28: Fail vs. Elementary 1 - 8 Resistance (Obsolete, see #Note 1)
BIT (8) 29 - 36: Fail vs. Monster Type 1 - 8 (Obsolete, see #Note 1)
BIT (8) 37: Cannot target enemy slot 0 - 7
BIT (4) 45: Cannot target hero slot 0 - 3
BIT (1) 49: Ignore attacker's extra hits
BIT (1) 50: Erase rewards (enemy target only)
BIT (1) 51: Show damage without inflicting
BIT (1) 52: Store Target
BIT (1) 53: Delete Stored Target
BIT (1) 54: Automaticaly choose target
BIT (1) 55: Show attack name
BIT (1) 56: Do not display Damage
BIT (1) 57: Reset target stat to max before hit
BIT (1) 58: Allow Cure to exceed maximum
BIT (1) 59: Useable Outside of Battle
BIT (1) 60: Damage MP (obsolete, but still supported)
BIT (1) 61: Do not randomize
BIT (1) 62: Damage can be Zero
BIT (1) 63: Cause heroes to run away
24 - 35 FVSTR (1i+1i+10i=12i) Attack Name, 10 characters max:
First INT contains length, the second is unused
36 INT (1) Caption Display Time:

-1 = Do not display
0 = Full duration of attack
>=1 = Number of ticks to display

37 - 56 FVSTR (1i+38b=40b) Attack Caption, 38 characters max (note that the length INT ant first 4 chars are stored in DT6 and the remainder of the caption is stored in ATTACK.BIN)
57 INT (1) Caption Delay (range 0 to 16383)
58 INT (1) Base Defense Stat:

0 = Default (Wil if base attack stat is Mag, Def otherwise)
1 = HP
2 = MP
3 = Atk
4 = Aim
5 = Def
6 = Dog
7 = Mag
8 = Wil
9 = Spd
10 = Ctr
11 = Focus
12 = extra Hits

59 INT (1) Tag to Set

0 - none
> 0 - set tag
< 0 - unset tag

60 INT (1) Tag Condition

0 - Never
1 - Always
2 - Hit
3 - Miss
4 - Kill

61 INT (1) Tag Check

0 - none
> 0 - tag must be on
< 0 - tag must be off

62 INT (1) Tag to Set #2

0 - none
> 0 - set tag
< 0 - unset tag

63 INT (1) Tag Condition #2

0 - Never
1 - Always
2 - Hit
3 - Miss
4 - Kill

64 INT (1) Tag Check #2

0 - none
> 0 - tag must be on
< 0 - tag must be off

65 - 72:
Bitsets 2 (128)
BIT (1) 0: Mutable
BIT (1) 1: Fail if target is Poisoned
BIT (1) 2: Fail if target is Regened
BIT (1) 3: Fail if target is Stunned
BIT (1) 4: Fail if target is Muted
BIT (1) 5: % based attacks damage instead of set
BIT (1) 6: Check costs when used as a weapon
BIT (1) 7: Do not chain if attack fails
BIT (1) 8: Reset Poisoned register
BIT (1) 9: Reset Regened register
BIT (1) 10: Reset Stun Register
BIT (1) 11: Reset Mute Register
BIT (1) 12: Cancel target's attack
BIT (1) 13: Can't be canceled by other attacks
BIT (1) 14: Do not trigger spawning on attack
BIT (1) 15: Do not trigger spawning on death
BIT (1) 16: Check costs when used as an item in battle
BIT (1) 17: Re-check costs after attack delay
BIT (1) 18: Does not cause target to flinch
BIT (1) 19: Don't allow damage to exceed target stat
BIT (1) 20: Delay doesn't block further actions
BIT (1) 21: Force victory (This is a WIP feature)
BIT (1) 22: Force battle exit (This is a WIP feature)
BIT (106) 23-127: Unused
73 - 92 VSTR (1i+38b = 40b) Spell description
93, 95, 97 INT (1) x 3 Item ID+1 to be consumed (or given) or 0 for none (x3)
94, 96, 98 INT (1) x 3 Number of items to be consumed (or given) (x3)
99 INT (1) Sound effect to be played + 1 (0 for none)
100 INT (1) Stat for preferred target weakest/strongest
0 = same as target stat
1 = HP
2 = MP
3 = Atk
4 = Aim
5 = Def
6 = Dog
7 = Mag
8 = Wil
9 = Spd
10 = Ctr
11 = Focus
12 = extra Hits
13 = Poison register
14 = Regen register
15 = Stun register
16 = Mute register
101 INT(1) Chain condition type

0: No special conditions
1: both val1 and val2 are tags to check
2: attacker stat val1 greater than val2
3: attacker stat val1 less than than val2
4: attacker stat val1 greater than val2%
5: attacker stat val1 less than than val2%

102 INT(1) Chain condition Primary value (meaning varies depending on Chain type)
103 INT(1) Chain condition secondary value (meaning varies depending on Chain type)
104 Chain bits

0: Attacker must know the chained attack also
1: Chained attack ignores delay
2: Chain delay doesn't block actions
3: Don't retarget if target is lost

105 INT (1) Else-Chain-to attack number + 1, 0 for none
106 INT(1) Else-Chain condition type (see chain condition type for valid values)
107 INT (1) Else-Chain Rate % (0-100)
108 INT (1) Else-Chain condition value (meaning varies depending on Else-Chain type)
109 INT(1) Else-Chain condition secondary value (meaning varies depending on Else-Chain type)
110 BIT(16) Else-chain bits (see chain bits)
111 INT (1) Instead-Chain-to attack number + 1, 0 for none
112 INT(1) Instead-Chain condition type (see chain condition type for valid values)
113 INT (1) Instead-Chain Rate % (0-100)
114 INT (1) Instead-Chain condition value (meaning varies depending on Instead-Chain type)
115 INT(1) Instead-Chain condition secondary value (meaning varies depending on Instead-Chain type)
116 BIT(16) Instead-chain bits (see chain bits)
117 INT (1) Sound effect when learned from item or levelup + 1 (0 for none)
118 INT (1) Transmogrify enemy. new Enemy ID + 1 or 0 for no change
119 INT (1) What to do with HP when transmogrifying

0=keep current
1=restore to new max
2=preserve % of max
3=keep current, cap to new max

120 INT (1) What to do with other stats when transmogrifying

0=keep current
1=restore to new max
2=preserve % of max
3=keep current, cap to new max

121-312 FLOAT Threshold (64)
(6 bytes each)
Conditions for attack failure if the target takes beyond some threshold of damage from some element. #Note 1

Note: if the 'Simulate old fail vs. element resist bit' general bitset is ON, then consider the absolute value of the amount of damage taken by a target from the element, simulating the way in which the old fail bits ignored whether the Absorb bit was on.
Each threshold had format:

Type INT 0: No condition

3: Target takes < Value damage from this element
5: Target takes > Value damage from this element

Value FLOAT Percentage threshold (1.0 is 100%)

[edit] Note 1

If fixAttackElementFails is OFF, then elemental fail thresholds should be read from the "fail vs. ..." bits:

  • All conditions default to "None".
  • If 'fail vs. elemental n resistance' is set, the element n condition is "If < 100% damage"
  • If 'fail vs. enemytype n ' is set, the element n+8 condition is "If > 100% damage"

If fixAttackElementFails is ON, the old bits contain garbage.

Personal tools