Enemy Attack Data [Split from Skillster's Hardcode Mode]

  • Thread starter Thread starter Genji
  • Start date Start date
Status
Not open for further replies.
G

Genji

Guest
I've made Guard Scorpion's Rifle Fire Elemental -)
Code: [Select]
Code:
000510 01 00
I've equiped Fire Armlet (Jenova helps here) and Rifle healed me.

P.S. I still haven't received file :\ Did you sent it ?

[EDIT] It seems 00x18h is elemental property
00x19h is type of attack : Shoot, Punch, Hit etc.

00x0Eh=23h changes attack type to HP or MP Based and 00x0Fh is damage.
For example if 0Fh=10h, then attack will deal 16/32 Current HP damage.
How about to make Sight Scope deal HP damage -) (j\k)

[EDIT2]
Jenova-Life have 4 moves.
How about to make Blue Flame HP Based and Non-Elemental, and Blue Light Non-Elemental and target all opponents. Jenova must be HARD.
Same for other bosses. Giving them one HP-Based attack will make battles interesting )) Excpecially Proud Clod (Boring battle ever)

00x18 ->
00 -Non Elemental
01 - Fire
02 - Ice
04 - Lightning
08 - Earth
10 - Poison (not sure)
40 - Water
 
How progress going ? I still want to test mod, but but I still haven't received file .... ))

Btw, How about to make Guard Scorpion's Rifle to deal dmg on multiple targets ? I guess I found offset to do this.
 
Hi
Sorry I have been away on a break for a week.
You have lost me with the offsets, where are you starting from?
I will send that scene file to you, hopefully you can explain the offsets better and which section of the scene file you are referring to.
The scene file is split up accordingly (see http://wiki.qhimm.com/ff7 and look at the battle scene info).
So is this in the attack info section, enemy ai or something else?
Is your offset for that section or the whole file.
 
It's in 'Gears'. Look for 'scene.bin format' and there will be ' Data file specification'. Look for 04C0 Offset named 'Attack Data 1'

Or here : http://wiki.qhimm.com/FF7/Battle/Battle_scenes
Look for 'Data File Format'
Attack Data stored here :
0x04C0    32 * 28 bytes    Attack Data (32 records)
 
Genji, I love you. I've been waiting for this kind of info and such a link for a long time. A long, long time :D

Now, it's easy to turn Blue Light's name into something else and to make it non-elemental ^__^

Gotta love those hex-editors =)
 
I'm in the process of making Shizo's Double Breath non-elemental (because really, a character who absorbs either Fire or Ice shouldn't absorb both elements), and I noticed something.

Schizo's data is in Scene186. I opened it with my hex editor and noticed that the Attack Data is listed in the same order as the Attack names. In other words, starting at address 0x04C0, you find :

(from Schizo's right head)

Right Breath, at address 0x04c0
Right Breath 2 (its final attack),at address 0x04DC
Double Breath, at address 0x04F8
Tremor, at address 0x0514
Right Breath, at address 0x0530
Right Breath 2, at address 0x054C
Tremor, at address 0x0568

(from Schizo's left head)

Left Breath, at address 0x0584
Left Breath 2, at address 0x05A0
Double Breath, at address 0x05BC
Tremor, at address 0x05D8
Left Breath, at address 0x05F4
Left Breath 2, at address 0x0610
Tremor, at address 0x062C

(and from Jenova : DEATH)

Red Light, at address 0x0648
Tropic Wind, at address 0x0664
Silence, at address 0x0680

Now, I wonder why there are two Right/Left Breath #1 and #2, and two Tremor for each Schizo head ? Are some of them unused or what ?

EDIT :

Oh, now I get it. They had to make two Right/Left Breath and 2 Tremor because when head part dies, the one being alive changes its behavior... And that explains why Double Breath is missing :)

EDIT 2 :

I have a question... Let's say I make the Soul Fire's (you know, the flame spirits accompanying GI Nattak in Cosmo Canyon) Fire 2 into a non-elemental spell. Will the characters' Fire 2 be non-elemental too ? I don't think so, but I need to be sure...
 
Schizo's data is in Scene186. I opened it with my hex editor and noticed that the Attack Data is listed in the same order as the Attack names.
Yeah ! That why I found them. And btw, Enemy Mechanics FAQ by Terence - great help here. Download it at Gamefaqs. It have all needed information about enemies and their attacks.

I have a question... Let's say I make the Soul Fire's (you know, the flame spirits accompanying GI Nattak in Cosmo Canyon) Fire 2 into a non-elemental spell. Will the characters' Fire 2 be non-elemental too ? I don't think so, but I need to be sure...
I think you modify only Soul Fire's Fire 2. But you can test it anyway ;)
I dont have saves because I just got my PC copy. So I had testing all my ideas at Guard Scorpion's Rifle -)

[edit]
00 x 0E.
I think 11 it is a physical type damage; 22 magical type damage; 23 percentage based.
 
Some good calls here, and Genji thanks for telling me which section you were referring to.

Changing the Attack name is simple but remember it cant be in standard ASCII, i think it is easier to use Ficedula's FF7TEXT program to quickly convert lots of text in a text file in to a FF7 compatible text format.

I have a save before the Gi cave if you still need it.
in fact I have lots of saves at the moment, mainly up to Temple of the Ancients but others from later in the game.

I will read Terrence's Enemy Mechanics FAQ and also take a look right now at the enemy attack info.

EDIT: Genji, are you changing these values everytime and then saving the scene.bin and then testing in game or have you tried editing in the memory realtime?
 
Yeah ! That why I found them. And btw, Enemy Mechanics FAQ by Terence - great help here. Download it at Gamefaqs. It have all needed information about enemies and their attacks.

Yup ! I've been using it since your previous post, Genji :)
I always have an eye on Qhimm while my other eye checks GameFaqs ;)

I think you modify only Soul Fire's Fire 2. But you can test it anyway ;)

The bad thing is, I can't test it unless I burn an ISO : the only working platform which runs FF7 correctly is my PSX. You won't believe it, but my PC is so messed-up it can't even run FF7 PC or a PSX emulator.
I manage to make a balanced little mod for my own use, because I already burnt a patched FFVII and I use it as the base for my new changes (I took note while playing it, such as "Diminish Hell Rider VR2's strength by a few" or "Raise Reno's M-Att by a lot", this kinda things).

I'm still thinking of finding a way to test my changes on my computer though - it'd be a lot safer.

[edit]
00 x 0E.
I think 11 it is a physical type damage; 22 magical type damage; 23 percentage based.

Awesome discovery ! :D
By the way, any idea where to find the byte which sets an attack to target the whole party, as opposed to targeting a single ally ?
 
EDIT: Genji, are you changing these values everytime and then saving the scene.bin and then testing in game or have you tried editing in the memory realtime?
First. I dont have programs to edit memory. Only HEX editor.

Side note.  My game freezes when Aerith uses 'Healing Wind' =\
Is it XP problem or something other ....

EDIT :
By the way, any idea where to find the byte which sets an attack to target the whole party, as opposed to targeting a single ally ?
I think it is 00x0C ;
03 - Single Target, 07 - Multiple Target (Spliting)
00x0F - it is a damage modifier (Pwr)
00x00 - Attack accuracy
 
you can use L.Spiro's Game editor MemHack
http://www.memoryhacking.com/index.php its free and if you need advise like where to search or how to I can help.
Major tip is to look at one section in your enemy attack info and search for those values AFTER you have had one fight on that same screen, so the game has had a chance to upload the scene file to memory.


I will prepare a quick diagram with all these values (the ones you have discovered )in this evening for better viewing.
 
Thanks. I will try it later.

Hmmm... I've tested No Elemental Jenova. I made Blue Light, Blue Flame and Aqualung non-elemental, went to game and equipped Water Ring.
Result : Blue Light and Blue Flame DEALS damage ! -) But no Aqualung. Aqualung healed me.

So I think Fire2 from Soul Fires will be Fire Elemental. Seems spells elemental property stored somewhere else, and will affect spells casted by enemy and player.

P.S. I've fixed my problem with 'Healing Wind'.
 
what was the problem with Aeris limit break?

I have a feeling attacks that are generic (magic) are in the kernal.bin file since they are stored with materia and their associated magic information and animation references.

So Ultima that you can equipt might be the same Ultima that say Jenova Synthesis uses?

Aqualung, was its attack information in that section, have you tried changing something other than elemental (type of attack, percentage based, power, etc)?
 
Starting at 0x4C0 in the scene file the enemy attack data is at 0x28 Byte sections for each attack in the order as shown in

the Attack Names Section just after it.

KEY:
Code: [Select]
Code:
 AC = Accuracy IA = Impact Animation TA = Target's Animation MP = MP Cost TY = Attack Type ?(taken from AttackHacks.txt) TG = Target - Single / Multiple ID = Attack ID TD = Damage Type PW = Power Modifier  RT = Restore Type & Chance of Affliction ST = Status afflictions  EL = Elemental Type - Fire / Ice / etc 
Examples:


MYSTERY NINJA
SCENE FILE 70

Code: [Select]
Code:
Attack Name:FIGHTLocated at:0x4C0<AC|IA|TA>--<MP>--------------<TY>--<TG|ID|TD|PW> 5f 30 00 ff 00 00 23 00 ff ff ff ff 0b ff 11 10  ff ff ff ff ff ff ff ff 00 04 ff ff                   <RT>--------<----ST-----|-EL-->-----SPIDER WEB0x4F8<AC|IA|TA>--<MP>--------------<TY>--<TG|ID|TD|PW> 5f ff 00 ff 00 00 ff ff ff ff ff ff 0b 02 11 00     ff 3f ff ff 00 02 00 00 00 00 ff ff                 <RT>--------<----ST-----|-EL-->-----
GUARD SCORPIAN
SCENE FILE 82
Code: [Select]
Code:
RIFLE0x4F8<AC|IA|TA>--<MP>--------------<TY>--<TG|ID|TD|PW> 64 2e 00 ff 00 00 23 00 ff ff ff ff 03 ff 11 10 ff ff ff ff ff ff ff ff 00 20 ff ff    <RT>--------<----ST-----|-EL-->-----
MOTH SLASHER
SCENE FILE 110
Code: [Select]
Code:
BOLT0x4f8<AC|IA|TA>--<MP>--------------<TY>--<TG|ID|TD|PW> 64 ff 00 ff 16 00 ff ff 0d 00 24 00 0f 1f 22 14     ff ff ff ff ff ff ff ff 02 00 ff fd                <RT>--------<----ST-----|-EL-->-----SLEEPEL0x514<AC|IA|TA>--<MP>--------------<TY>--<TG|ID|TD|PW> 64 ff 01 ff 08 00 ff ff 03 00 24 00 0f 0b 22 00     ff 12 ff ff 04 00 00 00 00 00 ff fd                 <RT>--------<----ST-----|-EL-->-----
Code: [Select]
Code:
Known Values: AC = Accuracy  IA = Impact Animation TA = Target's Animation 01 - Shiver 02 - Target flies into air and crashes to ground 03 - Flies out of battle scene (becomes invicible) 04 - invicible ff - Normal (taking damage animation) TY = Attack Type ? TG = Target - Single / Multiple  03 - Single Target 05 - Multiple Target   ID = Attack ID 01 - Fire Ball  16 - Beam Gun 17 - HP Drain Animation 18 - Rude Earth Shock Attack? 19 - Explosion 1a - Tsunami 40 - Smoke Shot 50 - Waterpolo Attack a0 - Blade Beam Limit Break Projectile TD = Type Of Damage - HP / MP / Percentage Based 11 - Physical  22 - Magical  23 - Magical HP\MP Based  24 - Restore Max HP Percentage.  25 - HP Restore  26 - Magical Fixed Damage * 20 (?)  60 - White Wind (Max HP Based, Barrier ignoring)  61 - ???? (Current HP of User - based)  69 - Chocobucle (Quanty of escapes - based)  83 - Level Based (L4 Suicide, L5 Death) PW = Power Modifier  Combined with DM = 23 21 - Damage Equal to Current HP (100%) RT = Restore Type 00 - Restore HP 01 - Restore MP 02 - Restore Ailment <3F - Inflick Positive Status <7F - Cure Status (Please explain) <92 - Toggle Status (Mini, Toad) FF - None ST = Status Afflictions (4 Bytes)* 0x00000001 Death  0x00000002 Near-Death  0x00000004 Sleep  0x00000008 Poison  0x00000010 Sadness  0x00000020 Fury  0x00000040 Confusion  0x00000080 Silence  0x00000100 Haste  0x00000200 Slow  0x00000400 Stop  0x00000800 Frog  0x00001000 Small  0x00002000 Slow-numb  0x00004000 Petrify  0x00008000 Regen  0x00010000 Barrier  0x00020000 MBarrier  0x00040000 Reflect  0x00080000 Unused  0x00100000 Shield  0x00200000 D.Sentence  0x00400000 Manipulate  0x00800000 Berserk  0x01000000 Peerless  0x02000000 Paralyzed  0x04000000 Darkness  0x08000000 Dual  0x10000000 DeathForce  0x20000000 Resist  0x40000000 Lucky Girl  0x80000000 Imprisoned EL = Elemental Type (2 Bytes)* 0x0000 Non Elemental 0x0001 Fire  0x0002 Ice  0x0004 Lightning  0x0008 Earth  0x0010 Poison  0x0020 Gravity  0x0040 Water  0x0080 Wind  0x0100 Holy  0x0200 Restorative  0x0400 Cut  0x0800 Hit  0x1000 Punch  0x2000 Shoot  0x4000 Shout

*Please note for multiple bytes (DWORD, etc) they are interpreted back to front
ie: 0x4000 would be seen in the file/ram as 00 00 00 40
    0x0400 would be seen in the file/ram as 00 00 00 04
 
Refer to Terrence's Battle Mechanics document on Gamefaqs. Attack "types" (cut, punch...) are actually just elements. Therefore the element is a 2-byte value, containing up to 16 possible elements (well, 15+hidden, according to the Battle Mechanics).
 
NEW:
I was playing with the Sweeper enemy in scene file 81, he has a projectile attack called Smoke shot (looks like a shot of smoke  :) )
look below:
Code: [Select]
Code:
0x530:4b ff 00 ff 00 00 ff ff ff ff ff ff 03 *40* 11 18    0x540:ff ff ff ff ff ff ff ff 00 20 ff ff

The value *40* I changed to 01 and the Projectile animation changed from a shot of smoke to a Fire projectile (like a ball of fire being shot)
I will update my post above to include this
excuse my spelling :)

Ficedula: Thanks for the update, I will read the battle faq, I just finished looking at the enemy one so when thats done it should help fill some gaps

EDIT: got the values wrong way around
 
Wow, you rock, Skillster ! :D
And your spelling is perfectly fine, by the way.

I wish I could run tests on my PC too, in order to enlarge these known values... *curses his computer*

And thanks for the info, Genji :)

I have another question, if you don't mind : does changing a spell/attack's targeting also changes the animation/camera moves ? I don't think so, and it is what keeps me from trying targeting changes for my PSX patch... If you don't see a Fire 2 graphic effect for each character, it would be lame. But I could deal with the camera problem (you know, the camera shows the sole targeted character sometimes... I imagine damage for the two other party members would still be seen at the edge of the screen though). How does the game reacts when targeting is changed this way ?

(sorry for my bad English)
 
I will use Sweeper's Attack Data
My thoughts...
Code: [Select]
Code:
---------IA-TA----MC-----------------------------------0x530:4b ff 00 ff 00 00 ff ff ff ff ff ff 03 *40* 11 18    0x540:ff ff ff ff ff ff ff ff 00 20 ff ffIA - Impact Animation (Animation used then attack contact it target)TA - Target Animation 02 - (target will fly into the air and fall down)MC - MP Cost (SURE)
 
ooh nice work Genji!
Some additional Notes.
If you Specify Multiple targets:
 - If it is a physical attack (ie punch) the enemy will attack all players with one animation and you will see IA and TA (see Genji's posrt) for all players.

- If it is a projectile attack which is single target based (fire ball for example) the enemy will;
         - make n attacking animations (n being how many players you have) followed by n projectiles and you will see IA and TA for all players.
         - make one attacking animation followed by n projectiles and you will see IA and TA for all players (example waterpolo attack).


Side Note: I found the memory location for the Enemy Attack Data if you are interested - you can change various things DURING the fight and the next attempt of using that attack will be effected (IE: I used it to test projectile animations).

I found the 2nd attack (Beam Gun in my case for scene 81) at:
0x9A90E0 so look around that area (using a ram viewer) and you will the other attacks too, note during a battle
 
Status
Not open for further replies.
Back
Top