Author Topic: Rude bug in the sunken plane  (Read 7076 times)

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Rude bug in the sunken plane
« on: 2007-12-30 16:39:43 »
As you might already know when Rude uses Magic once in the fight at the sunken plane, he is somehow not able to continue fighting.
He just stands there as if he was guarding all the time.

My new Prob: I exchanged Rudes -ra Magic with -ga Magic(for example, Fira with Firga) via Hex editing and powered up Renos attacks.

The only result is that the stupid bug also affects RENO!!!!! In the whole battle, they do NOTHING. Theyre just standing and waiting.

I know how to exchange attacks btw. I replaced the whole attack in the attack data, changed ID in enemy data, after the attack data and in the AI so it should work. Any ideas whats wrong?

gjoerulv

  • *
  • Posts: 1225
  • me
    • View Profile
    • My Youtube
Re: Rude bug in the sunken plane
« Reply #1 on: 2008-01-01 10:34:01 »
I kinda did the same thing (just no bugs). It's not easy to say whats wrong with Reno but does Rude do anything? The error with Rude is that a variable is set to 1 (I think it was) if he uses something besides Shoulder Tackle. The AI checks if that var is and if it is, it eventually jumps to the end of the AI. Check if there is a 60 01 in the AI after each attack is executed. However I don't remember if it was 1 or 0 it was set to.

If you did it correctly with Rude's attacks it should work. Double check everything. What exactly did you do with Reno? That might be the problem.

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Re: Rude bug in the sunken plane
« Reply #2 on: 2008-01-01 14:59:05 »
Ok after each attack in the AI there is a 10 60 00 and then 60 01. I never changed things in the AI besides attacks so could you pls tell me what to change? and to what? thx thx thx

gjoerulv

  • *
  • Posts: 1225
  • me
    • View Profile
    • My Youtube
Re: Rude bug in the sunken plane
« Reply #3 on: 2008-01-01 23:14:49 »
If I remember correctly opcode 0x10 loads an address (in this case 0x60 (10 60 00)). And then opcode 0x60 pushes 1 byte on the stack. After the 01 is there a 0x90? 0x90 sets the address so in that case change the 01 after 60 to 00.

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Re: Rude bug in the sunken plane
« Reply #4 on: 2008-01-02 21:05:03 »
Big thx I finally got both Reno and Rude working!

Btw: As far as I can see, you didnt remove the Rude bug, you just said his AI that he must do a Punch after each spell so that he doesnt crash down. Thats ok for me but its kinda unfair that he gets two moves in one while Reno gets one at all :cry:(like Reno more than Rude^^)

gjoerulv

  • *
  • Posts: 1225
  • me
    • View Profile
    • My Youtube
Re: Rude bug in the sunken plane
« Reply #5 on: 2008-01-03 14:49:42 »
hmmm, in my ver he doesn't do that I believe. Either that, or the AI automatically jumps to a shoulder tackle if that variable is 0. That variable being 0 alone can't trigger a command.

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Re: Rude bug in the sunken plane
« Reply #6 on: 2008-01-03 19:40:11 »
Well then you must have set it to another value. Anyways its ok for me or if you want you can tell me your value on Friday.

gjoerulv

  • *
  • Posts: 1225
  • me
    • View Profile
    • My Youtube
Re: Rude bug in the sunken plane
« Reply #7 on: 2008-01-07 21:29:26 »
Actually he does the same thing in my version. But it seemed I figured it out cause I gave Reno a counter attack. That evened it out a bit I think.

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Re: Rude bug in the sunken plane
« Reply #8 on: 2008-01-08 13:04:58 »
oh yeah I was curious about how to give enemies counter attacks, or before-death attacks(like Bottomswells last Tsunami) so how do I manage to do that?

gjoerulv

  • *
  • Posts: 1225
  • me
    • View Profile
    • My Youtube
Re: Rude bug in the sunken plane
« Reply #9 on: 2008-01-11 16:12:09 »
remember the 1st section in the enemy AI? That is the pointer section, and usually consists of many FFs. This is the only section in the AI that always is 16 * 2 bytes for every enemy (Each pointer is 2 bytes). I don't know what eery pointer is but here are some:

1st: The AI setup script. Most enemies have this.
2nd: Main. Every enemy got this one.
3rd: Counter General. This script is executed each time any action are done towards the enemy. No matter what (A bad status effect may prevent it though)
4th: Counter Death. This script is executed when death occurs
5th: Counter Physical.
6th: Counter Magical.

I believe it was like this. I don't remember any more. 0xFF means no section. The 1st pointer, either the Setup or Main, will always be 0x20. If you add a section you'll have to add the script to or the game will most likely crash or hang.

The Black-caped Man

  • *
  • Posts: 194
  • The time........has come........!
    • View Profile
Re: Rude bug in the sunken plane
« Reply #10 on: 2008-01-12 10:19:36 »
ok nooby like I am pls give me an example. If I want, lets say, Jenova Birth(scene 123) give a Counter Death Tail Laser what must I change exactly? The wikis link to the AI seems dead it always goes over to the edit page where it says: you must login to edit! So pls tell me at which offsets the pointers are, what I must change and to which value pls free me from my noobyness^^

gjoerulv

  • *
  • Posts: 1225
  • me
    • View Profile
    • My Youtube
Re: Rude bug in the sunken plane
« Reply #11 on: 2008-01-22 13:59:47 »
ok I'll give you an example (sorry for late reply):

Here is CMD.Grand Horn's AI (lvl 37 scene 73). That starts at offset 0x1000 in the scene:

Code: [Select]
Pointer section (32 bytes): FF FF 20 00 FF FF AA 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
You see the "Counter death" (CD) pointer is 0xAA (AA 00 in the code). This means that CD section starts at offset 0xAA in this enemy's AI.

This is the CD script:

Code: [Select]
12 70 20 02 A0 20 90 60 20 61 15 03 92 73

12 (Push Value) 20 70: Target
02 (Load Address) 20 A0: Opponents
90 (Set Address)
60 (Push Byte) 20: This always precedes an executable ID. It either pushes 0x20 or 0x24 (I think it was). Dunno why.
61 (Push Word) 03 15: The attack ID
92 (Run Command)
73 (Script End)

In C++ code It'll be something like this:

CounterDeath()
{
   SetTarget(Opponents);
   SetCommand(0x315);
   RunCommand();
} Or something like that...