• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

EasyVent Editor Super Perfect v1.91 BugFix [King Needed a Band-Aid.]

Started by RavenOfRazgriz, September 05, 2011, 07:57:43 pm

Eternal

  • Modding version: PSX & WotL
"You, no less human than we? Ha! Now there's a beastly thought. You've been less than we from the moment your baseborn father fell upon your mother in whatever gutter saw you sired! You've been chattel since you came into the world drenched in common blood!"
  • Discord username: eternal248#1817

3lric

  • Modding version: PSX

RavenOfRazgriz

While the command isn't even present on EVSP's dropdown, I'm leaving this here so people know of it and for if/when I get to retrieving this program's source code and updating it again:

{B1}(xVARI,x0018)

Usually preceded by ZERO(xVARI) and always one of the last commands in every event its used in, this command is what is used to make a Conditional Event Statement, along with formatting your final dialogue box like:

//Message x06
{font:08}{Ramza}{font:00}{br}
{FB} 1. Our duty is to destroy the Death Corps.{br}
2. Saving him is our priority.{FC}{close}{end}

From what I can surmise, the specifics of how this command works is to do nothing to VARI if you choose Option 1, and add 1 to VARI if you choose Option 2.  I don't know if or how this would work with 3 or more options, however, and don't care enough to test.

Glain

{B1} is usually preceded by ZERO(xVARI), right? If {B1} is followed by ZERO, you'd put the choice into xVARI and immediately throw it away by overwriting it with zero.

If I had to guess at how it worked, I'd say it would always do xVARI = xVARI + choice, where choice starts at 0, so the first option would be 0, second 1, third 2, etc. Pure conjecture, of course, but it seems like the simplest way.
  • Modding version: Other/Unknown


RavenOfRazgriz

Good news everybody!

Xifanie found a limbo 1.8-1.9 release source code I had given her a long time ago, back when she was considering coding an Event Compiler and Decompiler directly into EVSP.  The good news is that this means I can get back to working on this at some point.  The bad news is that it'll still take some work because I'll need to recreate everything I did for 1.9 and 1.91, for the most part, and I may end up having to recode a bunch of badly coded sections depending how far along to 1.9 this version is.  (I've not looked yet.)

Rejoice in our small victory.

Jon

I found a bug maybe:

Focus(x0,x00,x05,x00,x00)

notice that the first "x0" should be "x05", however Easyvent doesn't see any error and compiles normally.
There ain't no gettin' offa this train we on!

Xifanie

That's not a bug, it's just how the compiler works. Try typing the 5 next time?
  • 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

Jon

I found something that is incomplete but pretty easy to fill, the Sound commands. Many of them have ????? after them, but thanks to Elric's video http://www.youtube.com/watch?v=p64EZiyFQHk they should be easy enough to figure out. I can identify them if you want because I was looking into that anyways.

Another thing with the drop down bug, I found that if you have a command shown, doesn't matter which one, and then you click on the little down arrow and hold the click, the drop down will appear. If you move the mouse pointer outside of this field and let go, it won't make the error. Just thought this might be useful.

Edit: I don't know if this is where I'm supposed to post all this stuff, so forgive me if its wrong. I found out what the command {60}(r0000) does. If you change the (r0000) stuff to something like (r001E) for example it kills the music. This command changes what the music does. I obviously haven't tested all the commands yet but there's one, you can list "kills music" if you want, since killing the music is pretty important in events. :mrgreen:
There ain't no gettin' offa this train we on!

3lric

Thanks to Xif:

{60}(r003C) - This command makes the music fade out at the end of an event, 3C is the time variable

Also worth noting

You can make dialogue boxes close on their own by using {close} instead of {end}, and putting a delay infront of it with a space afterwards
Example: {delay40} {close}

EDIT: Didn't notice Jon had already notes this :P
  • Modding version: PSX

3lric

Updated this post with everything notable since 1.91 was released. This should be all the updates to be included in the next version.
If that ever happens.

{1C}(r01)

This seems to control the speed at which an event plays, but maybe not the actual speed, but something about it changes
(hard to explain, you would have to see for yourself).

When a effect in a event plays, primarily a Lucavi or Stone effect, it has {1C}(r02) inside of the effect which is what slows down
the effect to look proper in a event. Without this command the effect plays to fast and produces unwanted sounds and effects.

In theory, placing a {1C}(r01) after that effect is over should make the event speed return to normal but the example I
learned from was a event in which this did not happen, specifically Quiklein transforming. Since it is only talking and fade out after that.

More testing is needed on this command.

By Pride: Text error: ColorField(xID,+RED,+GRN,+BLU,TIM)

ID = Unit ID
Target Unit's ID in ENTD

xID should be the Preset Color ID
Instead of setting RGB values, you can pick any of the preset colors:
x01 : Night
x02 : Grayscale
x04 : Original palette?
x08 : Original palette?
x10 : Completely Blue
x20 : Completely Blue
x40 : Completely Blue
x80 : Completely Blue

This still says that you must add 4x the correct amount per panel

they should be 28 per panel for X/Y

And AFAIK it's 12 per panel for Z

{3E} An example of which would be  {3E}(r02000000FFFFFF3C00)
This command is FADE. It is used to make the map fade out during cut-scenes by using
black (FFFFFF) and the Speed is controlled by the 3C after the color and can be adjusted
to be faster or slower at the Eventers preference.

Not only can this fade out to black, but with certain argument to the command you can make this
(instead of black) use primary or secondary colors instead with these arguments
r00   -   R,G,B
r01   -   R,G,B
r02   -   G,P,Y
r03   -   R,G,B
r04   -   R,G,B
r05   -   R,G,B
r06   -   G,P,Y
r07   -   R,G,B
r08   -   R,G,B
r09   -   R,G,B
r0A   -   G,P,Y
r0B   -   R,G,B
r0C   -   R,G,B
r0D   -   R,G,B
r0E   -   G,P,Y
r0F   -   R,G,B
r10   -   R,G,B
r11   -   R,G,B
r12   -   G,P,Y

NOTE: You would still need to adjust the FFFFFF to be the correct color.


EVSP: "Calls Portrait from WLDFACE.BIN when combined with DisplayMessage."

This is actually incorrect, this loads the Portraits from the EVTFACE.BIN rather then the WLDFACE.BIN
(EVTFACE.BIN can be edited in the Japanese version of FFTEVGRP)

ChangeDialog(xDD,xMSG#,xPR,x00)

DD = Dialogue Box ID.
Starts at x01, IDs based on age of oldest currently-existing dialogue box.

This is incorrect, x01 controls dialogue using x91 and x02 controls x92

Thanks to Xif:

{60}(r003C) - This command makes the music fade out at the end of an event, 3C is the time variable

Also worth noting

You can make dialogue boxes close on their own by using {close} instead of {end}, and putting a delay infront of it with a space afterwards
Example: {delay40} {close}

{68}(xID,x00,xMI)
Used to turn on/off the vertical flipping of frames for a specified unit
   xID   Unit ID
   x00   Always 00
   xMI   x01 = Mirror Frames (normal and EVTCHR!)

{7F} An example of which would be {7F}(r80000002) has to do with EVTCHR palette color.
In this instance UNIT 80 would use palette 02 (they start at 0, so 2 would actually be the third sheet)
(For anyone confused on this, download EVTCHR Viewer, then open a EVTCHR and you will see ~ 5-10
sheets for every EVTCHR which all represent different palettes and need to be edited separately.)
*Thanx to Kokojo for helping me figure this one out*

The command {7F} that i mentioned before actually works a bit different then i originally thought.

Example:
If you want to make Unit 20 be the second palette of a EVTCHR loaded into RAM Block 1 you would use:
{7F}(r20000001)

If you want to make Unit 20 be the second palette of a EVTCHR loaded into RAM Block 2 you would use:
{7F}(r20000101)

A thing to note, if your character shares the same palette as one of the EVTCHR palettes then these commands are not needed, this is only
for when you are calling a EVTCHR that doesnt share the same palette as the sprite its being called on.

This should be labeled more clearly, as it is it makes it seem like
AA is used for all allies.



{8C}(xID,x00,xDR,xSQ,xEV,x00)
Seems to perform a more simple version of UnitAnim paired with the ability to change the facing direction
   xID   Unit ID
   x00   Always 00
   xDR   Direction (see RotateUnit?)
         00   South
         01   South
         02   West
         03   West
         04   West
         05   West
         06   North
         07   North
         08   North
         09   North
         0A   East
         0B   East
         0C   East
         0D   East
         0E   South
         0F   South
   xSQ   SEQ ID (see UnitAnim)
   xEV   EVTCHR Frame (see UnitAnim)
   x00   Always 00

InflictStatus(xID,x00,xSS,x0C,00)

Should be

InflictStatus(xID,x00,xSS,x0C,x00)

MORE Inflict Status:
SS = Status ID
x02: Poison
Not entirely correct, this actually causes both Critical and Poison

By Raven: While the command isn't even present on EVSP's dropdown, I'm leaving this here so people know of it and for if/when I get to retrieving this program's source code and updating it again:
{B1}(xVARI,x0018)

Usually preceded by ZERO(xVARI) and always one of the last commands in every event its used in, this command is what is used to make a Conditional Event Statement, along with formatting your final dialogue box like:

//Message x06
{font:08}{Ramza}{font:00}{br}
{FB} 1. Our duty is to destroy the Death Corps.{br}
2. Saving him is our priority.{FC}{close}{end}

By Xiffy: From what I can surmise, the specifics of how this command works is to do nothing to VARI if you choose Option 1, and add 1 to VARI if you choose Option 2.  I don't know if or how this would work with 3 or more options, however, and don't care enough to test.

Typo

When trying to replace Ramza with {Ramza} using replace now! It doesnt work quite right,
if i continue to hit the button it makes the same one gain more brackets example {{{Ramza}}}
Maybe you should add a Exact Phrase/Word Option?
  • Modding version: PSX

Neophyte Ronin

You know what else could be added?  Text line length indication.

Here's the deal: when I'm typing dialog, I understand there are finite limits to how many pixels worth of characters can be displayed before something scrolls off-screen or freezes things up.  Now, in TactText, there are indicators, the max limit of which appears (in original Tactics at least) to be 220.  I live by this number and tinker the message until everything lines up.  In other words, everything in TactText has been systematically rewritten for clarity and also to tailor Dome's Tactics Plus and, perhaps in the future, my own patch.

Now, here's the issue: EasyVent lacks this functionality.

It can become something difficult to piecemeal-fashion (read, Copy-Pasta) all the lines of dialogue back and forth to ensure everything will fit and work the way you want it.  It's pretty much just another step that I have realized I must endure, after realizing portions of the game text are in one program but not the other.

Of course, given that I have both programs as a result of a package, I can deal.  If, however, there was something I was missing as a result of either narrow vision or programming impossibility, just turn your head the other way.  Even though that may be the case, the fact that I got to rip apart the original Tactics script and make it interesting or at least palatable again will provide testament to this program's capabilities.

3lric

Raven is already well aware of this, but just so it doesn't get lose and forgotten I'm posting this here
for when/if ever EVSP 2.0 comes out.

Don't forgot to fix these victory events that are not correct in EVSP:

EVT_036_024 Dorter Trade City1 (Victory)
EVT_152_098 Bariaus Hill (Victory)
EVT_334_14E Doguola Pass (Victory)
EVT_343_157 Finath River (Victory)
EVT_445_1BD St. Murond Temple (Victory)
EVT_470_1D6 Coillery Underground - Third Floor (Victory)
EVT_473_1D9 Coillery Underground - Second Floor (Victory)
EVT_476_1DC Coillery Underground - First Floor (Victory)
EVT_481_1E1 Underground Passage in Goland (Victory)
EVT_487_1E7 Nelveska Temple (Victory)

Anyone needing access to these events for editing purposes can download them HERE

EDIT: Updated broken link. 9-28-18
  • Modding version: PSX

JantheX

Hey, not sure exactly how to implement your download.  If I go into the Final Fantasy Tactics [Complete] Event Director folder and replace the existing files with your attached ones, will EasyVent work properly when editing those levels?

3lric

My above note was directed specifically at Raven, all you would do is rename them to the correct name based on the event and put it in the same EVSP folder that contains the events, overwriting the one currently in the folder with this one, which will fix the issues in the versions of these events current used in EVSP. So yes if you are editing the FFTComplete events (for some ungodly reason) you would put them in that folder, or the normal events folder if you were just editing vanilla events.

Also, just another note for Raven

RAVEN, I think in the desert fight against Balk, the battle event needs to be fixed as well, IIRC
  • Modding version: PSX

Emmy

Quote from: Elric on November 04, 2014, 06:51:26 pm
My above note was directed specifically at Raven, all you would do is rename them to the correct name based on the event and put it in the same EVSP folder that contains the events, overwriting the one currently in the folder with this one, which will fix the issues in the versions of these events current used in EVSP. So yes if you are editing the FFTComplete events (for some ungodly reason) you would put them in that folder, or the normal events folder if you were just editing vanilla events.

Also, just another note for Raven

RAVEN, I think in the desert fight against Balk, the battle event needs to be fixed as well, IIRC


I can confirm that the issue with the Balk event is that it's missing a good piece of the text on the bottom.  Which is why if you use that event to edit, it'll freeze midway through.  For those who are having this issue editing this event, replace the bottom text section with this:

//INSTRUCTION SECTION END -  TEXT START
//Message x01
{font:08}Balk{br}
{font:00}...They're all spread?{br}
{br}
Nice wind. Should be enough{br}
to float them around in{br}
the air for most of the day.{end}

//Message x02
{font:08}Balk{br}
{font:00}Uh{D11D}oh...Didn't think I'd{br}
see you here...{end}

//Message x03
{font:08}{Ramza}{br}
{font:00}What are the Shrine Knights{br}
doing here?{br}
You said, "spread"...{br}
What the hell did you spread?{end}

//Message x04
{font:08}Balk{br}
{font:00}Wanna know...?{br}
{br}
I guess I can tell you{br}
because there's nothing{br}
you can do now.{end}

//Message x05
{font:08}{Ramza}{br}
{font:00}Spill it!{br}
What did you spread?{end}

//Message x06
{font:08}Balk{br}
{font:00}This!{end}

//Message x07
{font:08}{Ramza}{br}
{font:00}Poison!?{end}

//Message x08
{font:08}Balk{br}
{font:00}That's right. I spread this{br}
to the Hokuten Province.   {br}
Any soldier who inhales this{br}
will be too sick to fight!{end}

//Message x09
{font:08}{Ramza}{br}
{font:00}The High Priest doesn't want{br}
Goltana to win the war!{end}

//Message x0A
{font:08}Balk{br}
{font:00}That's correct.{br}
{br}
If the Hokuten can't fight{br}
their best, the Nanten will{br}
open the fortress...{br}
Totally annihilating it.{br}
Making it a good chance to{br}
kill Goltana and Orlandu.   {br}
Of course, plans are set to{br}
kill Larg in the confusion.{br}
{br}
It'll probably be easier to{br}
kill him in the confusion{br}
over the poisoning.{end}

//Message x0B
{font:08}{Ramza}{br}
{font:00}What!?{end}

//Message x0C
{font:08}Balk{br}
{font:00}You should be happy!{br}
The war will end!{br}
From now on, we'll be the{br}
center of authority! The{br}
people want that!{br}
No more of you aristocrats{br}
ruling the kingdom.{end}

//Message x0D
{font:08}{Ramza}{br}
{font:00}I won't let that happen!{br}
I'll end the war differently!{end}

//Message x0E
{font:08}Balk{br}
{font:00}I knew you'd say that!{end}

//Message x0F
  • Modding version: PSX

Tails_Doll_Prower

Gets the Program-
Opens the program-
Looks threw files of the game-
Sees all these Encoding-
Me: What the freak, am I suppose to do. -Change some things and done and Screw up the Characters and, make it like Chaos Mario- Yup that just happened!

3lric

  • Modding version: PSX

Drunkard

Yeah, just get in there and start fiddling with things little by little and and see what it does lol

Boco

I'd like to pop in and thank Raven and everyone else that worked on this. I used EasyVent to edit the Orbonne Prayer event to get rid of two UnitAnims on Ladd, because they were messing up the custom sprite I gave him and I didn't have any brains to figure out why. Worked like a charm. It makes the text "So there are rude knaves even among the Order" or whatever the translation is even funnier when he doesn't bow down. :lol: