A
Akari
Guest
Wondering about FFVII battle ai scripting.
In Terrense enemy mechanics there are conditions
Code: [Select]
But when I dump psx script there are folowing code (already simplified)
0000 [0004 + 00] = (00);
0006 [0008 + 00] = (00);
000c [0000 + 00] = (00);
0012 JumpIfNotAllFriendsInFrontRow(0029);
001f [0008 + 00] = [0008 + 00] & (01);
0029 JumpIfNotAllFriendsInBackRow(0040);
0036 [0008 + 00] = [0008 + 00] & (02);
0040 JumpIfNotAllOpponentsInFrontRow(0057);
004d [0004 + 00] = [0004 + 00] & (01);
0057 JumpIfNotAllOpponentsInBackRow(006e);
0064 [0004 + 00] = [0004 + 00] & (02);
006e JumpIfSelfNotInFrontRow(0084);
007b [0000 + 00] = (00);
0081 0x72 JumpTo(0x008a)
0084 [0000 + 00] = (01);
variable 0 - where we store if we in front row or not.
but variable where we store enemy position always zero. It is set to 0 at the beginning and if we &2 or &1 it - nothing change. I check with debugger - this variables always zero.
Everything else - exactly like in Fergusson faq... just those conditions always false.
So there are questions - are PC and PSX version of scripts different?
If anyone can post here part of dumped ai code from MP enemy or send me scene.bin file ([email protected]) it will be very convinient.
In Terrense enemy mechanics there are conditions
Code: [Select]
Code:
If (All Opponents are in Front Row) Then { Choose Random Opponent 1/4 Chance: TempVar:ChosenAtt = Machine Gun 3/4 Chance: TempVar:ChosenAtt = <Tonfa> } Else If (All Opponents are in Back Row) Then { 1/8 Chance: TempVar:ChosenAtt = <Tonfa> 7/8 Chance: TempVar:ChosenAtt = Machine Gun } Else { If (1/2 Chance) Then { Choose Random Opponent in Back Row TempVar:ChosenAtt = Machine Gun } Else { Choose Random Opponent in Front Row TempVar:ChosenAtt = <Tonfa> } }
0000 [0004 + 00] = (00);
0006 [0008 + 00] = (00);
000c [0000 + 00] = (00);
0012 JumpIfNotAllFriendsInFrontRow(0029);
001f [0008 + 00] = [0008 + 00] & (01);
0029 JumpIfNotAllFriendsInBackRow(0040);
0036 [0008 + 00] = [0008 + 00] & (02);
0040 JumpIfNotAllOpponentsInFrontRow(0057);
004d [0004 + 00] = [0004 + 00] & (01);
0057 JumpIfNotAllOpponentsInBackRow(006e);
0064 [0004 + 00] = [0004 + 00] & (02);
006e JumpIfSelfNotInFrontRow(0084);
007b [0000 + 00] = (00);
0081 0x72 JumpTo(0x008a)
0084 [0000 + 00] = (01);
variable 0 - where we store if we in front row or not.
but variable where we store enemy position always zero. It is set to 0 at the beginning and if we &2 or &1 it - nothing change. I check with debugger - this variables always zero.
Everything else - exactly like in Fergusson faq... just those conditions always false.
So there are questions - are PC and PSX version of scripts different?
If anyone can post here part of dumped ai code from MP enemy or send me scene.bin file ([email protected]) it will be very convinient.
Last edited: