This works for Battle Texts, but I don't know if it works inside scripts like that. The way you reference Character names (Barret, Cloud) inside the AI text is different.
Ah yes. Cloud is {EA0000h} in the AI text, and Barret is {EA0001h}, etc... Actually, it looks a lot like
the FF7-text format, but all my different tests didn't net me any results regarding monster names. If this script becomes manageable in the future, I guess a simple "OVERKILL" message will do...
Multiply by 3, divide by 2. Boom, 1.5
lol, basic maths. I should have realized one can do more than one operation ^^;
I believe there's a Var:4XXX battle address for this. I don't recall what it is though as my notes for that section are incomplete I know that there are a lot of values in there that aren't used in AI, but the battle engine itself might handle.
Ah, this gives me hope - though I don't hold my breath.
Hmm. I don't know if you can find that info out. You can find out the amount of HP lost since last turn, but that's not the same thing. I'll have to investigate...
If those investigations will require you to in-game test each one of the 4xxx battles addresses not referenced into wallmarket.dat, I wish you good luck. Looking at them, there are 4041-4047, 4049, 4051-4057, 4059, 4061-4067, 4069, 4071-4077, 4079, 4081-4087, 4089 (I start to see a pattern
), 4091-4097, ... (not gonna list them all, actually O_O). We're talking about hundreds - maybe thousands of battle addresses ! I may be crazy like that, but even I couldn't test them all - and I suggest you don't either, if you value your sanity. Still, perhaps many of those can already be ruled out ?
And about Oil : wouldn't it be possible to increase the level and/or the magic stat of the caster, instead ?... ...After all, levels can go up to 255 - might as well put this to good use.
And it's too bad about elemental weapons
I asked in another thread if the AI could check for the presence of a piece of equipment, but I guess this means it can't.
The only other alternative is to find a way of setting a weakFire flag via AI. I can't really help at the moment because my machine is out of commission, but to find the weakFire flag, you would need to
- take Akari's memory map of the NTSC PSX build's battle engine
- run an emulator and compare memory maps for monsters with weakFire and without
- use a process of elimination to see where the weakFire might be stored
- look at the addresses in the memory map the AI can, uh, address, and see if some of the unknown addresses tally with the location of your weakFire variable
- set weakFire on when the target was Blind
Yeah, but weakFire is just a basic x2 damage. So, oiling an already fire-weak monster wouldn't reap any more benefits.
EDIT:About Overkill, how about this :
In General Counter :
If HP < MaxHP
If target:self is NOT dead
Set {VAR:E0} to 1
In Death Counter :
If {VAR:E0} is 0
If attack ID is NOT 18 (=Death)
If attack ID is NOT 3D (=Odin)
Display message: "OVERKILLED!!"
Set Exp to 2x
Set Gil to 2x
What do you think ? Alternatively, I thought about using the in-game timer, and if you finished a battle quickly enough, you'd get added bonuses. FFVI can check a timer in its AI (some enemies can call backup, after a while), but I'm not sure FFVII can. And, third idea : couldn't we simply make use of the "Greatest elemental damage" battle address ? Since almost all attacks are elemental thanks to the physical elements, if one put, in the Death Counter script :
- Check for self + max HP
- Put this value in memory
- Check if the greatest elemental damage taken is equal or greater than the value we just stored in memory
- If not, jump to the end of the script
- If true, display message: "OVERKILL!"
- Check for AP
- Check for XP
- Check for Gil
- multiply those by 3
- divide them by 2
...
Wouldn't it work ?