• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
June 15, 2025, 03:42:22 pm

News:

Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed! Find out how you can help in the Recruitment section or our Discord!


Attack.out Battle Event Conditionals

Started by Cheetah, January 21, 2009, 10:44:06 pm

Jumza

October 31, 2009, 10:47:30 am #40 Last Edit: December 31, 1969, 07:00:00 pm by Jumza
No thats the strange thing it doesnt end if i kill all enemies i even killed ramza and it didnt end... whats the problem?
  • Modding version: PSX
Nyzer: Alma teleports out of her own possessed body.
Raijinili: Remember that you're telling a modding community that the game they love could use some fixing.

Xifanie

October 31, 2009, 11:18:10 am #41 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
Paste the instruction here, I'll check if you formatted it right.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Jumza

October 31, 2009, 11:31:36 am #42 Last Edit: December 31, 1969, 07:00:00 pm by Jumza
010080000000040086000600(last line of  #'s in the orbonne monastery fight) I assume this is what you want
  • Modding version: PSX
Nyzer: Alma teleports out of her own possessed body.
Raijinili: Remember that you're telling a modding community that the game they love could use some fixing.

Xifanie

October 31, 2009, 11:37:23 am #43 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
0100 8000 0000 1600 1900 0600 ; original
0100 8000 0000 0400 8600 0600 ; yours

Quote from: "Zodiac"So, replace 1600 by 040086000000 just like shown on the first page.
should be
0100 8000 0000 0400 8600 0000 1900 0600

I seriously don't know what you were thinking.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

philsov

Where can I find the spreadsheet Jumza showed a picture of?  Wanting to modify conditionals but I appear to be blind.
Just another rebel plotting rebellion.

RavenOfRazgriz

Quote from: "philsov"Where can I find the spreadsheet Jumza showed a picture of?  Wanting to modify conditionals but I appear to be blind.

Quote from: "Zodiac"Excel spreadsheet:

http://zodiac.ffhacktics.com/event%20conditions.rar

Use OpenOffice or Excel to view/edit/etc.
It automatically recalculates pointers.

First page me bro!  

:p

philsov

Aha, there it is.  Thanks Raven.

Now, then...

Using Miluda 1 as an example:

I wish to make the battle "kill all enemies".  So... I find the:

0100 8000 0000 0600 8500 000 0190 04300

command line.  I turn the 0600 into 1600 and then blank out the the 8500 section into 0000.  

(Is this the proper procedure? Or is it better to simply delete 8500 completely).  

What I'm more stuck at is re-inserting.  When I click on the blue bar to copy/paste at the address, the only thing that gets onto the clip board is #NAME?.  Or, in hex, about 8 lines worth of 0A0D's.
Just another rebel plotting rebellion.

Xifanie

Make sure you have the Analysis ToolPak installed and Enabled; Tools/Add-ins
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

philsov

Ah.  I did not.  Thanks :D

Next blip.... >_>

I got the wall of hex text to be successfully copied into attack.out (I had to make sure to enable it AS hex text), but upon trying to re-insert the attack.out back into the game with cdmage, I got an error message saying that the imported file is larger than the original, and do I wish to truncate?  If I choose to truncate, then when I try to enter Thieves Fort to test if the change is good, the game crashes.

Help with the oversized thing?  The original attack.out is clocking in at 124 KB and the updated one is at 132 KB.  And, yes, I started at offset 0x14938
Just another rebel plotting rebellion.

Xifanie

you aren't supposed to PASTE the data, you're supposed to replace it. I know you can "write" with Winhex, and that will paste over the existing data. I don't know which hex editor you're using.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

formerdeathcorps

Quote from: "Zodiac"Make sure you have the Analysis ToolPak installed and Enabled; Tools/Add-ins

Which tools are you talking about?  Windhex or some other things too?
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

philsov

@Zodiac

using tiny hexer. Well, used.  

Grabbed winhex and wrote in as ascii hex, and it did the trick.  Ran into an error where the battle didn't end when I killed Miluda (yay), but then also didn't end when I killed everyone on screen, including Delita/Algus (boo).  Turns out I had an extra 00 floating around, but that got all fixed and now I'm happy to see this thing in action.

btw the potential on this stuff is MASSIVE.

But... now... has there been any progress into test.evt editing?  Would love to change the battle text as followthrough.

@FDC:

Using my awesome copy of excel 03 as an example, its under Tools -> Addins -> Analysis Pak.  Can't miss it -- it's after file, edit, view, and such.
Just another rebel plotting rebellion.

philsov

Oh, and is there any overlap between the battle conditionals and the attack.out editor?  Would hate to do all these edits then get them overwritten by battle conditions.
Just another rebel plotting rebellion.

Xifanie

Just stay within the limit and you'll be fine.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

formerdeathcorps

A couple of questions:

1. If I replace something with 6 bytes (like 08 00 ID 00 %% 00) with 4 bytes (04 00 ID 00), do the extra two bytes (which I'm going to fill with zeroes) affect the instructions?

2. If I use 0800ID00%%00, but the unit's ID does not appear, does the game default to true or false?  Or will such a conditional be skipped?

3. If I have event conditionals for one battle scattered across ATTACK.OUT, will conditionals put before the initializing 01 00 FD 01 01 00 19 00 XX 00 not load for that battle; even if no other battle can clearly satisfy such conditions?  An semi-hypothetical example would be something like:
x14500: 01007F0000000400170008001700140019007D00 (Run Event 7D if Gafgarion's HP is less than 20% and variable 7F is 0.  Event 7D will set variable 7F to 1.)
x15500: 0100FD01010019007A00 (Run Event 7A that initializes the battle which event 7D is part of)
x155A0: 01007F010019007E (Run Event 7E if variable 7F is 1.)
Obviously, the Gafgarion trigger mentioned at x14500 could not have happened before Chapter 1 (since 04001700 clearly can't be satisfied), but because it was placed before the battle initializing event in both TEST.EVT and ATTACK.OUT, is it possible x14500 (and consequently, x155A0) will never run?
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

Cheetah

1) From my experiments, no.
2) If the unit doesn't exist it doesn't run, I believe.
3) I don't quite understand the question.
Current Projects:

Xifanie

1) If you're using my spreadsheet; no. If not the pointers aren't recalculated and it will have ~99% chance to crash in game.
2) Normally you should check if the unit is not KOed first.
3) I don't see why it wouldn't work but... why would you do that in the first place? Normally when you have a clean and working structure you keep it... Every event needs a starting Event Condition to run itself anyway.

Btw, I made that page. I doubt I linked it before: http://www.ffhacktics.com/wiki/Event_Conditions
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

formerdeathcorps

2) That's true, but usually those checks exist in assassination battles.  You don't need to check if the boss was KO'd, since that would have already ended the battle.  Nor would the boss' early death trigger a flood of text because all the conversation between enemy bosses and Ramza usually depend on additional conditions (to prevent repeats and certain events from happening early).

QuoteThe scenario pointers are at 0x00014938 (this is the zero for all pointers).
Those point to the instruction pointers that start at 0x00014A5A

Checking ATTACK.OUT starting from x14938, all I see is an increasing sequence of numbers in hex:
XX01YY01...ZZ02...
where bytes XX, YY, and ZZ are multiples of 4.

Checking ATTACK.OUT starting at x14A5A, all I see is a similarly increasing sequence of numbers, this time separated by zeroes:
XX0700YY0700...ZZ1800...

Although I can use your spreadsheet and override such numbers properly, what exactly do these numbers mean?  How exactly does each number correspond to the conditionals that I'm revising?
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

Xifanie

The first table sets the limit of each block and the second table sets the limit for each instruction individually. That means you can't replace a 8 bytes instruction with two 4 bytes instructions without changing the pointers. The pointers are 4 bytes values (integers/words) with an absolute position with 0x14938 as the absolute 0.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful