• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 05:29:22 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


A few questions on Editing with EasyVent

Started by 3lric, September 24, 2011, 03:20:35 am

3lric

September 24, 2011, 03:20:35 am Last Edit: October 17, 2013, 06:42:53 pm by Elric
Im not sure if its ok to post all this here but if not ill remove it if need be
Ok so im working on my first mod and ive run into a few snags on my first event,
most of it was copied right from the first event of the game. (the opening camera views
and i used the sprite move for agrias on one of the characters) ill leave the messages out
since they arent really relavent since im not having an issue with them,

Issue 1:When i teleport in then warp character and use unitanim on 1B, it seems
random weither the character for 1B actually appears or not and it seems sometimes
to depend on how fast i hit the button to skip the text before it but i just dont know

Issue 2: Probably one of the most annoying, i want my dialogue boxes to actually be above the
character when they talk as they should be, but for some reason i cant seem to get to coordinates
correct and yet the ones for character 1B are right where they should be, im very puzzled by this

Issue 3:okay the one ive been working on the longest, near the end after the talking is done, both characters
are suppose to run toward each other (after which there would be an attack animation and character
32 would be teleported away before being struck, yet for some reason when i setup character 32
with walkto, he goes in the wrong direction and i cant get spritemove generator to work correctly
i add the numbers right according to the directions but when i tell it to export to my event the numbers are in the
thousands and no matter what i set it to i cant get it right.. why cant i just use the walk to?

i very much appreciate anyone who takes the time to help me with my issues, im really enjoying editing
the game and would like to know how to solve these snags for future reference as well  :)

QuoteOffset(x00004000)
//Remove the previous line if you wish not to override the offset in CONFIG.INI.
Text(x000008F9)
//Remove the previous line if you wish text to compile directly after instructions.

{7C}()
LoadEVTCHR(x01,x00,x00)
WaitForInstruction(x34,x00)
SaveEVTCHR(x01)
{6D}(r0000)

UnitPresent(x1B,x00,x01)
UnitPresent(x32,x00,x01)
ColorUnit(x13,x00,x04,-001,-001,-001,000)
Wait(00002)
UnitAnim(x32,x00,x1A,x00,x00)
Camera(+02040,-00572,+00488,+00750,+03074,+00000,+08192,+00001)
WaitForInstruction(x04,x00)
Background(000,000,000,000,000,000,000,x00)
{4D}(r80)
ColorField(x04,-004,-004,-004,000)
ColorUnit(x00,x00,x04,-008,-008,-006,000)
{63}(rA8)
{1D}()
Camera(+01528,-00364,+00488,+00510,+03074,+00000,+05952,+00260)
Camera(+01448,-00328,+00488,+00350,+03202,+00000,+04128,+00080)
Camera(+01256,-00328,+00488,+00334,+03314,+00000,+04032,+00068)
Camera(+01000,-00280,+00496,+00318,+03442,+00000,+03808,+00056)
Camera(+00872,-00220,+00500,+00308,+03552,+00000,+04096,+00032)
Camera(+00840,-00220,+00504,+00302,+03584,+00000,+04096,+00048)
{1E}()
{49}()
AddUnitStart()
Wait(00180)
{1A}(r04141F1F04)
DisplayMessage(x10,x09,x0001,x34,x00,x00,+00000,+00060,+00000,x00)
Wait(00086)
{1A}(r0400000004)
Wait(00184)
WaitForInstruction(x04,x00)
Camera(+00440,-00204,+00600,+00302,+04608,+00000,+04096,+00064)
WaitForInstruction(x01,x00)
Wait(00100)
UnitAnim(x32,x00,x35,x00,x00)
ColorUnit(x00,x00,x04,+000,+000,+000,004)
ColorField(x04,+000,+000,+000,004)
Wait(00150)

DisplayMessage(x10,x12,x0002,x32,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
Wait(00150)
UnitAnim(x32,x00,x08,x00,x00)
UnitAnim(x1B,x00,x5A,x32,x01)
Wait(00030)

DisplayMessage(x10,x12,x0003,x32,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
RotateUnit(x32,x00,x05,x00,x00,000)
Wait(00100)
UnitAnim(x32,x00,x04,x00,x00)
SpriteMove(x32,x00,-00012,-00002,+00001,x00,x01,+00008)
WaitSpriteMove(x32,x00)
SpriteMove(x32,x00,-00025,+00000,+00002,x00,x01,+00008)
WaitSpriteMove(x32,x00)
SpriteMove(x32,x00,-00039,-00002,+00003,x00,x01,+00007)
WaitSpriteMove(x32,x00)
SpriteMove(x32,x00,-00054,+00000,+00004,x00,x01,+00007)
WaitSpriteMove(x32,x00)
SpriteMove(x32,x00,-00070,-00003,+00006,x00,x01,+00006)
WaitSpriteMove(x32,x00)
SpriteMove(x32,x00,-00086,+00000,+00008,x00,x01,+00006)
WaitSpriteMove(x32,x00)
RotateUnit(x02,x00,x04,x00,x01,000)
SpriteMove(x32,x00,-00102,-00003,+00009,x00,x01,+00006)
WaitSpriteMove(x32,x00)
SpriteMove(x32,x00,-00118,+00000,+00010,x00,x01,+00006)
WaitSpriteMove(x32,x00)
ColorUnit(x32,x00,x01,+000,+000,+000,002)
SpriteMove(x32,x00,-00134,-00004,+00010,x00,x01,+00006)
WaitSpriteMove(x32,x00)
UnitAnim(x32,x00,x06,x00,x00)
DisplayMessage(x10,x10,x0004,x1B,x00,x00,+00260,+00000,+00000,x03)
Wait(00100)

TeleportIn(x1B,x00)
WarpUnit(x1B,x00,008,004,x00,x01)
UnitAnim(x1B,x00,x0B,x00,x00)

Wait(00300)
RotateUnit(x32,x00,x0D,x00,x00,000)
Wait(00150)
DisplayMessage(x10,x12,x0005,x32,x00,x00,-00400,+00000,+00050,x03)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x12,x0006,x1B,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x12,x0007,x32,x00,x00,-00400,+00000,+00050,x03)
WaitForInstruction(x01,x00)
DisplayMessage(x10,x12,x0008,x1B,x00,x00,+00000,+00000,+00000,x03)
WaitForInstruction(x01,x00)
UnitAnim(x1B,x00,x06,x00,x00)
DisplayMessage(x10,x12,x0009,x32,x00,x00,-00400,+00000,+00050,x03)
WaitForInstruction(x01,x00)
UnitAnim(x32,x00,x06,x00,x00)
SpriteMove(x32,x00,+00010,+00005,+00002,x00,x01,+00008)
UnitAnim(x1B,x00,x06,x00,x00)
WalkTo(x1B,x00,+004,+004,x00,x00,+032,x01)
Wait(00300)
AddUnitEnd()
EventEnd()
  • Modding version: PSX

RavenOfRazgriz

Issue 1:  Sounds like you just need Wait() or WaitForInstruction() commands.  WarpUnit() is something for moving characters around before you draw them, or when you can mask it behind an effect.  You're warping and animating at the same time, which is why the sprite is disappearing.  Toss a wait command in between the WarpUnit() and the UnitAnim() and see if it works.

Issue 2:  X/Y for Dialogue Boxes is very weird.  I actually think up and left are the negative values, and down and right are the positive ones.  I could be mistaken, but I know it's not what you'd expect it to be.

Issue 3:  If you read the actual Help File for SpriteMove, you'd know that the instructions are in signed halfwords, which range from -32768 to +32768 with pixel-precision, and the length of the command is always going to be 5.  If you move 1 panel, it'll be 28 pixels, or +00028.  I've heard some of the maps on the front page (where I got those images from) also may have the X/Y backwards, so if you're getting a backwards result, just flip the X and Y around and see what changes.  Also remember that SpriteMove() and WalkTo() are both based on current location and not absolute location.  If you're at X=7 and want to WalkTo() or SpriteMove() to X=8, you only want to walk 1 positive X panel, not 8.  (There are other commands like Camera() that use absolute location, so it's easy to get mixed up.  The ones that use relative and absolute locations should be clearly labeled if you read the help windows, though.)

3lric

thank you very much Raven, im going to try all of that here in a few minutes, im thinking that my problem is that i didnt realize that walkto were on current location, that explains why he would run backwards, thank you very much
  • Modding version: PSX

3lric

ok so adding a wait before the unitanim worked perfectly i cant believe i didnt think of that before

i have read the directions in the sprite move command generator but when i try to move my char 1 panel which should be +00112
rather when i setup the whole thing he does move right, he just seems to never stop moving he will go past the destination and just
keep going, kinda funny but not really what im looking to do
  • Modding version: PSX

RavenOfRazgriz

1 Panel on SpriteMove should be +00028.  Either you're using an old version of EasyVent, the Generator's bugged despite me testing it and finding the bug removed, or you're doing it by hand and I forgot to update the help file.

Change your command to +00028 and it should work.  +00112 is what you'd use to move one panel using Camera() because it has 4x precision.

3lric

well im using version 1.7 it says 28 pixels or +00112 so ill keep in mind that it should be +00028 per panel then?
  • Modding version: PSX

RavenOfRazgriz

I must have overwritten the updated Notepad with an older one after I fixed it at some point.  Ugh.

Yes, a panel on SpriteMove() is equal to +00028, and that's what the Generator /should/ output regardless of the Help File unless my fix to that somehow got lost too.

I'll need to work on 1.8 sooner than I thought, then.  In the meanwhile, you can update your own Help File by going into Help Files -> 3B SpriteMove.txt and editing it from +00112 to +00028 if you want to help yourself avoid making this mistake in the future.

3lric

  • Modding version: PSX