Difference between revisions of "Spell Customization"
(Created page with "'''By Praetarius5018''' == Required Tools == * a hex editor, e.g. HxD * noisecross's text editor == Beginner: Multi-target Flare == Goal:<br>allow Fl...") |
|||
Line 45: | Line 45: | ||
Goal:<br>replace !Time/Drag (or Void) with a water damage spell | Goal:<br>replace !Time/Drag (or Void) with a water damage spell | ||
− | TODO | + | To my knowledge there's little to no use of the !Time spell Drag (or Void) so let's replace it.<br> |
+ | It has SpellId $36 so the data is located at $110D30. | ||
+ | |||
+ | The effect of the 8 bytes are as follows: | ||
+ | Targeting | ||
+ | ??? | ||
+ | Misc. | ||
+ | Reflectable ($80 not set) + MP cost | ||
+ | Attack formula | ||
+ | Parameter 1 | ||
+ | Parameter 2 | ||
+ | Parameter 3 | ||
+ | |||
+ | Targetting was explained for Flare, so I'll just say we use B8 as well. | ||
+ | |||
+ | I've honestly not seen an effect of the second parameter but most spells had 04, so we go with that. | ||
+ | |||
+ | Misc should be 0. The only non-0 values I've seen were for Meteo and Cave In the hit count. If we were to use a non-0 value our spell would behave like Meteo in that it doesn't hit the target(s) once each but that it selects out of the targets a random target up to 4 times and performs a single target attack against it; in that case it would also require us to either use either the Meteo or Cave In spell animation as only those are compatible with that effect.<br> | ||
+ | This byte also holds the learnable flag ($40) for blue magic. | ||
+ | |||
+ | For the next byte, if we want our spell to not be reflectable we would set the $80 bit and then add the MP cost to it. E.g. 20 MP not reflectable would be $94. For this example I went with 8 MP and reflectable, so $08. | ||
+ | |||
+ | Then we need to decide what the spell actually does and fill in the 3 parameter for it.<br>Notable examples:<br> | ||
+ | $06: Offensive magic | ||
+ | 1 00 | ||
+ | 2 Attack power | ||
+ | 3 [Element] | ||
+ | 08: Pierce defense | ||
+ | 1 00 | ||
+ | 2 Attack power | ||
+ | 3 [Element] | ||
+ | 0A: Physical magic | ||
+ | 1 Hit % | ||
+ | 2 Attack power | ||
+ | 3 [element] | ||
+ | 0C: Pierce defense + HP leak | ||
+ | 1 [Element] | ||
+ | 2 Attack power | ||
+ | 3 Duration/2 | ||
+ | 12: Status 0 infliction | ||
+ | 1 Hit % | ||
+ | 2 Duration | ||
+ | 3 [Status 0] added | ||
+ | We want to deal normal water damage so $06 is fine. The element is built like: | ||
+ | 01 fire | ||
+ | 02 ice | ||
+ | 04 lightning | ||
+ | 08 poison | ||
+ | 10 holy | ||
+ | 20 earth | ||
+ | 40 wind | ||
+ | 80 water | ||
+ | For power 50 should be fine, so the final result is something like | ||
+ | B8 04 00 08 06 00 32 80 | ||
+ | |||
+ | TODO animation | ||
+ | |||
+ | TODO spellname | ||
== Master: Clash == | == Master: Clash == | ||
Line 52: | Line 109: | ||
change the battle theme<br> | change the battle theme<br> | ||
custom damage formula<br> | custom damage formula<br> | ||
+ | |||
+ | '''Warning: this part requires ASM knowledge''' | ||
TODO | TODO |
Revision as of 11:19, 9 March 2019
By Praetarius5018
Required Tools
- a hex editor, e.g. HxD
- noisecross's text editor
Beginner: Multi-target Flare
Goal:
allow Flare to hit all enemies with a working spell animation
First we need to modify the spell data itself. It is located at
$110B80 + 8 * SpellId
Flare has a SpellId of $33 so we find our data at $110D18.
You can find the SpellIds e.g. here under 1.8b
The data is:
38 04 00 27 08 00 FE 00
For now we only care about the first byte, it determines the targetting of the spell:
80 Multi-target optional 40 Hits all targets 20 Target selectable 10 Side selectable 08 Target enemy (by default) 04 Roulette 00 caster
Since we want regular flare to be multi-targetable like Fire1/2/3 we change the 38 to B8.
However the default animation of flare is not compatible with multitargetting; the damage will still be done to all targets but it will not look right - or in case of some spells even fry the graphic engine.
Animation headers are located at
$1838EC + 5 * SpellId
so for Flare it is $1839EB with
05 10 1D 88 1D
For simplicity's sake we just replace it with L3 Flare's data:
05 10 A8 00 2B
Advanced: Water spell
Goal:
replace !Time/Drag (or Void) with a water damage spell
To my knowledge there's little to no use of the !Time spell Drag (or Void) so let's replace it.
It has SpellId $36 so the data is located at $110D30.
The effect of the 8 bytes are as follows:
Targeting ??? Misc. Reflectable ($80 not set) + MP cost Attack formula Parameter 1 Parameter 2 Parameter 3
Targetting was explained for Flare, so I'll just say we use B8 as well.
I've honestly not seen an effect of the second parameter but most spells had 04, so we go with that.
Misc should be 0. The only non-0 values I've seen were for Meteo and Cave In the hit count. If we were to use a non-0 value our spell would behave like Meteo in that it doesn't hit the target(s) once each but that it selects out of the targets a random target up to 4 times and performs a single target attack against it; in that case it would also require us to either use either the Meteo or Cave In spell animation as only those are compatible with that effect.
This byte also holds the learnable flag ($40) for blue magic.
For the next byte, if we want our spell to not be reflectable we would set the $80 bit and then add the MP cost to it. E.g. 20 MP not reflectable would be $94. For this example I went with 8 MP and reflectable, so $08.
Then we need to decide what the spell actually does and fill in the 3 parameter for it.
Notable examples:
$06: Offensive magic
1 00 2 Attack power 3 [Element]
08: Pierce defense
1 00 2 Attack power 3 [Element]
0A: Physical magic
1 Hit % 2 Attack power 3 [element]
0C: Pierce defense + HP leak
1 [Element] 2 Attack power 3 Duration/2
12: Status 0 infliction
1 Hit % 2 Duration 3 [Status 0] added
We want to deal normal water damage so $06 is fine. The element is built like:
01 fire 02 ice 04 lightning 08 poison 10 holy 20 earth 40 wind 80 water
For power 50 should be fine, so the final result is something like
B8 04 00 08 06 00 32 80
TODO animation
TODO spellname
Master: Clash
Goal:
summon Gilgamesh
change the battle theme
custom damage formula
Warning: this part requires ASM knowledge
TODO