Anonymous

Changes

From Final Fantasy Inside

FF7/Field/Script/Opcodes/C2 LADER

1,162 bytes added, 05:18, 23 May 2019
m
6 revisions imported
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse;"
! width="40" | 0xC2
! width="4050" | ''0B1 / B2''! width="4050" | ''0B3 / B4''! width="4080" | ''X''! width="4080" | ''Y''! width="4080" | ''Z''! width="4080" | ''I''
! width="40" | ''K''
! width="40" | ''A''
==== Arguments ====
* '''const UShortBit[4]''' ''0B1'': ZeroBank to retrieve X-coordinate, or zero if ''X'' is specified as a literal value. Has an unusual effect on co* '''const Bit[4]''' ''B2'': Bank to retrieve Y-ordinates coordinate, or zero if non''Y'' is specified as a literal value.* '''const Bit[4]''' ''B3'': Bank to retrieve Z-coordinate, or zero if ''Z'' is specified as a literal value.* '''const Bit[4]''' ''B4'': Bank to retrieve ID, or zeroif ''I'' is specified as a literal value.* '''const Short''' ''X'': X-coordinate of the end of the ladder, or address to find X-coordinate if ''B1'' is non-zero.* '''const Short''' ''Y'': Y-coordinate of the end of the ladder, or address to find Y-coordinate if ''B2'' is non-zero.* '''const Short''' ''Z'': Z-coordinate of the end of the ladder, or address to find Z-coordinate if ''B3'' is non-zero.* '''const UShort''' ''I'': ID of the walkmesh triangle found at the end of the ladder, or address to find ID if ''B4'' is non-zero.
* '''const UByte''' ''K'': The keys used to move the character on the ladder.
* '''const UByte''' ''A'': Animation ID for the field object's movement animation.
Causes the character to climb a ladder; that is, switching from standard walkmesh movement, to climbing along a line connecting two points on the walkmesh.
 
If ''B1'', ''B2'', ''B3'' or ''B4'' is non-zero, then the value for that particular component is taken from memory using the corresponding bank and address specified, rather than as a literal value. Both retrieved values and literals can be used for different components. If using ''X'', ''Y'', ''Z'' or ''I'' as addresses, the lower byte should hold the address whilst the higher byte should be zero.
The coordinates specify the end-point of the ladder; the current position of the character is used as the start point. The ID of the walkmesh triangle must be specified; this is the triangle the character will step onto after reaching the end point of the ladder. The '''K''' value specifies the keys used to move the character across the ladder; keys outside the range found in the table will cause unpredictable behaviour. The animation ID specifies an offset into the field object's animation list; this animation is played at the speed specified by '''S''' whilst the character climbs. Finally, the '''D''' argument is a direction value in the game's standard direction format, which orients the character on the ladder.
 
=== Notes ===
This opcode is used as part of the character's entity, rather than in a seperate entity, as with a [[FF7/Field/Script/Opcodes/D0 LINE|LINE]]. A LINE is used to set the start point of the ladder on the walkmesh. When this LINE is crossed by the player, a script in the LINE then uses a [[FF7/Field/Script/Opcodes/04 PREQ|PREQ]] (or one of its variants), calling the script in the party leader that defines the LADER, causing the character to switch to 'climbing mode'.
To set up a two-way ladder, two LINEs are used at either end, with different values for the LADER arguments, such as differing end points.
 
If this opcode is used as part of a non-playable character entity, the NPC object will automatically climb from the start to the end point without need for player interaction.
==== Key IDs ====