Author Topic: Enemy&Spell Editing Question  (Read 6071 times)

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Enemy&Spell Editing Question
« on: 2010-07-23 09:32:46 »
Hello there,

First, yes I'm finally back lol. After one year break from FF7 the game caught me again(what a suprise^^). In 2007 I talked a lot to gjoerulv who step-by step instructed me into Hex Editing FF7 enemies, including interchanging attacks, adding brand new attacks to scenes, tedious AI-editing, updating pointers etc. Today I use WallMarket, ProudClot, Hojo, Loveless, Meteor and Hex Editing(for the most time as I hate to rely on programs, if they should fack smth up(not criticizing anyones ability to write those programs) I would have no idea where to look at and if I myself fack it up I know exactly which bytes it must be). Nowadays I can do pretty much anything I ever wanted. Afai can see theres no major troubles with the programs up to now.

Why I'm posting this thread:
I got 2 questions: Number one: Is there ANY possible way to mirror a final-attack frog spell? Because
all final attacks can be mirrored just properly with the exception of frog(and probably small, didnt try that). Even if I set it to no re-target(so it should be able to target dead ppl) it still won't mirror it, yet it won't even mirror it on alive characters(The mirror I inflicted on the enemy before isnt even displayed). So I'd be glad if anyone could help me out here(Though I know this seems very unimportant its UNVALUABLE to me!^^).

Q 2:
I've been having trouble with inflicting status ailments lately. No matter what I set the value, the status is always inflicted 100%. I have an enemy(won't tell the name as I might release a hardcore mod with a walkthrough(trust me, you NEED it:D) with a multiple hit attack(attacks 15x) and even when the value is 01(4%) every single hit inflicts the ailments I attached to it for 100%. Is anyone familiar with that? Haven't found anything about that in the forum yet....

Thx for help,
The Black-caped Man

Bosola

  • Fire hazard!
  • *
  • Posts: 1749
    • View Profile
    • My YouTube Channel
Re: Enemy&Spell Editing Question
« Reply #1 on: 2010-07-23 10:04:51 »
Hello there,

First, yes I'm finally back lol. After one year break from FF7 the game caught me again(what a suprise^^). In 2007 I talked a lot to gjoerulv who step-by step instructed me into Hex Editing FF7 enemies, including interchanging attacks, adding brand new attacks to scenes, tedious AI-editing, updating pointers etc. Today I use WallMarket, ProudClot, Hojo, Loveless, Meteor and Hex Editing(for the most time as I hate to rely on programs, if they should fack smth up(not criticizing anyones ability to write those programs) I would have no idea where to look at and if I myself fack it up I know exactly which bytes it must be). Nowadays I can do pretty much anything I ever wanted. Afai can see theres no major troubles with the programs up to now.

Hex editing should now be mostly obsolete. As well as WM and PC, we now have White Choco, Black Choco, my own Libre, Hack'7, Gemini's translation tools and Makou Reactor. The only program that's missing is one to change out of battle item effects.

Quote
Why I'm posting this thread:
I got 2 questions: Number one: Is there ANY possible way to mirror a final-attack frog spell? Because
all final attacks can be mirrored just properly with the exception of frog(and probably small, didnt try that).
Quote

You mean, reflect a frog attack that's been cast by a dying enemy? Check frog's target data and special flags. Make them comparable to, say, cure. You may have changed attributes in your kernel.

I'll take a look at this later today.

Quote
Q 2:
I've been having trouble with inflicting status ailments lately. No matter what I set the value, the status is always inflicted 100%. I have an enemy(won't tell the name as I might release a hardcore mod with a walkthrough(trust me, you NEED it:D) with a multiple hit attack(attacks 15x) and even when the value is 01(4%) every single hit inflicts the ailments I attached to it for 100%. Is anyone familiar with that? Haven't found anything about that in the forum yet....

Read the battle mechanics FAQ. There are certain conditions where specific ailments have a 100% hit rate. Can you tell me

* what the attack does, who it affects
* the statuses it inflicts
* whether the animation truly supports multihit attacks
* the details of the target; its conditions, equipment etc.

Also, you don't need to hex-edit AI. Use Proud Clod. Or even better, use Proud Clod with Welder. Welder's my project, and I've a vested interest in pushing it, but I still think it's the easiest way to create threatening AI without having to learn FF7's assembler-like scripting language.

nfitc1

  • *
  • Posts: 3008
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Enemy&Spell Editing Question
« Reply #2 on: 2010-07-23 12:14:07 »
The only program that's missing is one to change out of battle item effects.

I believe that I explained why this was likely NOT going to happen. SOME things can be done to them, but not many. You can change the value of how much something heals or what stat the sources increase, but not much else like that.

Armorvil

  • *
  • Posts: 621
  • Working on : FFVII Total Grudge
    • View Profile
Re: Enemy&Spell Editing Question
« Reply #3 on: 2010-07-23 18:58:55 »
Quote
Q 2:
I've been having trouble with inflicting status ailments lately. No matter what I set the value, the status is always inflicted 100%. I have an enemy(won't tell the name as I might release a hardcore mod with a walkthrough(trust me, you NEED it:D) with a multiple hit attack(attacks 15x) and even when the value is 01(4%) every single hit inflicts the ailments I attached to it for 100%. Is anyone familiar with that? Haven't found anything about that in the forum yet....

Yes, I am familiar with this. I made MotorBall's Rolling Fire attack have a chance to inflict Berserk, but wanted to keep the probability quite low. Needless to say, I got the same thing you describe : even with a ~4% chance to inflict the status, Rolling Fire always inflicts Berserk to all allies. And I've ran more than 5 or 6 tests, believe me.

I'm not sure if the problem is linked to the Berserk status or to some attack animations (in my case, Rolling Fire), though. Truth be told, I never saw an enemy attack with even a low chance of inflicting Berserk, not inflict Berserk. What is the status you're working with ?... ...Anyway I'll try to run more tests, and I'll get back to this topic.

EDIT :

Just tried with a random enemy's basic attack (a Toxic Frog's Frog Jab), and it's indeed linked to the Berserk status. 20 Frog Jabs always inflicted Berserk on the targeted character, even though their chance to inflict the status was only 4%. Maybe some other status effects suffer from the same problem, but I didn't come accross them.
« Last Edit: 2010-07-23 19:14:11 by Armorvil »

Bosola

  • Fire hazard!
  • *
  • Posts: 1749
    • View Profile
    • My YouTube Channel
Re: Enemy&Spell Editing Question
« Reply #4 on: 2010-07-23 22:12:11 »
Quote
3.3.4  Status
-----  ------
The final main routine for accuracy is for statuses.  Like Critical Hits,
the attack a status is attached to must succeed before we can figure out
whether the status itself may hit or not.

Status accuracy is actually checked for at the start of the Status and
Element phase, before Element/Status Resistances are dealt with.  If the
chance fails, then the ability will no longer be considered to be Inflicting,
Toggling or Curing any statuses.


First, we check for Auto Hit conditions, as per usual:

   * If Frog is the only Status the Ability is trying to Inflict, Cure or
       Toggle, and the Target has the Frog Status, then allow an Auto Hit
   * If Small is the only Status the Ability is trying to Inflict, Cure or
       Toggle, and the Target has the Small Status, then allow an Auto Hit
   * If the Target is a Party Member, and at least one of Haste, Berserk or
       Shield is being Inflicted, Cured or Toggled, then allow an Auto Hit
   * If the Status Chance is 100%, then allow an Auto Hit

If an Auto Hit is allowed, then the status effect will connect.  This doesn't
mean that the attack will work, of course - we still have to check for
immunity and the like later.

----

Quote
I believe that I explained why this was likely NOT going to happen. SOME things can be done to them, but not many. You can change the value of how much something heals or what stat the sources increase, but not much else like that.

Hmm. The only other option I see would be to change *all* functions so that they take a 'template' form that could easily be altered by an editor. This would be really tricky, though I *guess* that with a proper decompiler it would be in the realms of doable. Mind you, with decompilation and enough source editing, it's also 'possible' to turn FF7 into an NFL game.
« Last Edit: 2010-07-23 22:20:19 by Bosola »

Armorvil

  • *
  • Posts: 621
  • Working on : FFVII Total Grudge
    • View Profile
Re: Enemy&Spell Editing Question
« Reply #5 on: 2010-07-23 22:31:25 »
Quote
   * If the Target is a Party Member, and at least one of Haste, Berserk or
       Shield is being Inflicted, Cured or Toggled, then allow an Auto Hit

Oooohhh !... Now that explains it, thank you Bosola. I thought I read the FAQ through and through, but it seems I missed this part. ~__~

Looks like the game considers all of these as beneficial status effects, so if an attack has a small chance to inflict them, then it always will. Me, I see more Berserk as a negative status effect, so of course, this behaviour bothers me  :(
« Last Edit: 2010-07-23 22:34:26 by Armorvil »

Bosola

  • Fire hazard!
  • *
  • Posts: 1749
    • View Profile
    • My YouTube Channel
Re: Enemy&Spell Editing Question
« Reply #6 on: 2010-07-23 22:47:52 »
Unfortunately, it's hard coded, so changing it wouldn't be that trivial.

HOWEVER, you could write enemy AI that threw a dice to determine which of two near-identical attacks it would use. One would inflict the status, the other would not. That would implement it as an enemy attack.

So, in Proud Clod, create two attacks:

"Foobar" - Attack ID 101 - 16/32 HP damage - inflict BERSERK
"Foobar" - Attack ID 102 - 16/32 HP damage - inflict nothing

The player sees an attack named 'Foobar'. It looks and sounds the same, but appears to inflict berserk on a *random* basis.

nfitc1

  • *
  • Posts: 3008
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Enemy&Spell Editing Question
« Reply #7 on: 2010-07-24 03:10:55 »
So, in Proud Clod, create two attacks:

"Foobar" - Attack ID 101 - 16/32 HP damage - inflict BERSERK
"Foobar" - Attack ID 102 - 16/32 HP damage - inflict nothing

The player sees an attack named 'Foobar'. It looks and sounds the same, but appears to inflict berserk on a *random* basis.

This is how the enemies that do this kind of thing....do......this kind of thing. Like how Reno has three different "Pyramid" attacks for practically the same action except they target different characters. Some statuses like Poison don't necessarily inflict. I thought Slow always does on player characters, though. I don't think I've ever had an enemy miss inflicting that.

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Re: Enemy&Spell Editing Question
« Reply #8 on: 2010-07-28 17:47:45 »
Quote
First, we check for Auto Hit conditions, as per usual:

   * If Frog is the only Status the Ability is trying to Inflict, Cure or
       Toggle, and the Target has the Frog Status, then allow an Auto Hit
   * If Small is the only Status the Ability is trying to Inflict, Cure or
       Toggle, and the Target has the Small Status, then allow an Auto Hit
   * If the Target is a Party Member, and at least one of Haste, Berserk or
       Shield is being Inflicted, Cured or Toggled, then allow an Auto Hit
   * If the Status Chance is 100%, then allow an Auto Hit
k so this means if the attack inflicts berserk as well as other ailments, all the ailments are inflicted i got that alright. ty
Quote
You mean, reflect a frog attack that's been cast by a dying enemy? Check frog's target data and special flags. Make them comparable to, say, cure. You may have changed attributes in your kernel.
I'll take a look at this later today.
And with the frog thing thats what i already tried of course but it didnt seem to work........ill go through it tonight once more, maybe i messed up a byte
thx for helpin me out(and yes i know hex editing is obsolete, still, i luv it:=))

Bosola

  • Fire hazard!
  • *
  • Posts: 1749
    • View Profile
    • My YouTube Channel
Re: Enemy&Spell Editing Question
« Reply #9 on: 2010-07-28 18:22:35 »
k so this means if the attack inflicts berserk as well as other ailments, all the ailments are inflicted i got that alright. ty
Quote

Status effect hits are tried separately, so no, I don't think that's the case.

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Re: Enemy&Spell Editing Question
« Reply #10 on: 2010-08-13 10:59:13 »
Ok I'm through with that now lol......apparently it's impossible to mirror a final-attack frog spell on a dead character.....I tried all possible bytes for it. A dead character CAN be turned into a frog however, as when i set the frog spell in the kernel to "not start on enemies" and Cloud casts it on himself as final-attack he turns himself into a frog.....but with mirror it won't work, it just doesn't mirror it although the reflectable is checked in wall market and the special byte set to FD as it should.......anyway thx for the help.

Oh btw just curious:
Quote
Status effect hits are tried separately, so no, I don't think that's the case.
When I had berserk among the ailments it ALWAYS inflicted ALL of the ailments at the very first hit of the attack(it contains 15 hits). When I removed Berserk it did as it should, either randomly inflicting the ailments or not. Another q I had: When I have a multiple hit attack inflicting ailments by chance(lets say the attack has 5 hits and i give it a 20% chance of inflicting poison and silence) is then the chance 20% of inflicting poison and silence AT EACH HIT or only for the whole attack(meaning 4% per hit).

nfitc1

  • *
  • Posts: 3008
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Enemy&Spell Editing Question
« Reply #11 on: 2010-09-13 22:11:25 »
apparently it's impossible to mirror a final-attack frog spell on a dead character.....I tried all possible bytes for it. A dead character CAN be turned into a frog however, as when i set the frog spell in the kernel to "not start on enemies" and Cloud casts it on himself as final-attack he turns himself into a frog.....but with mirror it won't work, it just doesn't mirror it although the reflectable is checked in wall market and the special byte set to FD as it should.......anyway thx for the help.

I'm aware this is a month old and TBCM probably doesn't care. But for future reference, when a character dies most (or all) other statuses get removed. Since the character's already been flagged and handled as dead before final attack occurs (which allows revive to work) then the reflect status was removed so the frog attack was not reflected.

Order of events:
1. Cloud gains Reflect Status
2. Something happens to Cloud and his HP becomes 0
3. All statuses are removed and flagged as "dead", "inactive", blah, blah
4. Final Attack kicks in and casts Frog on Cloud
5. Frog gets set (somehow)