@paky-outsider: No, they are mostly done for the PC version and even for the PC version that is modded with the Memoria Engine Mod.
These 3 points apply to the PSX version as well, but that's pretty much it.
- Fix "ObjectUID_" in scripts so they adapt if you add or remove entries.
- Add a copy/paste feature for texts. Only enemy, world map and field texts can use this feature.
- Add a couple of interface improvements (mainly some more IDs are displayed).
@g_west: These are handled by the field scripts (in "Environment -> Fields -> Edit Script" windows).
The functions that are relevant to this side-quest are mostly those:
1) Picking up the Red Stone: Field Mountain Path/Trail (1550), Function Zidane_48
2) Picking up the Blue Stone: Field Mountain Path/Trail (1551), Function Zidane_15
3) Picking up the Yellow Stone: Field Mountain Path/Roots (1555), Function Zidane_22
4) Picking up the Green Stone: Field Mountain Path/Roots (1557), Function Zidane_14
5) Placing all the stones: Field Mountain Path/Roots (1554), Function Zidane_16
The picking-up functions all look roughly the same. Something like that:
Function Zidane_48
TimedTurn( Angle(2000, 850), 32 )
WaitTurn( )
SetStandAnimation( 2605 ) // Crouch
RunAnimation( 2607 ) // Idle crouching
WaitAnimation( )
SetTextVariable( 0, 300 ) // "Red Stone"
WindowSync( 0, 0, 143 ) // "[Item] is set on the stone. Take it out Leave it alone"
if ( !GetDialogChoice ) {
Wait( 10 )
RunSoundCode3( 53248, 1340, 0, -128, 125 ) // Play Sound
Wait( 10 )
}
SetStandAnimation( 200 ) // Idle
RunAnimation( 2591 ) // Stand up
if ( !GetDialogChoice ) {
RunSoundCode3( 53248, 108, 0, -128, 125 ) // Play Sound
AddItem( 300, 1 ) // Add the Red Stone key item
SetTextVariable( 0, 300 ) // "Red Stone"
if ( 1 ) {
WindowSync( 7, 0, 58 ) // " Received [Item]! "
} else {
WindowSync( 7, 0, 59 ) // Unused - " Received [Item] Card! "
}
set VARL_GenBool_2864 = 1
}
WaitAnimation( )
return
So you see, by changing the ID "300" to something else, you can change the item given at these statues. It also shows how items are given to the player so you can do something similar later on on disk 3.
The function for placing the stones is a bit more complicated (in particular, it uses a variable "VARL_GenUInt8_358" with bitwise operations to keep track of which stones are already placed). It could be done to add another stone requirement (like a custom made "White Stone" or whatever) that would only be picked up in disk 3, but indeed the easiest is to change the reward in one of the pickup spot above + add the missing stone later on in disk 3.
In order to give the missing stone later on, check
how to change a chest content that I wrote a long time ago. Most of the time, you'll want to search for the "Chest" functions in field scripts or possibly the "Zidane_XX" functions when the items are placed on the floor and not inside a chest.
It is also possible to add a whole new chest, so you don't replace any other treasure. For that, you mostly need to:
1) Create a new entry in the "Edit Entries" window, of type "Object" (because it will be linked to a chest 3D object).
2) Add functions for that new entry, at least a "Init" (a function of type 0) and a "Range" (a function of type 2). Adding functions is done by right-clicking on the list of functions in the script window. These two functions should be like the functions for existing chests. The "Init" function for instance could look like that:
Function ChestA_Init
SetModel( 75, 0 ) // The model of "ChestA"
CreateObject( [COORDINATES: Chest position on the field] )
TurnInstant( [ANGLE: Chest facing angle on the field] )
SetObjectLogicalSize( 1, 40, 45 )
SetStandAnimation( 7340 ) // Dummy Close
SetWalkAnimation( 7340 ) // Dummy Close
SetRunAnimation( 7340 ) // Dummy Close
SetObjectFlags( 5 )
SetHeadFocusMask( 2, 0 )
if ( [CONDITION: Chest content already picked up] ) {
SetStandAnimation( 7338 ) // Dummy Open
} else {
SetStandAnimation( 7339 ) // Dummy Close
}
SetObjectFlags( 49 )
EnableHeadFocus( 0 )
return
3) Add a line "InitObject" next to the others in the function "Main_Init" to actually create the chest object when entering the field.
Sorry for the late answers.