Final Fantasy Hacktics

Modding => Tutorials and Learning => Topic started by: Xifanie on June 22, 2010, 11:20:46 am

Title: How to reassign event slots
Post by: Xifanie on June 22, 2010, 11:20:46 am
MESSING WITH EVENTS

º World Instructions
Allows to loads scenario slots, as editable in the ATTACK.OUT Editor.
For example this world instruction at Murond Holy Place:
0100 6E00 3400  1900 B901 0200If Value (0x0001) "Storyline progression" (0x006E) is equal to 0x0034, load scenario (0x0019) 0x01B9.



º ATTACK.OUT Editor

Here the value "Event Script" in version 1.02 & older or "Event Conditions" in earlier version allows you
to set a slot which you can edit in the "Event Conditions spreadsheet"


º Event Conditions
This actually tells which TEST.EVT slot to load under specific circumstances, AND the main event slot.
For Example here is slot 0x0084 which is originally used by "Outside of St. Murond Temple":
0100 FD01 0100  1900 BC01If Value (0x0001) 0x01FD is equal to 0x0001, then load TEST.EVT slot (0x0019) 0x01BC

0100 8000 0000  1600  1900 BD01If Value (0x0001) 0x0080 is equal to 0x0000, and If All enemies are defeated (0x0016) then load TEST.EVT (0x0019) slot 0x01BD


0x01FD is set to 0 after the event is loaded so that it does not repeat itself.


º TEST.EVT
The actual events. Just use the Event Compiler/Decompiler.
If for instance the Decompiler did not create a file for the TEST.EVT slot you want to edit,
just copy another event and change the offset. Like if you want the slot 0x0009, take 0x0008's offset,
add 0x2000 and voilà. Offset(x00010000) + 0x2000 = Offset(x00012000)
Save and compile that event.


To be honest, I wrote this pretty much for myself because I had discovered the procedure but completely forgot how to... it's not actually that easy to remember when you have to mess with 4 different locations in 3 different files.
Title: Re: How to reassign event slots
Post by: Xifanie on June 22, 2010, 01:20:45 pm
The TEST.EVT "dummy events" like we used to call them seems to be completely useless at best, meaning we have no reason not to overwrite them with actual real events.

EDIT: Like LD said, each event still requires one scenario slot.
Title: Re: How to reassign event slots
Post by: Xifanie on August 03, 2010, 10:22:10 pm
Example of the links between everything

WORLD INSTRUCTIONS

[attachment=2:3s3jjn3g]event_tut1.png[/attachment:3s3jjn3g]
Bervenia Free City
0100 6E00 2A00  1900 4F01 0100
If Value (0x0001) 0x006E (Story Progression) = 0x002A
> Load Scenario (0x0019) 0x014F; 0x0001 (?)


ATTACK.OUT

[attachment=1:3s3jjn3g]event_tut2.png[/attachment:3s3jjn3g]
Event Condition = 0x6A


EVENT CONDITIONS

[attachment=0:3s3jjn3g]event_tut3.png[/attachment:3s3jjn3g]
Notes:
Unit 0x002F = Miluda
Unit 0x0003 = Ch4 Ramza

0100 FD01 0100  1900 5001If Value (0x0001) 0x01FD = 0x0001
> Load Event (0x0019) 0x0150 Bervenia Free City (Meliadoul Battle)
Note: This is always used as the first intruction and it will always point to the starting event.

0100 7D00 0000  0100 8000 0000  0400 2F00  0800 2F00 5000  0B00 0300  0500 2F00 0100  0500 0300 0100  1900 5101
If Value (0x0001) 0x007D = 0x0000
If Value (0x0001) 0x0080 = 0x0000
If Unit is present (0x0004) 0x002F
If Unit's maximal HP amount for (0x0008) 0x002F is at most 80% (0x0050)
If Unit achieves AT (0x000B) 0x0003
If Unit's minimal HP amount for (0x0005) 0x002F is at least 1% (0x0001)
If Unit's minimal HP amount for (0x0005) 0x0003 is at least 1% (0x0001)
> Load Event (0x0019) 0x0151 Bervenia Free City (Meliadoul and Ramza talk first part)

0100 7D00 0100  0100 7E00 0000  0100 8000 0000  0400 2F00  0800 2F00 3200  0B00 2F00  0500 2F00 0100  1900 5201If Value (0x0001) 0x007D = 0x0001
If Value (0x0001) 0x007E = 0x0000
If Value (0x0001) 0x0080 = 0x0000
If Unit is present (0x0004) 0x002F
If Unit's maximal HP amount for (0x0008) 0x002F is at most 50% (0x0032)
If Unit achieves AT (0x000B) 0x002F
If Unit's minimal HP amount for (0x0005) 0x002F is at least 1% (0x0001)
> Load Event (0x0019) 0x0152 Bervenia Free City (Meliadoul and Ramza talk second part)

0100 7E00 0100  0100 7F00 0000  0100 8000 0000  0400 2F00  0800 2F00 3200  0B00 0300  0500 2F00 0100  0500 0300 0100  1900 5301If Value (0x0001) 0x007E = 0x0001
If Value (0x0001) 0x007F = 0x0000
If Value (0x0001) 0x0080 = 0x0000
If Unit is present (0x0004) 0x002F
If Unit's maximal HP amount for (0x0008) 0x002F is at most 50% (0x0032)
If Unit achieves AT (0x000B) 0x0003
If Unit's minimal HP amount for (0x0005) 0x002F is at least 1% (0x0001)
If Unit's minimal HP amount for (0x0005) 0x0003 is at least 1% (0x0001)
> Load Event (0x0019) 0x0153 Bervenia Free City (Meliadoul and Ramza talk third part)


0100 8000 0000  0800 2F00 0F00  1900 5401If Value (0x0001) 0x0080 = 0x0000
If Unit's maximal HP amount for (0x0008) 0x002F is at most 15% (0x000F)
> Load Event (0x0019) 0x0154 Bervenia Free City (Victory)
Title: Re: How to reassign event slots
Post by: Pride on October 27, 2010, 06:13:40 pm
Quote from: "Zodiac"º World Instructions
Allows to loads scenario slots, as editable in the ATTACK.OUT Editor.
For example this world instruction at Murond Holy Place:
0100 6E00 3400  1900 B901 0200If Value (0x0001) "Storyline progression" (0x006E) is equal to 0x0034, load scenario (0x0019) 0x01B9.

I know I'm going to sound like a fool but where does the value 0x0034 come from? I understand the rest of it (sort of) but I can't figure out where that comes from.
Title: Re: How to reassign event slots
Post by: Xifanie on October 27, 2010, 06:31:46 pm
0100 6E00 3400  1900 B901 0200

Value 0x006E is the storyline progression.
After nearly every story event, this value is increased by 1 in the vanilla version of the game.

Which means: "When player has reached X point in the game"
Title: Re: How to reassign event slots
Post by: Pride on October 27, 2010, 09:29:43 pm
Ha! With a bit of logic I should have figured that out but didn't :P Thank you.
Title: Re: How to reassign event slots
Post by: alonerfeumuno on January 21, 2023, 04:33:29 am
Guys, sorry to bother you in a old topic
i m looking for any video tutorial about how Attack.Out works...