The RPG Maker Resource Kit

RMRK RPG Maker Creation => VX => VX Scripts Database => Topic started by: modern algebra on March 18, 2008, 09:32:30 AM

Title: Advanced Text System 3.0c
Post by: modern algebra on March 18, 2008, 09:32:30 AM
Advanced Text System
Version: 3.0c
Author: modern algebra
Date: September 7, 2010

Version History



Description


This script allows for various complex message commands. Among the features are some that will be familiar from previous message scripts, such as Seasons in the Abyss' SMS and AMS. Others, such as the formatted text, expanded choice options, and speech tags, are completely new (as far as I know). See below for the features and command codes. The focus of this script is on customizability, which means that the script can seem daunting with all the properties and special message codes that you can use. However, whether to use these features is up to you, and it is very easy to plug in and just use the basic features that make sense for your game. Maybe all you want is appended choice branches and nameboxes ~ the basics are very easy and this script can be plug & play. But if you want to give your game that little extra something, the choice branches with subheadings, or the custom crafting scene, then that power is within this script, if you're willing to learn how.

Features


Screenshots

(http://img685.imageshack.us/img685/6292/ats3screen3.png)(http://img337.imageshack.us/img337/2339/ats3screen5.png)(http://img293.imageshack.us/img293/8809/ats3screen1.png)(http://img268.imageshack.us/img268/2575/ats3screen2.png)(http://img815.imageshack.us/img815/3623/ats3screen4.png)(http://img139.imageshack.us/img139/245/atsscreen6.png)
From Left to Right: Large Faces; Multiline Choices and Name Window; Simple Crafting system made entirely from Advanced Choice Branches of the ATS; Message Window Character positioning with Speech Tag; Tabbing and icon and underline features; Paragraph Format with Justified Text in the midst of a smooth scroll

There are lots of other features too, but screenshots for all of them would be rather tedious

Instructions


Basically: paste the script (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21376) in its own slot above Main and Below Materials in the Script Editor. If you are upgrading from ATS2, then you will also need this conversion patch (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21377). Paste it underneath the ATS3 in the Script Editor, but still above Main.

Complete instructions on what each property or code does can be found in the header of the script, from lines 149-754. But, in brief:

Special Message Codes

Special Message codes are codes placed in messages to be replaced by something specified or to achieve a special effect. An example of the former is \v[n], which, when used, is replaced by the value of Variable n. An example of the latter is \c[n], which, when used, makes all text following the colour with index n on the windowskin palette. The following, contained in the spoiler, are all the new and old special message codes that can be used in ATS3.

Spoiler for List of Special Message Codes:
  • General Codes for all Windows
    • \lb    - Line break. Go to next line
    • \v[n]  - Draw the value of the variable with ID n
    • \n[n]  - Draw the name of the actor with ID n
    • \c[n]  - Set the colour of the text being drawn to the nth colour of the Windowskin palette
    • \c[#RRGGBB] - Set the colour of the text being drawn to any colour, using hexadecimal
    • \p[n] OR \pid[n] - Draw the ID of the actor in the nth position in the party
    • \ni[n] - Draw the name of the item with ID n
    • \nw[n] - Draw the name of the weapon with ID n
    • \na[n] - Draw the name of the armor with ID n
    • \ns[n] - Draw the name of the skill with ID n
    • \nt[n] - Draw the name of the state with ID n
    • \nc[n] - Draw the name of the class with ID n
    • \ne[n] - Draw the name of the event with ID n on the current map
    • \nm[n] - Draw the name of the enemy with ID n
    • \nl[n] - Draw the name of the element with ID n
    • \nv[n] - Draw the name of the variable with ID n
    • \nsw[n] - Draw the name of the switch with ID n
    • \np[n] - Draw the name of the actor in the nth position in the party
    • \map   - Draw the name of the map the player is currently on
    • \map[n] - Draw the name of the map with ID n
    • \di[n] - Draw the description of the item with ID n
    • \dw[n] - Draw the description of the weapon with ID n
    • \da[n] - Draw the description of the armor with ID n
    • \ds[n] - Draw the description of the skill with ID n
    • \pi[n] - Draw the price of the item with ID n
    • \pw[n] - Draw the price of the weapon with ID n
    • \pa[n] - Draw the price of the armor with ID n
    • \i#[n] - Draw the number of the item with ID n that the party posesses
    • \w#[n] - Draw the number of the weapon with ID n that the party posesses
    • \a#[n] - Draw the number of the armor with ID n that the party posesses
    • \ac[n] - Draw the class of the actor with ID n
    • \i[n]  - Draw the icon with index n
    • \ii[n] - Draw the icon of the item with ID n
    • \wi[n] - Draw the icon of the weapon with ID n
    • \ai[n] - Draw the icon of the armor with ID n
    • \si[n] - Draw the icon of the skill with ID n
    • \ti[n] - Draw the icon of the state with ID n
    • \fn[fontname] - Change the font to fontname
    • \fs[n] - Change the fontsize to n
    • \fa[n] - Change the alpha value (opacity) of the font to n
    • \b     - Turn bold on
    • /b     - Turn bold off
    • \i     - Turn italic on
    • /i     - Turn italic off
    • \s     - Turn shadow on
    • /s     - Turn shadow off
    • \u     - Turn underline on
    • /u     - Turn underline off
    • \hl[n] - Turn highlight with colour n on
    • /hl OR \hl[-1] - Turn highlight off
    • \l     - align the text to the left
    • \r     - align the text to the right
    • \c     - align the text to the centre
    • \t     - Tab. Draws the next character at the nearest pixel that is a multiple of 32
    • \x[n] - Sets the x position for drawing directly to n.
    • \f[key] - Draw the value corresponding to that key in the FILTERS array
    • \s[n,text] - Will only draw text if the switch with ID n is ON
    • \s![n,text] - Will only draw text if the switch with ID n is OFF
    • \vocab[method] - Will draw whatever Vocab.method returns, if it is a valid method call. A list of suitable methods are included in the full Instructions
    • \actor_method[n] - This will draw whatever actor.method returns for whoever actor n is. A list of suitable methods are included in the full Instructions
    • \i_method[n] - This will draw whatever item.method returns for the item with ID n. A list of suitable methods are included in the full Instructions
    • \w_method[n] - This will draw whatever weapon.method returns for the weapon with ID n. A list of suitable methods are included in the full Instructions
    • \a_method[n] - This will draw whatever armor.method returns for the armor with ID n. A list of suitable methods are included in the full Instructions
    • \s_method[n] - This will draw whatever skill.method returns for the skill with ID n. A list of suitable methods are included in the full Instructions
    • \t_method[n] - This will draw whatever state.method returns for the state with ID n. A list of suitable methods are included in the full Instructions
    • \enemy_method[n] - This will draw whatever enemy.method returns for whoever the enemy with ID n is. A list of suitable methods are included in the full Instructions in the Header
    • \#{code}# - This will evaluate code. So, if you know scipting, you can place any code there and it will draw whatever is returned by it
    • \resub - this feature will rerun the substitution method. It is useful if you  want to use some message codes as arguments for other message codes
  • Message Window Specific Codes
    • \g     - Shows a window with the party's gold. Closes if already open
    • \nb[name] - Shows a name box with name displayed in the box
    • /nb    - Closes the namebox
    • \wb[word] - shows the word in its own window, similar to the gold window.
    • /wb    - Closes a wordbox
    • \.     - Wait 15 frames (1/4 second) before drawing the next letter
    • \|     - Wait 60 frames (1 second) before drawing the next letter
    • \w[n]  - Wait n frames before drawing the next letter
    • \!     - Pause. Make the message wait for player input before continuing
    • \^     - Skip the next pause without waiting for player input
    • \>     - Speed up the text drawing by reducing wait time between letters by one frame
    • \<     - Slow down the text drawing by increasing wait time between letters byone frame
    • \S[n]  - Change the speed the text draws by adding n to the current time between drawing letters
    • \S[=n] - Directly set the speed the text draws to n
    • \@     - Turn on Show line fast
    • /@     - Turn off Show line fast
    • \@@    - Turn on Show message fast. This will show the entire message instantly
    • /@@    - Turn off Show message fast
    • \%     - Toggle Disable Text Skip through user input
    • \se[sound effect name] - Plays a sound effect
    • \me[music effect name] - Plays a musical effect
    • \ani[target_id,animation_id] - Shows animation_id on target_id
    • \bln[target_id,balloon_id] - Same as ani, but shows a balloon
    • \af[n] - Show the face of the actor with ID n
    • \pb    - Page Break. Clear the contents and start drawing from the first line
    • \oc[n] - positions the message box over a character n
    • \uc[n] - same as \oc, but places box under character n
    • \lc[n] - same as \oc, but places box to left of character n
    • \rc[n] - same as \oc, but places box to right of character n
    • \e[n]  - same as \oc, but if the box is too tall to comfortably fit, is moved below the character instead
    • \mxy[x, y] - Set the position of the message window to x, y
    • \fxy[x, y] - Set the position of the face window to x, y
    • \nxy[x, y] - Set the position of the name window to x, y
    • \#!{code}# - This will evaluate code at the time the window reaches this code when drawing
  • Choice Branch Specific Codes
    • \skip  - Placing this in a choice text means that the player will not be able to hover over or select this option, but will skip to the next one
    • \soff[n] - A choice with this in it will only appear in the branch if the switch with ID n is OFF
    • \son[n] - Same as soff[n], but it will only appear if switch n is ON
    • \d[n]  - A choice with this in it will be disabled (unselectable) if the switch with ID n is OFF. It will still show up, and the player can hover over it, but he or she will be prevented from selecting it
    • \d![n] - Same as \d[n], except it will be disabled if switch n is ON
    • \wb[text] - This code will create a help window. When the player hovers over that choice, it will show text in the help window. This allows you to explain the choice or make any content in the help window dependent on which choice the player is on
    • \+{text} - This is actually a code you can put in a comment that is directly below the when branch of a choice, and it will add text to the choice. This effectively ignores the normal limitations on the size of a message in a choice, allowing you to make longer choices

Properties

There are too many to list what each specifically does, so please refer to the Instructions in the Header for that information. What I will do here is give the names and expected value types for each. Properties are set by placing the following codes in a message box:
    ats_next (:property, value)
    ats_all (:property, value)
where :property is the property you want to change and value is the new value for that property. You should use ats_next when you want to change the text for the next message only, and ats_all if you want to change it for all following messages. Anyway, I will put down the names of each property and the type of value they expect in the form :property, expected value. Expected value may be: number (..., -2, -1, 0, 1, 2, ...); boolean (true/false); array ([a, b, c, ...]); range (a..b), string ("string")

Spoiler for List of Properties:
  • General Properties
    • :max_lines, number
    • :message_speed, number
    • :skip_disabled, boolean
    • :append_text, boolean
    • :append_choice, boolean
    • :scrolling, boolean
    • :scroll_speed, number
    • :scroll_show_arrows, boolean
    • :scroll_autopause, boolean
    • :scroll_review, boolean
    • :scroll_by_page, boolean
    • :paragraph_format, boolean
    • :justified_text, boolean
    • :letter_sound, boolean
    • :letter_se, ["string", number, number]
    • :letters_per_se, number
    • :random_pitch, range
    • :speech_tag_index, number
    • :speech_tag_graphics
    • :start_sound, boolean
    • :start_se, ["string", number, number]
    • :finish_sound, boolean
    • :finish_se, ["string", number, number]
    • :pause_sound, boolean
    • :pause_se, ["string", number, number]
    • :terminate_sound, boolean
    • :terminate_se, ["string", number, number]
    • :move_when_visible, boolean
    • :graphic_novel, boolean
    • :hide_button, Input::Button
    • :gn_press_or_toggle, boolean
  • Message Window Properties
    • :message_x, number
    • :message_y, number
    • :wlh, number
    • :battle_wlh, number
    • :do_not_obscure, boolean
    • :obscure_characters, [number, number, ...]
    • :obscure_buffer, number
    • :fit_window_to_text, boolean
    • :message_width, number
    • :message_height, number
    • :message_opacity, number
    • :message_backopacity, number
    • :message_windowskin, number
    • :message_fontcolour, number
    • :message_fontname, "string"
    • :message_fontsize, number
    • :message_fontalpha, number
    • :message_dim, "string"
  • Face Window Properties
    • :face_x, number
    • :face_y, number
    • :face_z, number
    • :face_side, boolean
    • :face_offset_x, number
    • :face_offset_y, number
    • :face_width, number
    • :face_height, number
    • :face_mirror, boolean
    • :face_opacity, number
    • :face_blend_type, number
    • :face_fadein, boolean
    • :face_fade_speed, number
    • :face_scroll_x, boolean
    • :face_scroll_y, boolean
    • :face_scroll_speed, number
    • :animate_faces, boolean
    • :letters_per_face, number
    • :face_window, boolean
    • :face_window_opacity, number
    • :face_windowskin, "string"
    • :face_border_size, number
    • :face_dim, "string"
    • :face_use_dim, number
  • Choice Window Properties
    • :choice_text, "string"
    • :disabled_choice_text, "string"
    • :choicebox_text, "string"
    • :choice_window, boolean
    • :choice_x, number
    • :choice_y, number
    • :choice_offset_x, number
    • :choice_offset_y, number
    • :choice_width, number
    • :choice_height, number
    • :column_max, number
    • :row_max, number
    • :choice_spacing, number
    • :choice_opacity, number
    • :choice_backopacity, number
    • :choice_windowskin, "string"
    • :choice_fontcolour, number
    • :choice_fontname, "string"
    • :choice_fontsize, number
    • :choice_wlh, number
    • :choice_dim, "string"
    • :choice_use_dim, number
    • :choice_on_line, boolean
    • :choice_opposite_face, boolean
  • Choice Help Window Properties
    • :choicehelp_x, number
    • :choicehelp_y, number
    • :choicehelp_width, number
    • :choicehelp_height, number
    • :choicehelp_center, boolean
    • :choicehelp_opacity, number
    • :choicehelp_backopacity, number
    • :choicehelp_windowskin, "string"
    • :choicehelp_fontcolour, number
    • :choicehelp_fontname, "string"
    • :choicehelp_fontsize, number
    • :choicehelp_wlh, number
    • :choicehelp_dim, "string"
    • :choicehelp_use_dim, number
  • Name Window Properties
    • :name_x, number
    • :name_y, number
    • :name_offset_x, number
    • :name_offset_y, number
    • :name_opacity, number
    • :name_backopacity, number
    • :name_windowskin, "string"
    • :name_border_size, number
    • :name_wlh, number
    • :name_fontcolour, number
    • :name_fontname, "string"
    • :name_fontsize, number
    • :name_dim, "string"
    • :name_use_dim, number
  • Word Window Properties
    • :word_x, number
    • :word_y, number
    • :word_width, number
    • :word_height, number
    • :word_opacity, number
    • :word_backopacity, number
    • :word_windowskin
    • :word_wlh, number
    • :word_fontcolour, number
    • :word_fontname, "String"
    • :word_fontsize, number
    • :word_dim, "string"
    • :word_use_dim, number
  • ats_next-only Properties
    • :do_not_refresh, boolean
    • :character, number
    • :char_ref, number

The last three are only permitted to be changed by ats_next, not ats_all.

Script


You can retrieve the script either from the demo (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21375) or the text document (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21376). If you are upgrading from ATS2, you also need the Conversion Patch (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21377). Paste it underneath the ATS3 in the Script Editor, but still above Main.

Credit



Thanks


Support


Post in this topic with any bugs or issues. Remember, this script is mostly untested. There are a lot of different combinations of features that may or may not work, I'm not sure. Also, if you have any great ideas for additions to this script, then feel free to launch them at me. There's no better time than now.

Known Compatibility Issues

All other Message scripts will not work with this one.

Demo


Download Demo (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21375)

You can also retrieve the script from the text document (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21376).

If you are upgrading from ATS2, you also need the conversion patch (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21377). Paste it underneath the ATS3 in the Script Editor, but still above Main.

Graphics

Included also, in the demo and attached to this post, are sample speechtag graphics (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=20973). The graphics included are: Speech Tag 1, Speech Tag 2, and Thought Tag 1 ~ As you will notice, you need to put these in the SPEECHTAG_GRAPHICS array in the script if you want to be able to use them, and these files must be saved into the System folder of Graphics.

If you wish to create your own, you may use this template:(http://img692.imageshack.us/img692/3773/speechtagtemplate.png)

Basically, 1, 2, 3, & 4 are for the graphic that will appear when a message box is placed OVER a character. 5, 6, 7, & 8 are for the graphic that will show up when the message window is placed UNDER a character. 1 & 2, and 7 & 8 must be 16 pixels tall and this is the point of overlap. This part of the graphic is the part that overlaps with border of the message window. 3 & 4, and 5 & 6, are the parts that do not, and they can be as tall as you want them to be, but 3& 4 must be the same height as 5 & 6. Lastly, there are two columns: 1, 3, 5, & 7, and 2, 4, 6, & 8. The first column is for the background of the speech tag, and it will be shown at the same opacity as :message_backopacity. The second column will be the same opacity as :message_opacity. They can be whatever width you want them to be, provided that each column is the same width.

Samples: (http://img245.imageshack.us/img245/752/speechtag1.png)(http://img705.imageshack.us/img705/9861/speechtag2.png)(http://img28.imageshack.us/img28/8599/thoughttag1.png)

Author's Notes

Well, I figured it was about time to rewrite this script. I started off with very good intentions, but about halfway through I started coding pretty sloppily. So this script really isn't the best I could do, and I am sure there are a few bugs to be hammered out. But please, try this script out, mention any bugs or incompatibilities you find and I will do my best to fix them up. Also, if you have any suggestions, there is no better time than during this debugging period, as once this script is bugfree I have no intention of looking at it ever again.[/list]
Title: Re: Advanced Text System 2.0
Post by: Shinami on March 18, 2008, 10:58:55 AM
When I get home from work tonight, I'll check it out.
Title: Re: Advanced Text System 2.0
Post by: Zeriab on March 18, 2008, 12:13:28 PM
I edited the topic title because there was an typo I didn't like in it >_>
I'll check it out when I get the time ^^

Also you don't have to thank my so many times  :-[
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 18, 2008, 12:16:35 PM
Also you don't have to thank my so many times  :-[

Alright, now I just put an exclamation mark :P

i wonder what the typo was now ...
Title: Re: Advanced Text System 2.0
Post by: Nightwolf on March 18, 2008, 03:34:18 PM
This looks cool, i'll download it and tell more ^_^
Title: Re: Advanced Text System 2.0
Post by: Irock on March 18, 2008, 11:14:49 PM
This is very nice, Modern.

I have a few suggestions for features. I'm attempting to make a Zelda-ish game, and it would be nice to require player input before scrolling, then play a sound after the player input, and also have a sound after closing the message box, like in Link To The Past. I COULD just copy and paste \se[LTTP_Text_done]\! every four lines, but that seems like a bit too much. =x
Title: Re: Advanced Text System 2.0
Post by: Arrow on March 18, 2008, 11:47:49 PM
Modern, I get a strange problem when I use this script. I have a character that says the following (broken up into two quote boxes because in the editor it's in two seperate display message commands):

Quote
• I'm a tough guy.\!
• Twenty degrees out here,\. and I don't even need sleeves.\!
• I know you're jealous of these pipes. \!
• But how jealous are you?\!

Quote
• Too jealous for your own good, that's how jealous.\!
• Step off,\. square.

I have your script set to display three lines before it starts scrolling. The thing is, after three lines it does scroll, but it puts a HUGE break between the third and fourth lines! How do I stop this?

This is very nice, Modern.

I have a few suggestions for features. I'm attempting to make a Zelda-ish game, and it would be nice to require player input before scrolling, then play a sound after the player input, and also have a sound after closing the message box, like in Link To The Past. I COULD just copy and paste \se[LTTP_Text_done]\! every four lines, but that seems like a bit too much. =x

You could probably like, take the SE play code, simplify the command to just <end> or something instead of \SE[text], and then make it play the end sound specifically instead of a variable sound.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 19, 2008, 12:51:18 AM
This is very nice, Modern.

I have a few suggestions for features. I'm attempting to make a Zelda-ish game, and it would be nice to require player input before scrolling, then play a sound after the player input, and also have a sound after closing the message box, like in Link To The Past. I COULD just copy and paste \se[LTTP_Text_done]\! every four lines, but that seems like a bit too much. =x

Those are useful features. I will implement them. I take it you want a different sound at the end of a message (as in, separate from the one that plays after all shown lines?


Modern, I get a strange problem when I use this script. I have a character that says the following (broken up into two quote boxes because in the editor it's in two seperate display message commands):

Quote
• I'm a tough guy.\!
• Twenty degrees out here,\. and I don't even need sleeves.\!
• I know you're jealous of these pipes. \!
• But how jealous are you?\!

Quote
• Too jealous for your own good, that's how jealous.\!
• Step off,\. square.

I have your script set to display three lines before it starts scrolling. The thing is, after three lines it does scroll, but it puts a HUGE break between the third and fourth lines! How do I stop this?

What features are active at this time? I take it Paragraph Format is off, or that construction would look rather strange in the message box. But in any case, I am having trouble reproducing the error. If worst comes to worst, maybe upload a project and I can look at the error as it occurs in your project.


You could probably like, take the SE play code, simplify the command to just <end> or something instead of \SE[text], and then make it play the end sound specifically instead of a variable sound.

I take it that comment is directed at me :P

I've considered doing something similar, though I wouldn't have made a new special code - instead I would combine the codes and do it automatically, so I'd probably end up changing this (and it's unformatted equivalent)

Code: [Select]

      # Convert formatted text to a string, rather than an array of characters
      formatted_text.lines.each { |i|
        i.each{ |j| @text += j }
        @text += "\x00"
      }

to something like this:

Code: [Select]
# Convert formatted text to a string, rather than an array of characters
      formatted_text.lines.each_index { |i|
        formatted_text.lines[i].each{ |j| @text += j }
        # If feature for pause at end of lines implemented
        if $game_message.scroll_pause
          # If it will scroll next line and is not the last line
          if (i + 1) % $game_message.shown_lines == 0 && if (i + 1) != formatted_text.lines.size
            # Insert command codes for pause and Play SE
            @text += "\x05\x88[#{$game_message.scroll_pause_se}]" 
          end
        end
        @text += "\x00"
      }

And I'd put a message termination SE in to the finish_message.

The problem here is that this method would ultimately ruin the pause skip, as the SE will still play even when the pause is skipped. It's not an unconquerable problem, of course. As the method already iterates through every character, it would be a small matter to track whether or not a \^ is there and simply not add the \se command if there was, but I'd like a better way to track it than an if statement for every character in every message in the game (though if statements are fairly fast, so no big deal really). But, it may be enough to update instead the input_pause method - will almost definitely be better in fact. So, that is probably what I'll end up doing. Plus, really, it makes more sense for the SE to be played after all user input, not just when scrolling.
Title: Re: Advanced Text System 2.0
Post by: Arrow on March 19, 2008, 12:58:51 AM
I actually had directed that at Irock, but your response is much more in-depth than his would have been. :o

EDIT: *facepalm* forgot to include my options. Starting at line 124 of your script:

Code: [Select]
class Game_MessageOptions
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Initial Settings
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # Which side the face is on: true => left, false => right
  FACESIDE = true
  # The back opacity of the Message Window
  OPACITY = 255
  # The font of the Message Window
  FONTNAME = "Convection"
  # The Size of the font in the message window
  FONTSIZE = 20
  # The ability to skip the letter by letter drawing text
  SKIP_DISABLED = false
  # Message Box Windowskin
  WINDOWSKIN = "Window"
  # Redistributes the lines dependent on line length. The Paragraph Formatter
  # v. 1.1 is required for this to work. You can find it at:
  #    http://rmrk.net/index.php/topic,25129.0.html
  PARAGRAPH_FORMAT = false
    # Should each line end at the same point? Icons and inaccurate text_size
    # commands may cause this to be inaccurate.
    JUSTIFIED_TEXT = false
  # How many pixels between the y_position of one line and the next. This
  # overrides the WLH constant of Window_Base, but only for messages. It
  # remains the same for all other scripts
  WLH = 24
  # Whether text from adjacent messages are appended and scroll.
  # Paragraph Format recommended if SCROLLING set to true
  SCROLLING = true
    # How many lines should be drawn before the text scrolls. This overrides
    # Window_Message::MAX_LINES
    SHOWN_LINES = 3
  # Whether to use traditional choice branching or special. It essentially
  # makes the choices appear in a box, rather
  CHOICEBOX = true
    # The following indented constants only matter when MA_CHOICES is true
    # Choicebox position. true => adjacent to Message Window;
    #                     false => above Message Window
    # Paragraph Format recommended if CHOICEBOX_ON_LINE set to true
    CHOICEBOX_ON_LINE = false
    # When Choice branches are subsequent, the choice branches are made into one
    CHOICES_APPENDED = true
    # Should the Choicebox be as large as necessry to accomodate the longest
    # option?
    CHOICEBOX_FITTED = true
    # The width of the choicebox, assuming CHOICEBOX_FITTED is false
    CHOICEBOX_WIDTH = 160
    # The back opacity of the choicebox
    CHOICEBOX_OPACITY = 255
    # The windowskin of the choicebox
    CHOICEBOX_WINDOWSKIN = "Window"
    # The font of the choicebox
    CHOICEBOX_FONTNAME = "Convection"
    # The offset in the X direction of the Choice Box
    CHOICEBOX_OFFSET_X = 16
    CHOICEBOX_OFFSET_Y = 16
  # When this is true, it will play aa sound effect as it is drawing text
  LETTER_BY_LETTER_SOUND = true
    # The SE played when LETTER_BY_LETTER_SOUND is true
    MESSAGE_SE = "text"
  # How many frames between drawing each letter, in general
  LETTER_FRAMES = 1
  # ~Namebox Settings~
    NAMEBOX_WINDOWSKIN = "Window" # The windowskin for the name box
    NAMEBOX_COLOUR = 0 # The Color of the text in the namebox [0-31]
    NAMEBOX_FONTNAME = "Convection" # The Font of the namebox
    NAMEBOX_FONTSIZE = 20 # The Size of the text in the namebox
    NAMEBOX_OFFSET_X = 16 # How much the Namebox is in the X direction away from default
    NAMEBOX_OFFSET_Y = 16 # How much the Namebox is in the Y direction away from default
    NAMEBOX_OPACITY = 255 # The opacity of the name box
Title: Re: Advanced Text System 2.0
Post by: Irock on March 20, 2008, 03:01:30 AM
This is very nice, Modern.

I have a few suggestions for features. I'm attempting to make a Zelda-ish game, and it would be nice to require player input before scrolling, then play a sound after the player input, and also have a sound after closing the message box, like in Link To The Past. I COULD just copy and paste \se[LTTP_Text_done]\! every four lines, but that seems like a bit too much. =x
I take it you want a different sound at the end of a message (as in, separate from the one that plays after all shown lines?
Yes, of course. If not, someone could just set them to the same SE. :p
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 21, 2008, 05:34:57 AM
Okay, I identified and fixed the error you found Arrow - nice catch!
I also implemented the autopause feature and Input Sound Effects that Irock recommended.

Since it wasn't any effort, I uploaded the new version though I am keeping the version number as 1.0

I will leave it in RMRK+ for now, just to give a few more days for people to come across bugs before I release it publicly.
Title: Re: Advanced Text System 2.0
Post by: Irock on March 21, 2008, 08:35:50 PM
It also might not be a bad feature to play a different sound when all the dialog is complete, before closing the message window, and a sound when starting a new message window. I'm surprised I didn't request/suggest them in my first post. -_-
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 21, 2008, 09:54:32 PM
I guess I could add that - it doesn't seem that useful though. I guess I can imagine a few situations where it could be useful.

But, since it's no trouble I'll add it.
Title: Re: Advanced Text System 2.0
Post by: Irock on March 22, 2008, 02:36:02 AM
Glad to hear it. These are features I plan to use. -_-
Title: Re: Advanced Text System 2.0
Post by: Arrow on March 22, 2008, 05:29:38 AM
Works like a charm modern! Thanks loads! Only thing is now that I can' seem to find where to alter the options for animated face sets and frames between letters...?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 22, 2008, 06:34:40 AM
LETTER_FRAMES should be right under PAUSE_SE

I haven't added anything special for faceset timing though - for now it is with every letter draawn (not including white space or codes). There's a reason I haven't divorced it from letter drawing - namely user defined pauses would have no way of recognizing when no characters are being drawn, so I'd have to do something special for that. I was thinking of making it so that you set how many letters are drawn between each face alteration - what do you guys think about that? It can't hurt, after all.
Title: Re: Advanced Text System 2.0
Post by: Irock on March 22, 2008, 06:43:57 AM
It couldn't hurt. It's better than having his mouth open and close for every letter.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 22, 2008, 06:50:42 AM
Well open one letter close the next, but yeah I'll do that. I'll add the option in for the SE too
Title: Re: Advanced Text System 2.0
Post by: Nightwolf on March 22, 2008, 04:03:23 PM
modern, you know i love you


now i love you more.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 23, 2008, 07:24:43 AM
I found a couple of bugs and they are now fixed, but I am not going to put up the newest update yet because I am thinking of making it possible to use message codes to call constants and methods from the vocab module. My initial thought would be an array, but then people will need to count to find the one - it'd be a pain to apply. So now I'm thinking of storing everything from Vocab into a hash and calling them by method name - or maybe a case branch but that would be huge and ugly. Does anybody know an easier way?

Also, what do you all think about the idea of a Keywords option. Basically, my idea is that the user can set a colour to special words. Wherever that word appears, it will automatically be coloured in the colour you set to it - probably a hash here again.
Title: Re: Advanced Text System 2.0
Post by: Kokowam on March 23, 2008, 11:08:21 AM
Good job, modern. ;8 I'm unable to use RMXP on here (if it's usable on that) and I haven't gotten VX yet, but still looks nice. ;8

Why don't people ever attached the code in a .txt instead of inside a demo? XD Not that I'm complaining but just wondering why they don't think of that ?_?
Title: Re: Advanced Text System 2.0
Post by: Falcon on March 23, 2008, 09:21:25 PM
People do that all the time.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 25, 2008, 09:21:25 PM
Alright, well public Beta time. I'll keep those ideas in check and I will add them if there are any more useful features suggested. The current attached demo has everything up to date, I think.
Title: Re: Advanced Text System 2.0
Post by: Arrow on March 26, 2008, 12:04:49 PM
I updated my stuff again and it's still working perfectly. This is a fantastic script modern!
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 26, 2008, 02:58:56 PM
Thanks  ;D. I'm glad it's working. Be sure to tell me if anything goes wrong.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on April 01, 2008, 02:03:58 AM
Update: You can now set the message window's position and size!
Title: Re: Advanced Text System 2.0
Post by: modern algebra on April 04, 2008, 06:44:06 PM
Updated Again - Sorry for all the updates - this one was necessary if you intend to use the \px command, as there was a minor miscalculation.

The other important thing is that the format for using Animated Facesets has changed in Version 1.11. Before it was _a, _b, but this arbitrarily limited the user to only two frames of animation. Now, the format is _1, _2, _3, etc... and you can have as many frames as you like.

Two options were also added:

$game_message.number_choices = positive integer
   This allows you to set the number of choices shown in a Choicebox until it starts scrolling

$game_message.back_sprite = "filename"
   This allows you to change the graphic used in runtime when the message is set to 'Dim'. Particularly useful if you want to use this feature in    collaboration with changing message box width, since you will need to make graphics to fit that.



Also, I'm taking suggestions for giving this script a new name. Dialogue is a somewhat inappropriate, misleading name
Title: Re: Advanced Text System 2.0
Post by: modern algebra on April 14, 2008, 12:05:12 PM
Updated to Version 1.2!

The changes are basically:

I also changed the name as Dialogue in Programming means something totally different. It is now Advanced Text System (ATS)
Title: Re: Advanced Text System 2.0
Post by: halik on May 03, 2008, 10:04:18 AM
I get an error saying: "ATS 1.2 ? 1668 ??? NoMethodError ??????
Undefined method `[]' for NilClass

This is on you demo when I speak with the EV005 starts the battle and error pops up!
What's the problem?!

And nice script.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on May 03, 2008, 11:29:07 PM
Ah, sorry about that. I fixed the problem somewhere else but I guess I forgot to upload the demo. Give me a second and I'll upload a new demo. If you don't want to download the entire thing, just replace line 1668 with:

Code: [Select]
        @contents_x += @line_spacing[@line_count] unless @line_spacing == nil || !$game_message.justified_text
Title: Re: Advanced Text System 2.0
Post by: halik on May 04, 2008, 03:25:28 PM
Ah, sorry about that. I fixed the problem somewhere else but I guess I forgot to upload the demo. Give me a second and I'll upload a new demo. If you don't want to download the entire thing, just replace line 1668 with:

Code: [Select]
        @contents_x += @line_spacing[@line_count] unless @line_spacing == nil || !$game_message.justified_text

dude thank you and keep rocking! This script is awesome!!
Title: Re: Advanced Text System 2.0
Post by: gabiot on May 23, 2008, 01:51:31 AM
Is there anyway to change the text for the namebox?  I know I can change it globally in your script, but what I want to do is maybe have  a command so I can have different colors of nameboxes for different characters (like blue for a good guy and red for a villain).  Even if there's just a little add-in you could write up I could place it in the script.  As it stands I can't really figure out how to change it other than changing it so it is always a certain color.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on May 23, 2008, 09:01:01 PM
I'm not sure what you mean...
You can use Call Script to change any features, either globally with $game_dlgoptions or for just the following message with $game_message. All of the commands are listed above, but I think the ones you are looking for are:


$game_message.namebox_fontname = ["font name default", "font name alternatives"] (ex. ["Times New Roman", "Arial"])
$game_message.namebox_fontsize = positive integer (ex. 16)
$game_message.namebox_windowskin = "Skin File" (ex. "Window")
$game_message.namebox_colour = integer between 0 & 31 (ex. 7)
$game_message.namebox_opacity = integer between 0 & 255 (ex. 200)
$game_message.namebox_offset_x = integer (ex. 8)
$game_message.namebox_offset_y = integer (ex. 16)
Title: Re: Advanced Text System 2.0
Post by: Aindra on June 18, 2008, 10:11:46 AM
There is a problem with this script. (Most likely it is the paragraph formatter, but I'm posting this topic because I'm using Advanced Text System)

I created the battle processing event with win/lose branches. Like this:

Code: [Select]
@>Battle Processing: Monster
 If Win
 @>Text: 'Spiritual', 1, Normal, Bottom
:      : Blah blah blah blah blah blah blah blah blah blah
:      : Blah blah blah blah blah

 If Lose
 @>Text: 'Spiritual', 1, Normal, Bottom
:      : Blah blah blah blah blah blah blah blah blah blah
:      : Blah blah blah blah blah
 Branch End

When I play-tested the event processing, the paragraph formatter is no longer in effect for the first message in the win/lose branches. So they are no longer lined up nicely, so many words were missing because they disappeared on right side. It is as if the paragraph formatter was never there, so there is no formatting at all.

I can easily reproduce this bug (I did with few new events, and it happened.) Note: It only affects the first message in the win/lose. Any next messages are working prefectly.

I even made a new project and added only Advanced Text Message and Paragraph Formatter scripts. And I managed to reproduce that bug.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on June 18, 2008, 05:03:44 PM
Yeah, I guess it must not reset $game_message after battle. I'll fix it when I make a new version, but for now just put a call script above your text with $game_message.clear there.
Title: Re: Advanced Text System 2.0
Post by: Aindra on June 18, 2008, 06:54:58 PM
Okay, thanks. I'll be using that call script.

I want to ask you a question, if you don't mind.

Will you add the feature where I can show the icons\names in the choice box? Like \iicon[2] \ni[2]. It doesn't work with unique choice boxes. It does work if I use the basic choice box in the text message. I've been using that instead if I want to show the icons.

Anyways, your script is really great. I've been using it a lot, so many thanks.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on June 18, 2008, 08:39:57 PM
Yeah, I think I will do that for the next version.
Title: Re: Advanced Text System 2.0
Post by: SouthWall on June 30, 2008, 11:46:58 AM
I asked this on the RPG Revolution forums, but I'm not sure which one you are more active in.

Is there a way I can make the script ignore the stuff that isolates choices? I'll give an example...

(http://img262.imageshack.us/img262/4855/choice1ib6.th.jpg) (http://img262.imageshack.us/my.php?image=choice1ib6.jpg)

Here, the three choices will appear in the same box because of your script. Now...

(http://img241.imageshack.us/img241/8852/choice2pi3.th.jpg) (http://img241.imageshack.us/my.php?image=choice2pi3.jpg)

You see that each of the three choices follow a conditional branch. However, because they are isolated, the choices aren't in the same box anymore.

How do I put them in the same box? (and, if possible, with the original message as well)
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 01, 2008, 03:13:53 AM
Don't put in the Else Branch to any of them and it should work fine.
Title: Re: Advanced Text System 2.0
Post by: SouthWall on July 01, 2008, 06:25:18 AM
I tried removing the "Else"'s, but the same thing happened; each choice is present in a different choice box.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 01, 2008, 08:47:04 PM
Oh, nevermind, I wasn't looking at it before - I must be blind. No, there is no way to make them appear in the same choicebox when you have the conditionals around them.

Just stack them regularly

if Switch[1] ON
  if Switch[2] ON
    if Switch[3] ON
      All Choices
    else
      choices 1 & 2
    end
  else
    choice 1
  end
else
  if Switch[2] ON
    if Switch[3] ON
      choices 2 & 3
    else
      choice 2
    end
  else
    if Switch[3] ON
      choice 3
    end
  end
end


It's a pain in the neck, I know. In the next version I will see what I can do to give an option there.
Title: Re: Advanced Text System 2.0
Post by: SouthWall on July 02, 2008, 04:10:03 AM
Oh, nevermind, I wasn't looking at it before - I must be blind. No, there is no way to make them appear in the same choicebox when you have the conditionals around them.

It's a pain in the neck, I know. In the next version I will see what I can do to give an option there.

Okay. Thanks for your help.

But it would be totally awesome if you could make that an option for the next version. I would love you forever.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 02, 2008, 10:56:17 AM
I've been thinking about it, and the way I will probably do it is to have a code you could put in the text area of each command. But it would only be for switches, not all the other types of conditions. I think I will just suggest that if other conditions are needed, just put all the conditions before the choice branch, and if the right conditions are met, turn on a switch and condition the choice on that switch.
Title: Re: Advanced Text System 2.0
Post by: psiclone on July 07, 2008, 05:54:34 AM
Hello, I just wanted to say that this script is great, and I really enjoy using it.

However, I've got a slight problem; I'm using Woratana's windowskin changer script and if I change a windowskin, the change works the first time I talk to someone, but the next time it reverts back to the default specified in the script. Same thing for if I change the windowskin and go into the menu and try to talk to someone, it just resets back to the default in the script.

Is it possible to have the change "permanent?" Or at least, stay until it's changed again? I have no problem changing the windowskins via the menu, and even in an event, but it still changes back to the default after talking to someone.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 07, 2008, 12:26:04 PM
Use the script code:

$game_dlgoptions.windowskin = "Skin File"
Title: Re: Advanced Text System 2.0
Post by: psiclone on July 07, 2008, 08:00:43 PM
Sweet, thanks.

Is there also a way to change the nameplate and choice box in this same way?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 07, 2008, 08:13:37 PM
$game_dlgoptions.choicebox_windowskin = "Skin File"

$game_dlgoptions.namebox_windowskin = "Skin File"


All of the possible codes are located in the instructions at the top of the script.
Title: Re: Advanced Text System 2.0
Post by: psiclone on July 08, 2008, 02:15:39 AM
Yeah, I apologize for not noticing sooner, it just didn't stand out to me like the other way to change did. Thanks for the help!
Title: Re: Advanced Text System 2.0
Post by: Drunken Paladin on July 14, 2008, 09:43:25 PM
Couldn't figure it out because I'm hopeless at scripting, but it definitely looks cool!   :bean:
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 20, 2008, 07:41:22 PM
Updated to 1.5.

New Features:



Title: Re: Advanced Text System 2.0
Post by: megatronx on July 25, 2008, 06:10:25 PM
I realy do fancy your script, but there is one , verry importand for me future missing.

Code: [Select]
----------------------------------------
>> +[ QUICK TEXT ]+ a.k.a. Shortcut
----------------------------------------
Add & Call your very long text (or) text that you use many times by shortcut.
You can put special syntax in it, e.g. 'Welcome to \c[10]Syria Village\c[0]

$nms.qt[Quick Text ID] = 'Text you want' << Add Quick Text


\qt[Quick Text ID] << Call Quick Text from message box

this is taken from neo msg script 3.0 beta.

can you do similar in yours.
oh and btw, i havent tryid your latest version, but did you menage to fix bug with window postytioning around event or player. in v1.2 when you set for example \cp[0] befeore it appeard in right location, it appeared in one of the  basic positions for few frames.

cheers
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 26, 2008, 01:18:54 AM
 I haven't done anything with the positioning of the message window and it's not a bug I've noticed, so I would imagine that I have not fixed that. As to the quick text feature - it would be pretty easy to add it, but I have no intention to look at the script for quite a while.
Title: Re: Advanced Text System 2.0
Post by: Shiriko1989 on August 03, 2008, 05:11:16 AM
There's an error there when I talk to that monster by testing your demo...
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 03, 2008, 01:12:42 PM
In the demo? Had you changed any options? I'll take a look at the demo and see if it is outdated.
Title: Re: Advanced Text System 2.0
Post by: Shiriko1989 on August 03, 2008, 01:19:14 PM
In the demo? Had you changed any options? I'll take a look at the demo and see if it is outdated.
I dunno... Because before I talk to the lady who far left got it didn't show any error...
But after that, it show a bug message out...
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 03, 2008, 01:20:31 PM
MM, I did have a mistake with the far left lady, so that means you probably changed a setting - I will test them out and see which one it was and then I'll fix it up.

I think you probably changed "Shown Lines" too low.

I'll try to fix them, but for now just keep Shown Lines at 4.
Title: Re: Advanced Text System 2.0
Post by: moejoeman on August 24, 2008, 08:30:53 PM
awesome script man thanx! ;D
Title: Re: Advanced Text System 2.0
Post by: modern algebra on September 18, 2008, 02:08:18 AM
Updated to Version 2.0

There are a few new features, but the primary purpose of rewriting this script was for my own use in diagnosing and fixing problems that arise in the script, as well as add new parts. The older versions made this difficult.

That's not to discredit this update in terms of functionality. Improved face handling, as well as more codes for Actors, a way to get the Actor ID of the Party member in slot x, filters, and improved positioning commands makes this script well worth the demo. I hope you enjoy it.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on October 10, 2008, 01:14:58 AM
New Addon for the system:

  - Randomized Pitch for Letter by Letter Sound.

Adding this into your game gives you the option of having your letter by letter sound have a random pitch between 50 and 150 every time it plays. This simulates the variation in pitch of a person speaking. A similar system would be that of Animal Crossing -> http://ca.youtube.com/watch?v=n6ZxnEdmbQQ about 0:23

Runtime commands are:

  $game_ats.random_pitch = true/false
  $game_message.random_pitch = true/false

Code: [Select]
#==============================================================================
#  Randomized Pitch Addon for ATS v. 2.0
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This addon allows you to randomize the pitch in the letter by letter sounds,
# thus giving the impression of pitch fluctuation in a voice.
#==============================================================================
# ** Game_ATS
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Sets runtime commands for $game_ats.random_pitch
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    new constant - RANDOMIZED_PITCH
#    new public accessor variable - random_pitch
#    aliased method - reset
#==============================================================================

class Game_ATS
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * CONSTANT
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  RANDOMIZED_PITCH = true
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Public Instance Variable
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  attr_accessor :random_pitch
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Reset
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_rndm_pitch_adon_atsv2_rst_8d94 reset
  def reset
    # Run Original Method
    modalg_rndm_pitch_adon_atsv2_rst_8d94
    # Set random pitch to default
    @random_pitch = RANDOMIZED_PITCH
  end
end

#==============================================================================
# ** Game_Message
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Sets runtime commands for $game_message.random_pitch
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - clear
#    overwritten reader method - message_se
#==============================================================================

class Game_Message
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Clear
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_ats2_ptch_randmze_message_clr_945s clear
  def clear
    # Run Original Method
    modalg_ats2_ptch_randmze_message_clr_945s
    # Set random pitch to the ATS value
    @random_pitch = $game_ats.random_pitch
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Message SE
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def message_se
    # Randomize Pitch
    @message_se.pitch = 50 + rand(100) if @random_pitch
    return @message_se
  end
end
Title: Re: Advanced Text System 2.0
Post by: Charbel on October 13, 2008, 04:50:57 PM
modern algebra, can you create a command to call script during the message?
I want to change .message_colour = Color object RGB more than once during the same message
thank you so much
Title: Re: Advanced Text System 2.0
Post by: modern algebra on October 13, 2008, 07:18:17 PM
Can you not use \C[ID] to do so?
Title: Re: Advanced Text System 2.0
Post by: Charbel on October 15, 2008, 01:57:13 AM
I can, but with \C[ID] I can't use all the RGB colors :D
Title: Re: Advanced Text System 2.0
Post by: modern algebra on October 15, 2008, 02:05:11 AM
I suppose not, but do you can select which ones you use by editing the palette in your windowskin. Nonetheless, I'll write an addon that allows you to use hex code.
Title: Re: Advanced Text System 2.0
Post by: Charbel on October 15, 2008, 02:09:58 PM
yes, but with rgb I can choose how many colors I want, and this makes the messages much more interesting  ;)
I'll be very happy if you can write the addon  ;8
Thanks in advance :D
Title: Re: Advanced Text System 2.0
Post by: Devlin on November 13, 2008, 03:04:27 AM
Your script has a bug (not fatal one that cause the crash but still, I think it's serious) Although, there ARE a lot options so I'm not sure if it's my fault and I missed something.

Version I'm using: Version: 2.0b

I was trying to set it up so I'll only get 3 lines in the message box, not normal four lines. I deceased the message box height so it'll look nice with only three lines, not 3 lines and 1 blank line. I also changed a lot other things (like namebox, face, etc) but it seems like the window height is responsible for the bug.

If I set the window height low, the font type and font size is no longer in effect. I did not use the script syntax to change the window height. I used the config block in the script since I want it to be permanent.

The code is
Code: [Select]
DEFAULT_WINDOW_HEIGHT = 97   #128 is default

Recently, I decided to test it in Advance Text System demo I downloaded, and changed the font type. It doesn't seem to work at first, but after talking to few NPCs, it finally changes to the font type. (There was introduction speech, then I talked to the green-haired girl. The font didn't change until I talked to the green-haired man after)

I then deceased the height in that demo script, the font type never took effect, not even after I talked same NPCs.

While testing your demo for the bug, I encountered another bug (although I'm not sure if it's because I did not adjust few other options in the block to make it to work)
If I deceased the window height, the scrolling window screws up. It shows first three lines, and nothing after that. It's just bunch of blank lines and I have to press [ENTER] key repeatedly until the window finishes processing "invisible" lines, and end the conversation with the NPC.

It's not important for me because I don't intend to use the scrolling effect in my game. Although you might want to know about it.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on November 13, 2008, 04:02:57 PM
I will look into it.

In the demo though, the events specifically set a different font and size, so that might be why it didn't show up.

In any case, thanks for the report and I will look into these bugs.
Title: Re: Advanced Text System 2.0
Post by: Adrien on November 23, 2008, 03:07:50 AM
BUG REPORT!!!!!!

or possible one.

I had to take out both the paragraph and the ATS VErsion 2.0 script to determine if it was an error or the engine its self.
I have discovered its one of these two.

I have noticed that this script or scripts will scip characters when in dialog. basically its this:

Character A: bla.........................................
enter (freese, no face same text box with bla.....................................)
enter (skip character b
Character A: bla......................

basically something in the script/s  is making it skip at random over characters conversations. again this is random freezes.
but once it happens it always happens with those characters no matter how many times you restart the test play.

Title: Re: Advanced Text System 2.0
Post by: Adrien on November 23, 2008, 05:15:23 AM
This Error has been isolated to the ATS 2.0 script.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on November 23, 2008, 05:35:06 AM
I don't really understand what you are trying to say. Can you recreate the error in a new project and send that to me?
Title: Re: Advanced Text System 2.0
Post by: Adrien on November 23, 2008, 07:32:10 AM
I shall do that and I will send it in a private message to you.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on November 23, 2008, 03:22:19 PM
Alright, thanks. I'll look into the problem when I have time. It might take a while before I have the time though, I should warn you. Don't expect this to be done by tomorrow.
Title: Re: Advanced Text System 2.0
Post by: Adrien on November 23, 2008, 04:44:57 PM
I dont, and thank you.
The game still works fine even though it skips characters .... ;)
Title: Re: Advanced Text System 2.0
Post by: Adrien on November 26, 2008, 04:00:15 AM
any news?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on November 26, 2008, 04:38:50 AM
I don't have time to work on it right now. I have a lot of schoolwork to do - I definitely won't be able to look into this anytime before December 1
Title: Re: Advanced Text System 2.0
Post by: Adrien on December 14, 2008, 11:09:44 PM
I am wondering if there is any news?
Title: Re: Advanced Text System 2.0
Post by: r_y_u_u on December 15, 2008, 04:06:20 PM
amazing script, every feature works perfectly, haven't had any errors, and I've been customizing the script a lot, just one question, does this work on the initial screen, i mean like the color codes? i'd love it even more than i do now if they did, (that's quite hard!!!!) anyway, amazing script
Title: Re: Advanced Text System 2.0
Post by: modern algebra on December 17, 2008, 03:43:17 PM
No, I'm sorry but that uses a different window than the message window, so it wouldnt really fit in with this script. I am glad to hear you have not encountered any problems.

@Adrien. Sorry - I sort of forgot about it. I will look into it within the next couple days. I don't have access to the internet on my computer right now, but I should within a few more days.
Title: Re: Advanced Text System 2.0
Post by: r_y_u_u on December 21, 2008, 10:23:34 PM
shame, oh well, thanks for an a* script
Title: Re: Advanced Text System 2.0
Post by: modern algebra on December 24, 2008, 01:35:51 AM
Alright, Adrien, I think I've located your weird ass bug.
Try inserting this into a new script BELOW the ATS in the script editor.

Code: [Select]
#==============================================================================
#  Skipped Message Bug Fix for ATS v.2
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This fixes a weird bug that skips messages occasionally
#==============================================================================
# ** Window_Message
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  aliased method - new_line
#==============================================================================

class Window_Message
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * New Line
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_bug_fix_scroll_nw_ln_94n4 new_line
  def new_line
    modalg_bug_fix_scroll_nw_ln_94n4
    self.pause = false if @text == ""
  end
end

I apologize for taking so long to find a fix.
Title: Re: Advanced Text System 2.0
Post by: Adrien on January 02, 2009, 01:42:54 AM
thank you for fixing the error
Title: Re: Advanced Text System 2.0
Post by: Arion on January 13, 2009, 05:31:53 AM
Alrighty, I haven't been using this script for long, but I think I'm getting used to it's features.
However, I've run into a bit of a wall here. I'll try to explain.
I've got a combined choice branch, with exactly 11 choices.  Depending one which you select, it will disable the choice, and reopen the choice branch to select another.

(http://i81.photobucket.com/albums/j205/zanbatou-T-S/ErE1.png)
The above is an example of one of the 4 Choice commands.
Now, onto the issue.

Let's assume i select choice 1. This will set a variable, and turn switch 281 ON; Disabling choice 1.
I check my variables, and the correct variable has been set.

I select choice 2. The same as above happens. The command disappears, and the proper variable is set to 1.

I open the box for a third time, currently, choice 1 and 2 are gone, as they are supposed to be.
I select choice 5. The wrong switch and variable are set. The variable for choice 4 is set instead.

Further testing showed that it continued in this pattern. Disabling the wrong command, and setting the wrong variable. What i assumed, was that the ID of the next choice command was being used for the selection.  As in, selecting  choice 5 used the contents of choice 4, instead.

I've used several other commands that I thought might conflict, and cause this error. As well as setting the box's column count to 4, and row count to 3.
Even removing these commands didn't solve it, so I've come to the natural conclusion, that it is a script error.

I'm apologize for the messy post, I seem to lose track of what I've covered when making these things.
I'm really not sure what other information may be important. I'd appreciate some clarification, or assistance.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on January 13, 2009, 06:14:13 AM
Yes, it likely is an error in the script. If you wouldn't mind, could you send the project with the error in it to me? If you do not feel comfortable sharing the contents of your project, then you could reproduce the error in another project and send that to me. It would make the process go a lot faster.
Title: Re: Advanced Text System 2.0
Post by: Arion on January 13, 2009, 06:33:29 AM
I cleared out everything that was unnecessary. Hopefully it cut the file size enough. (was 100mb)

For reference, i've altered the event to tell you which choice you selected.
Also, the common event in question, is #10.

Although I've nothing left in the project I'd like to keep private, I've sent the link in PM to be proper.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on January 13, 2009, 03:46:16 PM
Alright, Thank you. I will get to work.
Title: Re: Advanced Text System 2.0
Post by: SouthWall on January 25, 2009, 12:17:58 PM
I seem to have this issue as well. If you have four choices:

A
B
C
D

And if you have A and B not appearing due to switches, selecting C will result as if you selected B, and selecting D will result as if you selected C! I'll PM you the project, if you wouldn't mind looking at it.

A fix would be greatly appreciated!
Title: Re: Advanced Text System 2.0
Post by: modern algebra on January 26, 2009, 03:23:58 PM
Yeah, thank you for the extra data. I am looking into it, but I've been pretty busy with school and haven't been able to do scripting that isn't very very simple. I will try to have it fixed before too late in February.
Title: Re: Advanced Text System 2.0
Post by: KAZRCRW_ME on February 11, 2009, 06:35:51 PM
Huh?, Very Great Script Modern Algebra!!
Wow!!~^^

But I have a suggestion, this might be hard because…


How about add the Menu for Speed Text system. With this, the Player can adjust the menu(text speed) whatever their like. Example: Fast 0 – 10 Slow.

I Hope someone read this and reply it.

Thank you, my friend, At least reading .~^^
Title: Re: Advanced Text System 2.0
Post by: modern algebra on February 11, 2009, 09:20:37 PM
the menu text speed? The menu doesn't draw letter by letter though ~ it draws it all at once. I don't know what you're asking.

Also, I have not looked at the bugs with this script yet. I keep meaning to get around to it, but I have a pretty full plate at the moment. I will do it though, and I have not forgotten about them.
Title: Re: Advanced Text System 2.0
Post by: KAZRCRW_ME on February 12, 2009, 09:17:41 PM
Yes...I see the misunderstood at there...I hope you understand with it...~^^.             

Huh..(I not very well at English)... I meant that add the Menu..Maybe the command menu for adjust the text speed(when talking with NPC and other)

I know the menu go out at once..I meant that the player can adjust the text speed when talking with npc or other

Example: Slow 10 => Fast 0.

(Not for the menu text speed)(Create the command menu for adjust the text speed during talking the NPC or etc)

Please tell me if you do not understand with it...I see you are very hard working scripter/coder.
Nice...Keep it up~^^
Title: Re: Advanced Text System 2.0
Post by: KAZRCRW_ME on February 12, 2009, 09:33:52 PM
Huh sorry for double post..
I have the AOM(Advance Option Menu)

And just upload it here... take a look..

I do not know about the author...

And in there, there has Paragraph Formatter and ATS (Advance text System) all made by Modern Algebra.


Take a look….
Maybe you can adjust for add the 'command menu' for the player that can adjust the text speed during/after talking with NPC and other...

(Hope...please understand with me....)(Please understand with me)

http://www.megaupload.com/?d=H2AXV13W


I know to create the script is harder... and I  do not want to disturb you..Please respond it so I can know if you want to create it or not.

Title: Re: Advanced Text System 2.0
Post by: modern algebra on February 12, 2009, 10:00:10 PM
I'll take a look and if it seems easily doable, then I will do it. If it is hard, then I will put it on my list of major scripting projects, and it might take some time before I could get around to it.
Title: Re: Advanced Text System 2.0
Post by: KAZRCRW_ME on February 12, 2009, 11:33:38 PM
Thank you very much.. Modern Algebra ...I am very appreciates with your helps~^^
Title: Re: Advanced Text System 2.0
Post by: KAZRCRW_ME on March 11, 2009, 07:18:22 PM
I'll take a look and if it seems easily doable, then I will do it. If it is hard, then I will put it on my list of major scripting projects, and it might take some time before I could get around to it.

Sorry for double post.

1)How close is this request to being finished??


2)I was found Bug in your ATS Script, hope you will give attention. There was a crash with other script made by Worale/Woratana.
The Quick Face Border by Worale.
(There are no error in there but has only a bug)

The Quick Face Border does not work after talking with NPC (The messages).

Hope you understand with my words.....
If you not understand I can explain it..


I think that all, and sorry if I take your time.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 11, 2009, 08:55:06 PM
Hmm, well compatibility issues are to be expected among other message scripts. I will take a look. In the meantime, the ATS does have an option to give the faceset its own window. Maybe you could see if that achieves a similar effect.

As for the original problem, it is doable. What options do you want me to include though? Just text speed?
Title: Re: Advanced Text System 2.0
Post by: KAZRCRW_ME on March 30, 2009, 04:02:26 AM
Hmm, well compatibility issues are to be expected among other message scripts. I will take a look. In the meantime, the ATS does have an option to give the faceset its own window. Maybe you could see if that achieves a similar effect.

As for the original problem, it is doable. What options do you want me to include though? Just text speed?

ok..sorry for late reply.. The options do i want you to include though just text speed i think that all.Actually it more to up to you to add or not.
I am very thank you for you because accept my request.

Edit: for truly i said you have another bug... withEmoticon on Face made by Nechigawara Sanzenin


Maybe you should add the script/code in your ATS... the Balloon that appears in Messages.I am sorry if i have bad English Which made you not understand with me. And sorry if i take your time.


Spoiler for [b:
Script[/b]]
Code: [Select]
#==============================================================================
# Emoticon on Face
#------------------------------------------------------------------------------
# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
=begin
How to Use:
Add "\E[Number Of Emoticon]" To text in message control
You can see Number of Emoticon on "Balloon.png" in "Graphics\System" or
"%programfiles%\Common Files\Enterbrain\RGSS2\RPGVX\Graphics\System".
when the line number of emoticonset is 1 , Number of Emoticon is 1.
when the line number of emoticonset is 2 , Number of Emoticon is 2.
Max of Number of Emoticon is 10.
You can set Emoticon's Position at EMO_X and EMO_y.
You can set frame rate at BALLOON_WAIT.
if the message window don't have face,Noting happen.
=end
#==============================================================================
class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  BALLOON_WAIT = 12
  EMO_X = 93
  EMO_Y = 15
  #--------------------------------------------------------------------------
  alias inc_initialize initialize
  def initialize
    inc_initialize
    @viewport = Viewport.new(0, 0, 544, 416)
    @viewport.z = z + 50
    @balloon_face = 0
    create_balloon
  end
  #--------------------------------------------------------------------------
  alias inc_dispose dispose
  def dispose
    inc_dispose
    dispose_balloon
    @viewport.dispose
  end
  #--------------------------------------------------------------------------
  def update
    super
    update_gold_window
    update_number_input_window
    update_back_sprite
    update_show_fast
    update_balloon
    unless @opening or @closing             # ???????????
      if @wait_count > 0                    # ????????
        @wait_count -= 1
      elsif self.pause                      # ???????
        input_pause
      elsif self.active                     # ??????
        input_choice
      elsif @number_input_window.visible    # ?????
        input_number
      elsif @text != nil                    # ????????
        update_message                        # ????????
      elsif continue?                       # ?????
        start_message                         # ????????
        open                                  # ????????
        $game_message.visible = true
      else                                  # ??????
        close                                 # ?????????
        $game_message.visible = @closing
      end
    end
  end
  #--------------------------------------------------------------------------
  def create_balloon
    dispose_balloon
    @balloon_duration = 8 * 8 + BALLOON_WAIT
    @balloon_sprite = ::Sprite.new(@viewport)
    @balloon_sprite.bitmap = Cache.system("Balloon")
    @balloon_sprite.ox = 16
    @balloon_sprite.oy = 32
    @balloon_sprite.visible = false
    update_balloon
  end
  #--------------------------------------------------------------------------
  def refresh_balloon
    if @balloon_face == 0 or @balloon_face > 10
      @balloon_sprite.visible = false
    else
      @balloon_sprite.visible = true
    end
    update_balloon
  end
  #--------------------------------------------------------------------------
  def update_balloon
    if @balloon_duration > 0
      @balloon_duration -= 1
      if @balloon_duration == 0
        @balloon_duration = 8 * 8 + BALLOON_WAIT
        @balloon_duration -= 1
      else
        @balloon_sprite.x = x + EMO_X
        @balloon_sprite.y = y + EMO_Y
        @balloon_sprite.z = z + 50
        if @balloon_duration < BALLOON_WAIT
          sx = 7 * 32
        else
          sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32
        end
        sy = (@balloon_face - 1) * 32
        @balloon_sprite.src_rect.set(sx, sy, 32, 32)
      end
    end
  end
  #--------------------------------------------------------------------------
  def dispose_balloon
    if @balloon_sprite != nil
      @balloon_sprite.dispose
      @balloon_sprite = nil
    end
  end
  #--------------------------------------------------------------------------
  alias inc_terminate_message terminate_message
  def terminate_message
    inc_terminate_message
    @balloon_sprite.visible = false
  end
  #--------------------------------------------------------------------------
  alias inc_convert_special_characters convert_special_characters
  def convert_special_characters
    inc_convert_special_characters
    @text.gsub!(/\\E\[([0-9]+)\]/i) { "\x09[#{$1}]" }
  end
  #--------------------------------------------------------------------------
  def update_message
    loop do
      c = @text.slice!(/./m)            # ???????
      case c
      when nil                          # ??????????
        finish_message                  # ????
        break
      when "\x00"                       # ??
        new_line
        if @line_count >= MAX_LINE      # ????????
          unless @text.empty?           # ??????????
            self.pause = true           # ????????
            break
          end
        end
      when "\x01"                       # \C[n]  (?????)
        @text.sub!(/\[([0-9]+)\]/, "")
        contents.font.color = text_color($1.to_i)
        next
      when "\x02"                       # \G  (?????)
        @gold_window.refresh
        @gold_window.open
      when "\x03"                       # \.  (???? 1/4 ?)
        @wait_count = 15
        break
      when "\x04"                       # \|  (???? 1 ?)
        @wait_count = 60
        break
      when "\x05"                       # \!  (????)
        self.pause = true
        break
      when "\x06"                       # \>  (???? ON)
        @line_show_fast = true
      when "\x07"                       # \<  (???? OFF)
        @line_show_fast = false
      when "\x08"                       # \^  (??????)
        @pause_skip = true
      when "\x09"
        @text.sub!(/\[([0-9]+)\]/, "")
        unless $game_message.face_name.empty?
          @balloon_face = $1.to_i
          refresh_balloon
        end
      else                              # ?????
        contents.draw_text(@contents_x, @contents_y, 40, WLH, c)
        c_width = contents.text_size(c).width
        @contents_x += c_width
      end
      break unless @show_fast or @line_show_fast
    end
  end
end
Title: Re: Advanced Text System 2.0
Post by: Organ House on April 27, 2009, 01:17:51 AM
Hey, I recently installed Yanfly's new Display Victory Aftermath script, and it's showing something weird on ATS' end. Basically messages appear twice as often as they should. As I wrote on RPGRev,

Quote
Sorry to be a pain, but I'm still getting the same error after using the compatibility fix and trying out every combination of scripts placing ATS higher/lower, the script higher/lower and compatibility. I've included an image to help show what's going on if it helps at all.

It shows the first message, then I hit the X or enter button and the portrait disappears, then I have to hit the X or enter button again for the next message to show up.

(http://studentpages.scad.edu/~kcampb22/weird_msg.png)

Do you have any idea of how ATS is affecting this? I know that Yanfly's script has a certain way of displaying message text, namely:

Code: [Select]
    # Actor.ID  =>  # ----------------------------------------------------------
             1  =>  [# This is Actor 1's quotes.
                     [# This is the 1st random message that can be said.
                      "\\>\\c[6]\\n[1]\\c[0]\\<",
                      "\"Hmph! I didn't break a sweat.\"",
                      " ",
                      " "],
                    ],# This ends Actor 1
Title: Re: Advanced Text System 2.0
Post by: modern algebra on April 27, 2009, 04:36:26 AM
Hmm, I will definitely look into that tomorrow. It is likely an error on my part, as it seems that it is terminating the message without clearing the window.

First, see if:

http://rmrk.net/index.php/topic,25348.msg387740.html#msg387740

does anything.
Title: Re: Advanced Text System 2.0
Post by: Organ House on April 27, 2009, 05:13:14 AM
Hmm, I will definitely look into that tomorrow. It is likely an error on my part, as it seems that it is terminating the message without clearing the window.

First, see if:

http://rmrk.net/index.php/topic,25348.msg387740.html#msg387740

does anything.

Yep, that did it!

Thanks man! :D
Title: Re: Advanced Text System 2.0
Post by: modern algebra on April 28, 2009, 06:54:05 AM
Cool. Good to hear!
Title: Re: Advanced Text System 2.0
Post by: Aindra on May 05, 2009, 11:47:39 AM
Hello.

I want to inform you that your script doesn't seem to have the animated face disable/enable toggle. When I was using my faces (they all end in numbers) so some of them switch to another person's face. Because of the numbers in their filenames. I went through your script, but was unable to find a toggle. Or I missed a Boolean animated face somewhere somehow.

So I had to dive in your script and disable it manually myself.

Also, is there a way to get rid of the "pause" between the face changes? I'm using the expression faces. If I want to switch a happy face to angry face, it would make the happy face disappear, and come a new angry face. I don't want the face to "disappear." I want it to happen immediately, that you don't notice the face disappearing, and reappearing. (And it also affects the namebox, so it disappears along with the face. Dunno if you want to know that too.)

I used the code -    \|\^  and the face-disappear-appear is noticeable.

Meanwhile I'll try to look into the disappear/appear myself, but I'm only novice at ruby though. In the default project (No advanced test system), the face is replaced with another face immediately. So the pause between the face changes is by your script, that I know.

Thank you for writing this great script. I've been using it for a long time.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on May 05, 2009, 11:55:21 PM
Yeah, I hadn't really thought of making a toggle for the animated faces, since I figured that if there was a desire to label faces similarly, letters A-Z could be used to denote succession, and the n umbers could be reserved for animated faces. I suppose it would have been prudent to include a toggle, but the customization of the script is a headache to begin with, it's kind of a hard choice to throw in more options.

As for the other problem, I haven't worked with the script for a long time, so changing this might cause other problems. However, I imagine this may fix it. Go to around line 2100, where you should see this method:

Code: [Select]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * End Message
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_ats_win_msg_term terminate_message
  def terminate_message
    $game_message.se_play ($game_message.termination_se) if $game_message.mt_se
    modalg_ats_win_msg_term
    # Dispose of faces
    @face_window.clear
    # Dispose of name window
    @name_window.dispose unless @name_window == nil
    @name_window = nil
    # Dispose of choice window
    @choice_window.dispose unless @choice_window.nil? || @choice_window.disposed?
    @choice_window = nil
    @line_count = 0
    determine_position if $game_temp.in_battle
    $game_message.mt_se = $game_ats.mt_se
  end

Make it look like this:

Code: [Select]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * End Message
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_ats_win_msg_term terminate_message
  def terminate_message
    $game_message.se_play ($game_message.termination_se) if $game_message.mt_se
    modalg_ats_win_msg_term
    # Dispose of faces
    #@face_window.clear
    # Dispose of name window
    #@name_window.dispose unless @name_window == nil
    #@name_window = nil
    # Dispose of choice window
    @choice_window.dispose unless @choice_window.nil? || @choice_window.disposed?
    @choice_window = nil
    @line_count = 0
    determine_position if $game_temp.in_battle
    $game_message.mt_se = $game_ats.mt_se
  end

Then place this code directly underneath the final end in that method:

Code: [Select]
  def close
    super
    # Dispose of faces
    @face_window.clear
    # Dispose of name window
    @name_window.dispose unless @name_window == nil
    @name_window = nil
  end
Title: Re: Advanced Text System 2.0
Post by: Aindra on May 07, 2009, 02:48:26 PM
Sorry for being late. Life got in my way.

With your modifications, it works very well. ^_^ Thank you.

There is a bug but I probably will not encounter it during the normal gameplay. If I try to create the choices without any message beforehand, normally it would appear centered on the screen. But with your modification, it just does not show up. Since it is not showing up, it's not advancing the event. In other words, it froze.

I was using the choices/no-message during the debug map only. When I threw in a blank message, it works fine after. I'm not concerned with this bug because I will never do choices/no-message during the game.

I'm mentioning the bug in case you want to know. I'm starting to do more work in my project, so if any bugs pop up, I'll drop by here.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on May 07, 2009, 04:04:12 PM
That's only with the modification? I will look into it when and if I should ever write a new version of this script. But if it's only with the mod then I won't worry about it much until then.

I'm glad I could help.
Title: Re: Advanced Text System 2.0
Post by: Aindra on May 07, 2009, 08:16:16 PM
Yes, it is only with the modification. So don't worry about it. :)
Title: Re: Advanced Text System 2.0
Post by: noian on May 12, 2009, 03:41:58 AM
The following on a event had the [yes] choice text as invisible in game for me:

....
@>Text:'Actor3', 2, Normal, Top
: :\nb[Setup]          Are you sure you want to choose Zane?\lb
: :Plus: Attack, Defense, Speed\lb
: :Minus: Health, Spirit, Stamina\lb
: :Special: Doubles Critical Hit Chance
@>Show Choices: Yes, No
: When [Yes]
@>
: When [No]
@>
: Branch End
....

The only modifications to default settings I made was to turn off choice box (=false) and paragraph formatting (=false). Interesting enough changing choice box = true fixed everything.

Other scripts (in order from top to bottom:
Victory Aftermath
Class Changer
Victory Aftermath Extra
Paragraph Formatter
ATS
ATS Patch 1
ATS Patch 2
Title: Re: Advanced Text System 2.0
Post by: modern algebra on May 13, 2009, 06:29:58 PM
I will look into it as soon as I can.
Title: Re: Advanced Text System 2.0
Post by: Grafikal on June 14, 2009, 07:01:13 AM
It's not the script's problem and it's attached to his post from the forum. You're problem. I would try redownloading or using a different browser or use a different program to extract the files.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on June 14, 2009, 05:56:17 PM
Do you have WinRAR? If not, maybe the extraction program you are using is incompatible.
Title: Re: Advanced Text System 2.0
Post by: Countdown on June 21, 2009, 07:09:46 AM
Hey, Great script. I'm new here, and am a total n00b when it comes to scripting, so this may be stupid.  But when you show the larger face that comes out of the message box (like kinda on Fire Emblem), the face is in the box, I moved it out using the face offset script commands, but the text is still scrunched into the right corner.  How can I make it fill the whole text box? Like this (just with only one person)
Spoiler for:
(http://judyonthenet.com/wp-content/uploads/2008/04/fire-emblem-por-1.jpg)
Title: Re: Advanced Text System 2.0
Post by: modern algebra on June 21, 2009, 05:55:10 PM
As long as no part of the face window overlaps the text box it ought not to scrunch the text up. For instance, the attached:

I could have been a little more precise so that you wouldn't see anything between the face and the message window, but you get the picture I think.
Title: Re: Advanced Text System 2.0
Post by: Countdown on June 21, 2009, 11:49:09 PM
Here's a little bit of what is going on inside my little not-working-thing.
(http://i278.photobucket.com/albums/kk96/Arcono/Untitled.jpg)
It doesn't even work when the face is waay above the message, kinda like your picture.
The message box doesn't fix it when I move it around either.
Thanks a bundle.
Title: Re: Advanced Text System 2.0
Post by: Countdown on June 22, 2009, 02:02:37 AM
Scratch that, it just worked!  Thank you so much for the help.
Title: Re: Advanced Text System 2.0
Post by: Rethalgamon on June 26, 2009, 08:58:32 AM
Thanks for an awesome script, but is there any way for the script to ignore the breakups in between the choices and the text (the "isolation")? I've got labels before my choices, and I don't need for my choice window to fly to the center of my screen. I've looked all over for the commands telling the window to go center screen, but I can't find them anywhere, that I might change those coordinates.

Any help is appreciated.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on June 26, 2009, 03:03:41 PM
I probably should have made that more configurable. Anyway, there is a workaround, but it will not retain the previous message that was up before the labels. I'm not sure if that's something you want or not.

Anyway, for that, all you would need to do is make a message before the choice branch that is transparent and has only the autoclose code in it: \%.

Then you can use the regular $game_message.choicebox_x, $game_message.choicebox_y commands to control its position.

So the event should look like this

...
@>Script: $game_message.choicebox_x = a
 :          : $game_message.choicebox_y = b
@>Text: -, - Transparent, Bottom
 :        : \%
@>Show Choices: x, y, z
...


I realize it's a little silly to have to do all that work; in retrospect, I should've given the user some control over the position of isolated choiceboxes.
Title: Re: Advanced Text System 2.0
Post by: Rethalgamon on June 26, 2009, 03:55:44 PM
I appreciate your reply, but the workaround you suggested actually doesn't seem to be working; I managed to find another workaround, actually placing the message that went before the label, after it. Thank you for your help.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on June 26, 2009, 05:30:10 PM
I'm surprised the workaround I suggested didn't work. I tested it out myself and it worked.

Anyway, what you're doing is better. Hopefully that doesn't disrupt your eventing too much.
Title: Re: Advanced Text System 2.0
Post by: SouthWall on July 09, 2009, 11:40:37 AM
So, uh, any news on the choice bug yet?  :-[
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 09, 2009, 02:36:55 PM
Sorry, I forgot about it. Remind me after July 20 and my schedule should be free to fix that. Sorry for the neglect.
Title: Re: Advanced Text System 2.0
Post by: joy on July 11, 2009, 06:12:56 PM
Hey MA,

So I ran into a little issue trying out the ATS for OotM. Whenever I have the window size adjusted, in either default or instance based, it recolors the text to white. It can be reset by \c[x] in the instance, but it also makes the next event-called text to be white. It can all be remedied with a \c[x], however I was wondering if there's a way to fix it in the script so that every single text event need not be preceded with \c[x].

The biggest perplexity is that white is nowhere in my color scheme in my windowskin, so somewhere it must be getting changed with rgb or something. I have a similar issue in the baldur's gate system where one category of text is white and I can't find where to change that, here's a screen:
(http://img.photobucket.com/albums/v648/joymason/rpgmaker/Project/ScreenTravel-01.png)

Lemme know if anything can be done to fix it, I understand if it takes a bit, it's not a game-breakingly vital fix.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on July 11, 2009, 08:14:49 PM
Thanks for reporting those bugs :)

The default colour for a new font is always (255, 255, 255, 255), and so the problem is that I'm not correcting that to normal_color in either of the scripts you mention.

Anyway, the code below should fix the ATS one. Just put it anywhere below the ATS in the script editor

Code: [Select]
#==============================================================================
#  Colour Change Fix
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This fixes a minor bug where the message window does not correct itself to
# normal_color when it is remade
#==============================================================================

class Window_Message
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Remake Window
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias mdrnalg_joy_colourfix_ats_rmkwin_6n31 remake_window
  def remake_window (*args)
    mdrnalg_joy_colourfix_ats_rmkwin_6n31 (*args)
    contents.font.color = normal_color
  end
end

To fix it in the travel menu, go to the refresh method of Window_DestinationList (around line 420) and add this line underneath the Bitmap definition:

   
Code: [Select]
contents.font.color = normal_color

so it looks like this:

Code: [Select]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Refresh
  #    travel_type_id : the ID of the travel type selected
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def refresh (travel_type_id, teleport_actor = nil)
    contents.clear
    contents.dispose
    self.contents = Bitmap.new (192, @location.dests[travel_type_id].size*WLH)
    contents.font.color = normal_color
    @disabled.clear
    @item_max = @location.dests[travel_type_id].size
Title: Re: Advanced Text System 2.0
Post by: joy on July 11, 2009, 08:38:53 PM
Works like a charm man. Thanks so much!
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on July 23, 2009, 01:46:39 PM
Hello,

I was using the ATS 2.0 when I ran across a problem. You see, everything was going smoothly till I entered a battle into one of the events and received this attached error:
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 13, 2009, 04:26:39 AM
I love these scripts but there are some things.

1.) I notice that if I use the \. or \| commands in a message, text skips to the next line a bit too soon where there is still room for another 1-3 words.

2.) Another thing, if I make a message, make a choice branch and put the call script "$scene = Scene_Map.new" below it, then give another message and choice branch and put the same call script, that the face stays even after the message is over and you can move around as the face follows.

3.) Also a side question, what command would I use to refresh the new settings. As in I had put if the user wants sound with letter by letter and it does not take effect until 2 messages later.

4.) The user input of speeding up text by pressing a key goes way too fast and skips too much compared to the default message system's skip speed. Is there a way to lower the skip speed?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 13, 2009, 03:45:01 PM
1) I haven't noticed that, but I imagine that it means I did not extract that code when formatting. I will fix that if I ever make a new version. If you want to fix that, then go to around line 820 and see this:

Code: [Select]
   # Codes without arguments
    no_args_codes = ["\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x09",
                     "\x10", "\x95", "\x94", "\x91", "\x90", "\x89"]
    # Codes with integer arguments
    int_args_codes = ["\x01", "\x92", "\x84", "\x82", "\x81", "\x11"]

take "\x02" out of no_args_codes and put it into int_args_codes, so it looks like this:

Code: [Select]
   # Codes without arguments
    no_args_codes = ["\x03", "\x04", "\x05", "\x06", "\x07", "\x09",
                     "\x10", "\x95", "\x94", "\x91", "\x90", "\x89"]
    # Codes with integer arguments
    int_args_codes = ["\x01", "\x02", "\x92", "\x84", "\x82", "\x81", "\x11"]

2) I don't understand why you would ever do that. Why call Scene_Map twice? Why call it at all? Anyway, it can probably be fixed by putting a wait command of 1 frame between the Call Script and the commands adjacent to it.

3) I assume you mean you set it in $game_ats and then it doesn't take effect immediately? $game_message.clear.
Quote from: Script Instructions
One thing to be noted is that when you do change the $game_ats, you will need to use the code $game_message.clear to make it so that they will apply to the very next message, rather than just all messages after that.

4) the skip text in the ATS does the exact same thing that the default skip does, pretty much. The default skip-on-user-input displays the entire message immediately. the ATS can't do that any faster. What I'm guessing you are seeing is the scrolling effect - it will seem fast because the skip on user input for the ATS brings the text down until the next time it needs to scroll. This means that in long messages, it will make the first line being currently displayed disappear. However, if it only brought you down to the last line than it would both nullify the point of being able to skip text messages at all since the last line at least would have to be displayed.

In the end, it's the player's choice whether to skip the text or not; if they miss information that matters than it's their own fault. If you want certain messages to be unskippable, than just disallow skipping for that message.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 13, 2009, 11:31:10 PM
Thank you for the response. About number 2, I was just using the wrong command and well it would take place in another script that I have in there to be used, but I would only use one anyway and it just shows a slow delay of the face erasing. As in the face vanishes but then the message shortly after. So not too much a problem in that case.

As for 4, the text speed skip on user input... The default message speed system just speeds up the message if I press the key once and hold. It only shows the message instantly if I press the key twice and it stops before the \! command as well so user input must go in again. But well, with the ATS, it just skips all that with a single press. Yes, even if I put "SCROLLING = false" it still puts the whole thing instantly and does not stop after each sentence, not stopping for the \! command.

Well about number 1, I did as you suggested, and it still skips to the next line too early.


\nb[Tyler]Good evening master. \!How have you been? \!Things
have been rather uncalmly here sir. \!Why, \.there was a moment
where I almost spilled my tea all because of a wee mouse. \!The
things that go on here... \|sir, \.are you listening to me?

The line "Why, there was a moment where I ____
almost spilled my tea all because of a wee mouse."

Appears like that. where "____" is enough room for the word almost to fit. And if I take away the \. command, it fits in there.

The line "The things that go on here... sir, __
are you listening to me?"

There is enough room for the word "are" to fit where that blank is, but it skips a line. The word "are" does fit in when I take away the \| and \. commands.


\nb[Tyler]Good evening master. \!How have you been? \!Things
have been rather uncalmly here sir. \!Why, there was a moment
where I almost spilled my tea all because of a wee mouse. \!The
things that go on here... \|sir, \.are you listening to me?

If I take away that first \. as seen here, then that last line, there is still room for the words "are you" before it skips to the next line. Everything fits in of course if I take away the \. and \| commands.

Anyway... thank you for your time. It's really an awesome script and something that RMVX should of had at the start. Thank you for your help.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 14, 2009, 01:41:53 AM
As for 4, the text speed skip on user input... The default message speed system just speeds up the message if I press the key once and hold. It only shows the message instantly if I press the key twice and it stops before the \! command as well so user input must go in again. But well, with the ATS, it just skips all that with a single press. Yes, even if I put "SCROLLING = false" it still puts the whole thing instantly and does not stop after each sentence, not stopping for the \! command.

The default message system does skip all immediately - I'm sure about that. I just tested in a blank project - you might have had a different message system if it didn't - but I am pretty sure that default skips the whole message too. It shouldn't skip \! codes though, so I will look into that.

For (1) - if you have the extraction bug fix, then you need to do the same modification I suggested to that since it overwrites that method - It seems to be working for me.

For the skipping past \!, try adding this code into its own slot in the editor, somewhere below the ATS. See if it will still skip.

Code: [Select]
class Window_Message
  alias modrnalg_atsbugfix_pause_skip_0bh2 draw_message_character
  def draw_message_character (c)
    if c == "\x04"
      @show_fast = false
      @line_show_fast = false
    end
    modrnalg_atsbugfix_pause_skip_0bh2 (c)
  end
end

I really should work on Version 3.0 one of these days.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 14, 2009, 02:18:19 AM
I am considering writing a major update for this script very soon. If anyone has any features to suggest that I add (or unresolved bugs), speak now or forever hold your peace.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 14, 2009, 09:08:47 AM
Wow, yes thank you, those problems have now been fixed. Awesome!

As for user input to skip all text, I guess I meant when \! was used within it. Without those then yes the whole message appeared instantly. Sorry if I didn't say it well enough.

And yes that'd be awesome to make a 3.0 it's a truly awesome script and many others agree with that I am sure. I think its the best message script out there!

Though... I don't know how much better it can be improved, with these fixes it seems more perfect than before. There may still be some deals with faces delaying to erase but that is minor.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 15, 2009, 01:56:59 PM
Is it compatable with all fonts?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 15, 2009, 02:16:32 PM
It's compatible with any fonts that work in RMVX. I've never encountered a font that it didn't work with.
Title: Re: Advanced Text System 2.0
Post by: Countdown on August 15, 2009, 02:40:32 PM
With the font, how do you change it everywhere.  I have changed it in the script, but it only changes namebox, and choice box.  How do you change it for the title, and menu, and everything?
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 15, 2009, 02:42:42 PM
How do I do it,



I downloaded a font

Installed the font

Put it in the font folder

It had underscores in the name, I copied the name and put it in the script
where there's 3 font names.

Play the game and it don't show the font, just plane text.



By the way, nice script.  8)

Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 15, 2009, 03:19:10 PM
Show me how you put it in the script. It should be before all the other fonts.

In any case, the script uses the RMVX Font class - it doesn't do anything to modify it.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 15, 2009, 03:31:24 PM
False alarm :police:

The font was messed up, I got it to work perfectly. :mad:

But :mad:

Now I'm having trouble with the message box, It won't adjust in the opacity. And can I change it's size?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 15, 2009, 03:40:00 PM
Are the below codes not working for you?

Code: [Select]

$game_message.message_width = positive integer
$game_message.message_height = positive integer
$game_message.message_opacity = integer (between 0 and 255)
Title: Re: Advanced Text System 2.0
Post by: Countdown on August 15, 2009, 05:35:40 PM
I'm probably doing this way wrong, but I change the font on the script "ATS Version 2.0" at lines 226, 298, and 341.  I can't find anywhere to change it altogether.  I'm no good at scripting...can ya' tell?
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 15, 2009, 06:34:14 PM
Sorry for the misunderstanding, I meant the namebox.

Is there a way to change it all together.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 15, 2009, 06:46:12 PM
I'm probably doing this way wrong, but I change the font on the script "ATS Version 2.0" at lines 226, 298, and 341.  I can't find anywhere to change it altogether.  I'm no good at scripting...can ya' tell?

Hey, no you're doing it right. I just have fonts separated - One is the font of the message box, one is the name box, and the other is the choice box. They are all separate because I figured some people might not want to have the same fonts for everything.

Sorry for the misunderstanding, I meant the namebox.

Is there a way to change it all together.

What do you mean altogether?

The size of the name box is unadjustable - it is based on the width of whatever text you put in there. So it will be shorter for Ben and longer for Benjamin.

As for opacity, are these codes not working?

Code: [Select]
$game_message.namebox_opacity =
$game_ats.namebox_opacity =
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 15, 2009, 07:19:30 PM
I mean like in stead of going to each event and adding a call script.

When I try to change the opacity in the script, there's no effect. :aryan: <= What is this thing?
Title: Re: Advanced Text System 2.0
Post by: Countdown on August 15, 2009, 08:57:36 PM
Cam you cange the font for the title and menu.  And example would be in Leventhan's game Sunken Oculus.  He's got the same text for the title, menu, and all the in-game text.
Title: Re: Advanced Text System 2.0
Post by: Lazer Ki on August 15, 2009, 09:08:45 PM
awww i wish there was one for RMXP

Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 15, 2009, 11:02:32 PM
I mean like in stead of going to each event and adding a call script.

When I try to change the opacity in the script, there's no effect. :aryan: <= What is this thing?

You mean, when you change this:

Code: [Select]
    NAMEBOX_OPACITY = 255 # The opacity of the name box

it makes no difference? I don't know what to tell you - it works for me. If that isn't working, then you might have it overwritten somewhere.

Also, you can change the global setting of any command by changing it in $game_ats. You have to follow it by clearing $game_message though, if you want it to be in effect for the very next message.

So:

Code: [Select]
$game_ats.namebox_opacity = 255
$game_message.clear

Cam you cange the font for the title and menu.  And example would be in Leventhan's game Sunken Oculus.  He's got the same text for the title, menu, and all the in-game text.

Not with this script. This is a message script, so I didn't change all that stuff. But try this script: http://rmrk.net/index.php?topic=26246.0
Title: Re: Advanced Text System 2.0
Post by: Countdown on August 16, 2009, 03:14:49 AM
Alright, that other script works great.  Thanks much.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 16, 2009, 06:49:16 PM
I see now.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 17, 2009, 05:40:19 AM
Sorry about this double post but I ran across another thing...


\nb[\n[2]]\%Have a seat here. \!I'll be back with something.


1.) That line there, something skips too soon when there should be room. I tried getting rid of the \! and \% commands and still. Though... its odd, if i put them all together, the same message, they all appear on one line each, except for the last one where the word "something" skips to the next line.

So yeah I suppose that's another problem there that I dunno why that happens.


2.) Another thing about it... I am using Yanfly's Battle Redux and when I try to escape, the message appears on the bottom over the Fight and status, rather than on top where the command should go. I take away the ATS script and it appears correctly on top. Of course I don't want to go back ATS'less.

3.) Just came across this one... I am using Wora's Neo Save System 3, when I tried loading my game I got a stack level too deep error on your ATS script. I dunno if it has anything to do with Wora's script there but I bring it up just in case. Though I loaded my game again and it went through fine. Then how I tried a new game and got another stack level too deep

line 1874:
   start_choice if $game_message.choicebox && !$game_message.choice_texts.empty?

Though I tried a new game again and it went through alright. I dunno if this has to do with your ATS script at all or if its because of other scripts that cause it. It's just... odd. So yeah I don't know if this is part of your script or just on my fault of having many scripts, though even though I have many I have worked out the kinks with them pretty much.
Title: Re: Advanced Text System 2.0
Post by: dricc on August 17, 2009, 12:03:45 PM
Hi !

First of all , THANKS for this script . this is awesome . i will raise a statue of you in my next game :)

But .... i have a small issue , look at this screen :
(http://i89.servimg.com/u/f89/11/59/23/52/proble10.jpg)

Here is the original text :
Voulez-vous jouer en mode developpeur ?\lb
Vous aurez accés au commentaire du créateur du jeu et vous
pourrez meme ... tricher .\lb
(yes , it is in french) .

As you can see , a word "créateur" is truncated ...

This is not a major issue because i can put a \lb before , but ...
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 17, 2009, 12:14:27 PM
1) That doesn't seem to be a problem to me... Are you saying that if you take away everything and make the message: Have a seat here. I'll be back with something.
then it takes up two lines when it looks like it shouldn't, then there's not a lot I can do. Either it just looks like it can but really can't (the last 16 pixels of any window are unusable) or it has to do with the text_size method of Bitmap

I could try a text_size fix if I had your font. The easiest thing would simply be to change the message slightly so that it isn't noticeable. Something like:

\nb[\n[2]]\%Have a seat here. \!I'll be right back with something.

2) I'd need to see the script in order to fix that. As a preliminary, try putting Yanfly's script underneath the ATS. If that doesn't work, link me to Yanfly's script

3) A Stack Level Too Deep error is likely caused by an incompatibility with other scripts. They're tricky though, because they don't say which method is being called recursively. It could easily be an incompatibility between the ATS or any script, or between any two scripts not the ATS, or between multiple scripts. I'd need for you to find out what scripts are the culprits and tell me.

It appears to be happening in Scene_Title, since it sometimes occurs in New Game and sometimes when Loading. So, likely one of the scripts has something to do with Scene_Title. If you can reproduce the error in a different project and send it to me than I can look through it. Otherwise you will have to find out by one-by-one script deletion, though it doesn't seem to be very reliable if sometimes you can start a new game and sometimes you can't. It might have something to do with the map conditions of the starting map. IDK
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 17, 2009, 12:18:02 PM
Hi !

First of all , THANKS for this script . this is awesome . i will raise a statue of you in my next game :)

But .... i have a small issue , look at this screen :
(http://i89.servimg.com/u/f89/11/59/23/52/proble10.jpg)

Here is the original text :
Voulez-vous jouer en mode developpeur ?\lb
Vous aurez accés au commentaire du créateur du jeu et vous
pourrez meme ... tricher .\lb
(yes , it is in french) .

As you can see , a word "créateur" is truncated ...

This is not a major issue because i can put a \lb before , but ...


Hmm, yeah it shouldn't happen. The spaces at the starts of those lines shouldn't happen either. For now, just put the \lb. If it becomes common I will have to look into it more closely. I suspect the problem has to do with the text_size method of bitmap and incorrectly calculating for french characters.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 17, 2009, 11:16:54 PM
1.) Well I should say a face is there. And if I put that same message, one after the other, it all appears in one line, it fits. I put 3 in a row, the first 2 appear all in one line, but the last one, the word something skips to the next line when the other 2 lines show that it can all fit on one line.

Case 1:
(http://img8.imageshack.us/img8/4563/atsskipline1.th.png) (http://img8.imageshack.us/my.php?image=atsskipline1.png)

Case 2:
(http://img8.imageshack.us/img8/5245/atsskipline2.th.png) (http://img8.imageshack.us/my.php?image=atsskipline2.png)

2.) The battle script is under yours. A link to the script.
http://pockethouse.wordpress.com/vx/scene-battle-redux/

(http://img38.imageshack.us/img38/1418/atsbattleline1.th.png) (http://img38.imageshack.us/my.php?image=atsbattleline1.png)

The text appears slowly like when out of battle and talking to someone, rather than just instant like the rest of the actions.

3.) As for that stack error... so far it's only happened once but... maybe I will look into it. Once I post the demo of what I am building, which is a demo of scripts together to perhaps use as a base for a game, then I will link you to it. But I have another scripter looking at it so that might not be a problem. Don't know how I can reproduce the error when it hasn't shown up again so... dunno.

Edit: I found that stack error happens when I load a game, it loads alright. But if I press F12 and load that is when the error occurs. Scripter friend of mine says to put "unless $@" at the end of all alias commands. So it's no scripts fault really I don't think.

I put that unless $@ at the end of the error I was getting on the ATS script and yup, works now with no error when pressing F12 and starting a new game or loading. Sounds like a good idea of what he says about how scripters should try to put that command at the end of each alias.

So yeah... thanks again for your replying and help.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 18, 2009, 03:43:31 AM
Well, it's not a terrible idea. It's better to just use Zeriab's script, in my opinion: http://rmrk.net/index.php/topic,18900.0.html

2) looking at finished scripts give me headaches and I'm tired. This is sort of a hack fix so there might be problems. Hopefully it works though:

Spoiler for:
Code: [Select]
#==============================================================================
# ** ATS + Scene Battle ReDux Compatibility Patch
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Instructions:
#
#    Place Scene Battle Redux under the ATS and place this script in its own
#   slot below Scene Battle ReDux. It's sort of a hack fix. I'm tired.
#==============================================================================

class Window_BattleMessageReDux < Window_BattleMessage
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Determine Position
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def determine_position
    m = $game_message
    # Set custom position if custom position desired
    # Centre by default
    x = m.message_x == -1 ? (Graphics.width - m.message_width) / 2 : m.message_x
    if m.message_y == -1
      y = $game_message.battle_interpreter ? (Graphics.height - m.message_height) : 0
      y = @position == 0 ? 0 : @position == 1 ? y / 2 : y  
    else
      y = m.message_y
    end
    width = m.message_width
    height = m.message_height
    # Adjust Window Size according to choicebox position
    if $game_message.choicebox && $game_message.choicebox_on_line && !$game_message.choice_texts.empty?
      dummy = Window_ChoiceBox.new
      commands, c_w = dummy.prepare_choices
      dummy.dispose
      width -= c_w
      x += $game_message.choicebox_width unless $game_message.faceside
    end
    # Remake the window if the new proportions do not match the old ones.
    if [x, y, width, height] != [self.x, self.y, self.width, self.height]
      remake_window (x, y, width, height)
    else
      set_position (x, y)
    end
  end
end


As for the other error - I'm not sure Possibly it's \x00 causing a problem. Try adding "\x00" to the no_args thingy; same place where it was before around line 820 (or in the Extraction Bug Fix if you have it)



instead of:

Code: [Select]
# Codes without arguments
    no_args_codes = ["\x03", "\x04", "\x05", "\x06", "\x07", "\x09",
                     "\x10", "\x95", "\x94", "\x91", "\x90", "\x89"]

change it to:

Code: [Select]
   no_args_codes = ["\x00", "\x03", "\x04", "\x05", "\x06", "\x07", "\x09",
                     "\x10", "\x95", "\x94", "\x91", "\x90", "\x89"]


P.S. I'm merging this with the real topic.

I definitely need to rewrite this script sometime soon.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 18, 2009, 04:38:01 AM
Thanks for the help again. That F12 Fix the first one on there did work but that closes and re-opens. I tried the other and still got a stack level too deep, so I have to keep the "unless $@" command next to the alias where the error occurs on line 1871.

The \x00 did not seem to do anything as I had put it on both areas like last time.

The hack fix did work but, if I try to escape and fail and win the battle, Yanflys Victory Aftermath script appears too high up and the players message appears there as well, but the next message it sets itself right where it needs to be.
But if I manage to escape, the next message I talk to on from an NPC would appear on top even though I have it set on the bottom. But the next message will appear on the bottom and things would be normal then.

I am thinking it's maybe like when I asked how for the text changes to take effect immediately and you told me "$game_message.clear". That is my guess anyway. It really did work though otherwise, I know you are tired and sorry for troubling you.

Again thanks for the help. I feel bad for troubling you with these questions and problems.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 18, 2009, 05:08:33 AM
I don't know what else to say about the something thing. I don't know what's causing it. Try putting a space after the final period.

$game_message.clear might work for that, maybe not. I don't remember this script well enough to be sue. It's worth a try though.

Sorry that the Aftermath is appearing too high :(

But, I don't think I will do any more bug fixes or compatibility patches until I write the next version, sorry. It takes too long because the script isn't written well enough. Once I rewrite it, it will be a lot easier so that's what I'm going to do. Sorry :(

I will keep the same naming, and formatting, so if you can live with the graphical incompatibilities for now, than you can keep using 2.0c until 3.0 comes out, and then I will make sure to fix it up for you.

But if you find any bugs, still report them by all means. It will help me avoid them in the rewrite :D\

Also, any features you'd like added to the script, now is the best time to suggest them
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 18, 2009, 06:41:51 AM
Well I was thinking that something that refreshes or updates the window like "$game_message.clear" would go into the hack fix script you made. Edit: Sorry my mistake there is no problem with the aftermath script its just the message window appearing on top instead of the bottom for that first moment to why I thought that. There just needs to be a window refresh or something I guess as stated previously.

So I am just wondering what command should go into your hack fix to refresh the window back asap rather than 1 message too late? Because either that message too late is the aftermath or if i escape, the message late is the next person I talk to, message appears on the top and next one appears on the bottom like it should because I have it on the bottom.

And alright. If the new version will be more improved and all that, it'd be awesome. I wonder if there is going to be any updates for your other scripts like Quest Journal or Path Finding? If it needs any updating. Quest Journal was quite difficult to understand and Path Finding I got a syntax error or something when trying to do it in this cutscene. First one ran fine but the one that happens towards the end is where it happened, dunno if that could be my bad, but that is another topic there I suppose.

Anyway I can't think of any features at the moment... but if I do I'd be sure to tell them, as well as anymore bugs.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 18, 2009, 01:43:24 PM
Well, it would, but not into the method and class I had modified. Try adding this to it:

Code: [Select]
class Window_BattleMessageCompatible
  alias modalg_ynfly_atsvicaft_inize_6kv2 initialize
  def initialize (*args)
    $game_message.clear
    modalg_ynfly_atsvicaft_inize_6kv2 (*args)
  end
end

class Scene_Battle
 
  alias modalg_ynfl_bttlend_sbrats_8ng3 battle_end
  def battle_end (*args)
    $game_message.clear
    modalg_ynfl_bttlend_sbrats_8ng3 (*args) # Run Original Method
  end
end

It assumes you have the Victory Aftermath Compatibility thingy. Hopefully that fixes everything for you. Sorry for being short with you last night. It doesn't matter how well written a script is, I get sort of cranky when looking at another's code for too long :P

I will be doing an update for Path Finding. probably not for the Quest Journal. I had originally planned to have an updat so that if you select a quest than it brings you to a journal - the journal would be such that the game maker could add things directly or let the player write his own stuff. I have since come to realize, though, that most people seem to like their scripts less complicated than all that. Maybe I'll do it one day though.

For Path Finding, I have been thinking about doing an update for a while. It's on my To-Do List.

Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 18, 2009, 07:59:43 PM
I've seen victory aftermath, what is it?
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 18, 2009, 11:30:14 PM
Thanks, adding that fixed the problem to where if I escaped after battle and if there was a message, it would now go on the bottom where I have it. But... the message still appears on top after battle for that first message but then goes back on the bottom, as shown on the screens.

First message:
(http://img194.imageshack.us/img194/3094/atsvictmes1.th.png) (http://img194.imageshack.us/my.php?image=atsvictmes1.png)

Message after:
(http://img194.imageshack.us/img194/8929/atsvictmes2.th.png) (http://img194.imageshack.us/my.php?image=atsvictmes2.png)

So it seems the window refreshes 1 message late still when on victory. Keep in mind though this is only if I go to escape and fail to escape and finish off the battle. If I never go to escape and win the battle then the first one shows normally, showing on the bottom where that blank space is.

If I do manage to escape at least the normal messages refresh then rather than 1 message too late.

Oh I managed to fix it... I went into "Yanfly Engine RD - Victory Aftermath Compatibility" which is an extension to the Aftermath if there are problems with the message window and under line 60 where it says "refresh" I had put "$game_message.clear" under it and that seemed to work. So I guess that problem is fixed unless it would cause problems elsewhere now.

So I guess it's all fine now? Ah well I will still leave what I said on here. There is of course that word skipping to the next line too early thing but as you said, would have to wait for you to rewrite it to know what the problem is.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 18, 2009, 11:37:10 PM
I am so stupid, I meant path finding. What is that? :police:
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 18, 2009, 11:52:05 PM
@Raukue - Strange that it didn't work in the first place. I tested it and it worked just fine. Had you put the last thing I posted under the special Victory Aftermath Compatibility thing?

@shandy - it's a script that moves a character to a specified square by the shortest possible path.

So, if you wanted a character to go somewhere specific with Move Events you'd have to know where the character was and you'd have to put in the commands individually. Move Left, Move Right, etc...

with a PathFinding script, all you need to do is type in find_path (x, y), and it will take you to the square no matter where the character is.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 19, 2009, 12:27:46 AM
This is amazing, I never knew it did that. I need it. :-[
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 19, 2009, 04:06:50 AM
@Raukue - Strange that it didn't work in the first place. I tested it and it worked just fine. Had you put the last thing I posted under the special Victory Aftermath Compatibility thing?

Oh yeah that works too. Just when you said add this to it, I thought you meant add to the hack fix you had sent me since it wasn't clear on where I should of added it. But yeah there we go, it works now, thanks.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 21, 2009, 06:21:48 AM
Oh I just thought of something that could be added into it. Need volume controls for the sounds as well as pitch. Instead of how you had the letter by letter sound:

MESSAGE_SE = "Cursor"

Needs an option to easily adjust within the modifying area rather than going into the script itself.

MESSAGE_SE = ("Cursor", 100, 100)

If that is any idea anyway. More customization and being flexible.
Title: Re: Advanced Text System 2.0
Post by: Grafikal on August 21, 2009, 06:23:29 AM
Good suggestion, but doesn't this script already have like 80 billion customizations? lol
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 21, 2009, 07:51:01 AM
I suppose but MA did say to suggest any other possible features for if and when he does a version 3.0 so I did. Might as well add a sound customization to it as well I mean the sound tends to be too loud sometimes.

I thought of another feature, for say the message window to appear where it is best suited. Say the hero is more on the top of the screen and it'd probably be best for the message window to be on the bottom or well... something like that.

For the message window to automatically go where suited like say... calling a script to be associated with an event, like a prince is talking and moving about. The message window should go either automatically on the top or bottom according to where he is, but then say someone else talks and the same thing. Eh I am not explaining this well... oh well.

The sound thing though yeah... need a volume control for the letter by letter sound and whatever other sounds that can be used with it, seems to be no control over it.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 21, 2009, 02:24:21 PM
Hey, I like that idea so much I am going to put it in a year ago :P

if you write:


Code: [Select]
   MESSAGE_SE = "Cursor", 40

THen it would set volume to 40

similarly:
Code: [Select]
   MESSAGE_SE = "Cursor", 60, 90

would set filename to "Cursor", volume to 60, and pitch to 90.

The same goes for setting it from in-game

Code: [Select]
$game_message.message_se = "name", volume, pitch
$game_ats.message_se = "name", volume, pitch


You don't have to set all three though, as volume and pitch will default to 100 if they are not set.


As for the message window to appear where it is best suited, I suppose I could work something out for that.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 21, 2009, 04:34:39 PM
Perfect This is amazing
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 21, 2009, 11:47:25 PM
Well I suppose that works, but only takes effect on a new game it seems, not one saved before the change. And it was not too clear that could be done within the script like that, only with the Call Script commands. Ah well, if I think of anything else I will say so.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 22, 2009, 01:13:53 AM
To change the default, all you need to do it use the $game_ats code:

Code: [Select]
$game_ats.message_se = "name", volume, pitch
$game_message.clear

Just set an event near where your save game is and activate it, and it will work for the save game too.

Remove it once you've updated the default settings for your games.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 22, 2009, 01:28:41 AM
Even better for the testing.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 22, 2009, 07:44:47 AM
Hmm alright will do.

Maybe you should include a letter by letter sound pack, really need sounds like a typewriter sound or the sound messaging from Lufia 2 I think has message sounds and Harvest Moon.

Guess that is more a personal note there... is there a place that has sounds that can be used for the letter by letter sound?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 22, 2009, 02:25:52 PM
None specifically that I know of. But, just look at some SE sites and you'll probably find some. I know I've come across a typewriter one before.
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 22, 2009, 06:02:11 PM
This may be weird but I used a shotgun cocking noise and it sound's just like a typewriter. Chicago typewriter? No actually I'm serious, it was a sound sample from fruity loops. It works perfectly.
Title: Re: Advanced Text System 2.0
Post by: Grafikal on August 23, 2009, 01:33:22 AM
ok...
Title: Re: Advanced Text System 2.0
Post by: shandy333 on August 23, 2009, 02:17:38 AM
It works perfectly it's probally because of the speed that it runs at.
Title: Re: Advanced Text System 2.0
Post by: Raukue on August 23, 2009, 12:38:38 PM
I had wanted to ask this before but didn't come to mind, is it possible for where the name goes into the \nb[name] command, for it to be of that dimmed window rather than the normal window skin? When I do a dimmed window, you know the black no border kind of thing, just when I put a name with it, to see a normal window with the black dimmed message window don't look right.

If this is possible, how is it done? Sorry it's late and asking this right before bed.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 23, 2009, 02:24:48 PM
Well, you can change the opacity of the namebox to 0 - that might be the best solution. There is currently no way to show a picture behind the namebox though.
Title: Re: Advanced Text System 2.0
Post by: Grafikal on August 23, 2009, 03:14:01 PM
Perhaps a script idea?   ;8

Not that I see a use for it as just that though lol.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on August 23, 2009, 04:23:40 PM
Yeah, I can add it in to 3.0
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on September 09, 2009, 01:22:40 AM
Just so everyone knows, this will not work right with Yanfly's Battle Scene ReDux.
It works until you use "Show text" or if you or the enemy gets the first strike. Then the text appears at the bottom of the screen, over your party data. (See screenshot link below)

(http://i449.photobucket.com/albums/qq212/krb16us/th_ATSandYanfly.png) (http://s449.photobucket.com/albums/qq212/krb16us/?action=view&current=ATSandYanfly.png)

Even  if you put the text postion at the top, it still turns out like that. Just an FYI for people using Yanfly's script. I would try to fix this, but ATS is huge and....I wouldn't be able to find it.

Title: Re: Advanced Text System 2.0
Post by: Raukue on September 09, 2009, 01:27:50 AM
Look back a page or two on this topic. I believe what you are saying is what I had already asked and modern algebra made a fix for shortly after.
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on September 09, 2009, 01:36:09 AM
Isn't that for the "Display Victory Aftermath"?
Title: Re: Advanced Text System 2.0
Post by: Raukue on September 09, 2009, 01:39:16 AM
I take it you didn't bother to read or look at the previous page much.

http://rmrk.net/index.php/topic,25348.msg416774.html#msg416774
http://rmrk.net/index.php/topic,25348.msg416812.html#msg416812
http://rmrk.net/index.php/topic,25348.msg416859.html#msg416859
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on September 09, 2009, 01:41:47 AM
No need for the sarcasm. I did look, but I skimmed. I don't have the time to read every post.
Anyway, thank you for pointing it out. I have missed it both times I looked.

EDIT:

The "Show text" is still messed up, no matter where I position it in the editor. The actual attack text is fixed though.
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on September 10, 2009, 05:40:53 PM
I had posted this earlier but did not receive an answer...
I was using the ATS 2.0 and everything was going fine till I entered a battle and received the error:
(http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=17144;image)
Title: Re: Advanced Text System 2.0
Post by: modern algebra on September 10, 2009, 06:57:21 PM
I had posted this earlier but did not receive an answer...
I was using the ATS 2.0 and everything was going fine till I entered a battle and received the error:
(http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=17144;image)

I'm sorry for missing you.

It's very likely a compatibility error. What other scripts are you using? Particularly ones that effect battle?
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on September 10, 2009, 10:16:22 PM
I had posted this earlier but did not receive an answer...
I was using the ATS 2.0 and everything was going fine till I entered a battle and received the error:
(http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=17144;image)

I'm sorry for missing you.

It's very likely a compatibility error. What other scripts are you using? Particularly ones that effect battle?

It's alright... I've been busy with school most of the time...

I'm using:

SBS Configurations
Sideview 1 (3.3b)
Sideview 2 (3.3b)
Bubs' Bow Addon
Default Scope Options Addon
Paragraph Formatter v1.1
ATS Version 2.0
Victory Battle Aftermath
Scene Splash
Scene Stats Redux
Scene Menu Redux
Scene Shop Redux
Title: Re: Advanced Text System 2.0
Post by: modern algebra on September 10, 2009, 11:10:52 PM
Try putting it below all those other scripts.
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on September 10, 2009, 11:44:40 PM
Try putting it below all those other scripts.

I tried but it still didn't work... I received the same error.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on September 10, 2009, 11:46:52 PM
Do you receive the error when you play the demo?
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on September 11, 2009, 12:55:21 AM
Do you receive the error when you play the demo?

Yes, it's fine till it comes to a battle then it tosses the error at me. I mean I've looked at the line but it has nothing in it with the name of 'slice!'
Title: Re: Advanced Text System 2.0
Post by: modern algebra on September 11, 2009, 01:40:57 AM
You're saying it happens in the ATS demo attached to the first post?

If that's the case, then I don't know what could be wrong, since battle in the ATS demo works fine for me.

The only thing I know of that I use the slice! method on is @text of Window_Message. The error is suggesting that @text is nil or has not been defined. But it has been for sure, so the only thing I can think of is that it's an incompatibility. You saying it happens in the ATS demo suggests something else though.
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on September 11, 2009, 01:58:54 AM
You're saying it happens in the ATS demo attached to the first post?

If that's the case, then I don't know what could be wrong, since battle in the ATS demo works fine for me.

The only thing I know of that I use the slice! method on is @text of Window_Message. The error is suggesting that @text is nil or has not been defined. But it has been for sure, so the only thing I can think of is that it's an incompatibility. You saying it happens in the ATS demo suggests something else though.

I'm not entirely sure... I mean... I re downloaded it and it worked fine. I inputted the code into my script instead of the other one and then ran my game. it came up with the same problem...

But here's a good question. When using the text for during a battle, is there anything I have to do because that could be the problem. The first battle I made and enter has text in the actual battle and such still using the the ATS... Could that be the problem...?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on September 11, 2009, 02:04:34 AM
No, that should be fine. I think it's likely that the message window is using a foreign battle message window that inherits from the ATS but doesn't initialize properly. Can you upload your Scripts.rvdata and any accompanying pictures your scripts need to work? Just attach them to your next post.
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on September 11, 2009, 02:38:41 AM
No, that should be fine. I think it's likely that the message window is using a foreign battle message window that inherits from the ATS but doesn't initialize properly. Can you upload your Scripts.rvdata and any accompanying pictures your scripts need to work? Just attach them to your next post.

I attached everything to the post...
Well except the pictures for the splash screen as there is about 21 of them...
I did it with pictures instead of AVI...
Title: Re: Advanced Text System 2.0
Post by: SouthWall on September 28, 2009, 09:31:22 AM
Hello once again! I was wondering if you've made any progress on the choice bug.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on September 28, 2009, 11:03:45 AM
I don't remember what your bug was specifically, but try this: find the initialize method of Window_Choicebox and replace it with this:

Code: [Select]
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize
commands, width = prepare_choices
index = -1
@true_command_indices = []
commands.dup.each { |i|
  index += 1
  @true_command_indices.push (index)
  while i.sub! (/\x83<(\d),(\d+)>/) { "" } != nil
if $1.to_i == 1 ? !$game_switches[$2.to_i] : $game_switches[$2.to_i]
  commands.delete (i)
  @true_command_indices.delete (index)
  break
end
  end
}
# Height is same as window if on the same line, else it is no greater than window
if $game_message.choicebox_on_line
  height = $game_message.message_height 
else
  wlh = $game_message.wlh
  height = 32 + [(commands.size.to_f / $game_message.column_max.to_f).ceil.to_i*wlh, $game_message.row_max*wlh].min
end
# Compute window height from command quantity
super(width, commands, $game_message.column_max, 0, 24)
self.windowskin = Cache.system ($game_message.choicebox_windowskin)
self.height = height
self.z = 350
self.back_opacity = $game_message.choicebox_opacity
set_position
  end


I am going to start working on ATS 3.0 pretty soon, so you can expect to see a more thorough fix of the issue in that. I believe that will work though.
Title: Re: Advanced Text System 2.0
Post by: SouthWall on September 29, 2009, 02:34:01 AM
Ahh, thank you so much! It works fine now. :D
Title: Re: Advanced Text System 2.0
Post by: EricDahRed on November 05, 2009, 01:55:33 AM
I recently started using ATS in a simple game I'm making to create study guides for
my college tests. Its become quite popular with my classmates.

I'm started using ATS because I needed the multiple choice options to appear onscreen while
the question is still in view. I'm in an advanced medical program, so the questions are often
to complex to remember while selecting an answer.

It's workin' great, thanks SO much.

I have a problem though:  During a cut scene I did before adding ATS, I used the
'old' \> command in a series of text boxes. The scene was very precisely timed so,
after switching to ATS, the \>s stopped working and the timing slowed b/c the messages
took longer to scroll before the \^ would auto close them.

I switched all of the \>'s to \@s, because the documentation for ATS said that \@
replaced \>... however, this causes the messages to blink by more quickly than
they can be read.

With ATS active, how can I format the messages so that they work the same as
before ATS?

To illustrate:

The old message said:  "\> Blah Blah Blah \|\.\^" The message would display for 1.25 seconds then auto-close. After adding
ATS, it would scroll the words out, then wait 1.25 seconds before auto-closing, I assume b/c the \> was no longer recognized.

The message I have now: "\@ Blah Blah Blah \|\.\^" I expected this to display the text, wait 1.25 seconds, then close... but instead the text is displayed for about an eighth of a second before closing. Adding additional \|s or \.s don't seem to have any effect. Using \@@ instead of \@ doesn't seem to change anything either.

The scene is a credits screen, so I don't want the names to scroll across the text box and I certainly don't want the player
to have to press enter to advance the credits. I also don't want to give up my precious choice boxes!





Am I missing something? How can I get this to work the way it did before?

Thanks,
Eric


 
Title: Re: Advanced Text System 2.0
Post by: modern algebra on November 05, 2009, 12:17:53 PM
That does seem to be a problem. Try adding this in its own slot below the ATS but above Main in the script editor:

Code: [Select]
class Window_Message
  alias modrnalg_atsbugfix_pause_skip_0bh2 draw_message_character
  def draw_message_character (c)
    if c == "\x04" || c == "\x02"
      @show_fast = false
      @line_show_fast = false
    end
    modrnalg_atsbugfix_pause_skip_0bh2 (c)
  end
end
Title: Re: Advanced Text System 2.0
Post by: EricDahRed on November 05, 2009, 04:09:53 PM
Cool. Thanks for the response! I was able to fix the glitch this morning before I got your response, but I added
your patch anyway.

My solution:

I noticed that the bug only occurs if \. occurs in a message box where there is a preceding \@ and \| and the message ends with \^.

Ex:  "\@Blah Blah\|\.\^"  Opens and closes almost instantly, seeming to ignore the 1.25 second pause of the \| and \.

Ex:  "\@Blah Blah\.\|\^" Works fine. The box opens, spells the message instantly, waits 1.25 seconds, and closes.


The \. must precede the \| otherwise both pauses are ignored.


I have no idea why this happens, but at least I know how to avoid it! :D


Thanks!
Title: Re: Advanced Text System 2.0
Post by: EricDahRed on November 08, 2009, 05:46:32 PM
Hey man, I just wanted you to know that the patch you wrote works great. Not only did it kill the problem
I was having (and saved me the trouble of implementing that tedious workaround I mentioned earlier over and over
again) but it seems to have evened out the timing of the boxes so that it more closely matches the
original timing of the scene (before ATS), making it easier for me to adjust.

Also, I really want to give you a big thanks for the script overall. As I mentioned before, the game I'm making is actually
a glorified study guide for a college medical program. I release a new version to my classmates a couple days before
each test (which pretty much means I do a update every weekend).

With your script, I can increase the size of the message box and created longer, more in depth questions, or I can create
multiple choice questions with more than 4 possible answers.

The biggest boon, certainly, is the choice box being separate from the text box. Now the students can read the question and
the answers as many times as they need before choosing an answer.

So I offer you a gigantic thanks. You have made my study guide 100% better.

-Eric

Title: Re: Advanced Text System 2.0
Post by: Sebastian Cool ^-^ on November 10, 2009, 10:44:04 AM
 :blizj: You Cool  :blizj:
Title: Re: Advanced Text System 2.0
Post by: Grafikal on November 11, 2009, 12:50:57 AM
He's annoying and I've been fixing his VX Forum spam all day, but not particularly bannable =o
Title: Re: Advanced Text System 2.0
Post by: Okogawa on November 12, 2009, 08:17:13 PM
I wonder if there is any command syntax to have a image posted under the textbox as described in a older but not responded message in http://rmrk.net/index.php/topic,35421.0.html (http://rmrk.net/index.php/topic,35421.0.html)

As of now I use: Show picture, then text, then erase picture, and I really think Advanced Text System 2.0 will do a much better job if I somehow get it to put the image "under" the textbox ^.^;;;

It's a great script regardless

Title: Re: Advanced Text System 2.0
Post by: Okogawa on November 30, 2009, 10:16:09 PM
BUG :tpg:

The command: $game_message.choicebox_windowskin =
"name of file goes here" works 100 % perfect, but *all* versions of the command:

$game_ats.message_windowskin = "name of file goes here"
$game_message.message_windowskin = "name of file goes here"
$game_message.windowskin = "name of file goes here"
fails and fails :-\

Even when I do not get any crash-bug due to me trying all kinds of fixes, why does not the main window change skin when I get the $game_message.choicebox_windowskin =
"name of file goes here" to works great???

Strange...

The very best regards

O.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on November 30, 2009, 10:54:05 PM
ah, yes, that was a problem with my coding. It was never instituted properly. The reason it works for name and choiceboxes is because they are created new everytime they are called. I'll fix that in 3.0 when I get around to it.
Title: Re: Advanced Text System 2.0
Post by: dricc on December 02, 2009, 09:57:40 PM
A 3.0 ? great !
Can we submit some ideas ? ... for exemple , i would like two face window instead of one and you can choose which one is animated . It's possible to make that with ATS 2.0 but not easy .
Title: Re: Advanced Text System 2.0
Post by: modern algebra on December 02, 2009, 10:05:28 PM
Yeah, please do make requests. I won't make any promises and it may still be a long way off, but I'd love some more ideas flowing.
Title: Re: Advanced Text System 2.0
Post by: Okogawa on December 03, 2009, 01:35:57 AM
Eureka! He lives!!! really? :o

Two big requests incoming:

Visual Novel GFX support
In image code.jpg you can see what I have to do in order to archive the Visual Novel effect i.e. a sprite "under" the textbox. My dream is to have Advanced Text System 3.0 support this feature natively by somehow fiddling with the z-element. In a sense ATS 2.0 support this already, but the sprite will
a. mess up the text-formatting in the box
b. z-element is making the sprite always appear OVER the textbox
On image1.jpg you have a perfect example on how a Visual Novel "implementation" shall look like in a basic setting (notice how the sprite is "under" the textbox).

Visual Novel support to hide/show the text-box

In a visual novel it's important to let the user hide/show the text-box. Why? Well, thats because he/she (mostly he) wants to see the entire image behind the text-box  in it's full glory. Look on code.jpg how I solve it, aye, I use one "clean" background image and a sprite or more for the interactiveness. Every character have several expressions, and it's easy to call em in and out and give them different placement. For the "delicate" scenes I (truth be known) use single high quality images (hehe).

Anyways, look on Image2.jpg, and then visualize how you press F8 and the text-window hides, aye, see Image3.jpg on how it looks when its hidden, then press F8 again, or the VX button for continue or cancel and the "text-box" is shown again.

This feature must somehow be implemented into Advanced Text System 3.0

For the full script Jet10985 and Piejamas built around my idea go too: http://www.rpgmakervx.net/index.php?showtopic=22870

The script provided here HACKED by me and NOT working as the original production by Jet10985 and Piejamas. However, this "hack" is best to follow as reference for WHAT it does (not how the code looks, because by the god's it's a mess, but it DOES the job).

So, start up a game with the provided scripts and see for yourself (for REFERENCE only) - this is Visual Novel implementation in VX when it shines...

Main code:
Spoiler for:
Code: [Select]
#===============================================================================
# Hide Text Box Snippet
# By Jet10985
# Original Code by Piejamas
#
# This version is hacked from the original to work for my project without
# triggers, and to make the matter even more complicated I am no scripter
# so I had to brew up two "addons" to have everything work without glitching
# VX (as the script in this form alone nor orginal with trigger work as intened
# without my addons... strange ehh!)
#
# PLEASE DO NOT USE THIS SCRIPT OR ADDONS WITHOUT GOING TO THE PROVIDED URL
# http://www.rpgmakervx.net/index.php?showtopic=22870
# Aye, I might be the "idea" behind this project, but I am NOT the maker of
# the code so Jet10985 and Piejamas are to be praised here.
#
#===============================================================================
# The key F8 will "hide/unide" the text window
#===============================================================================

#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================

class Window_Message
  alias jet_base_update update

  def update
    jet_base_update
    unless $scene.is_a?(Scene_Battle)
    if Input.trigger?(Input::F8)
     if self.visible
      self.visible = false
     else
      self.visible = true
     end
     Sound.play_cursor
    end
  end
end


  def input_pause
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      if self.visible
      self.pause = false
      if @text != nil and not @text.empty?
        new_page if @line_count >= MAX_LINE
      else
        terminate_message
      end
      end
    end
  end
  end

Addon 1
Spoiler for:
Code: [Select]

#===============================================================================
# Hide Text Box Snippet
# By Jet10985
# Original Code by Piejamas
#===============================================================================
# Addon hack by Okogawa, paste it under the main script...
#===============================================================================


#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================

class Window_Message
  alias okogawa_addon_1_base_update update

  def update
    okogawa_addon_1_base_update
    unless $scene.is_a?(Scene_Battle)
    if Input.trigger?(Input::C)
     if self.visible
      self.visible = true
     else
      self.visible = true
    end
#      Sound.play_cursor
   end
  end
end

  def input_pause
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      if self.visible
      self.pause = false
      if @text != nil and not @text.empty?
        new_page if @line_count >= MAX_LINE
      else
        terminate_message
      end
      end
    end
  end

end

Addon 2
Spoiler for:
Code: [Select]

#===============================================================================
# Hide Text Box Snippet
# By Jet10985
# Original Code by Piejamas
#===============================================================================
# Addon hack by Okogawa, paste it under the main script...
#===============================================================================


#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================

class Window_Message
  alias okogawa_addon_2_base_update update

  def update
    okogawa_addon_2_base_update
    unless $scene.is_a?(Scene_Battle)
    if Input.trigger?(Input::B)
     if self.visible
      self.visible = true
     else
      self.visible = true
    end
#      Sound.play_cursor
   end
  end
end

  def input_pause
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      if self.visible
      self.pause = false
      if @text != nil and not @text.empty?
        new_page if @line_count >= MAX_LINE
      else
        terminate_message
      end
      end
    end
  end

end

The very best regards

O.
Title: Re: Advanced Text System 2.0
Post by: Okogawa on December 05, 2009, 04:27:45 PM
Hello again, I have encountered a conflict with Advanced Text System 2.0 and the Visual Novel script in my game.

I post a clean project file here so you can download it: http://www.mediafire.com/?qtmjgy5m22m (http://www.mediafire.com/?qtmjgy5m22m)

The issue I am having is when the Visual Novel script with F8 hides a textbox, then due to Advanced Text System 2.0's own message-settings the "face-image" is NOT hidden. When the Advanced Text System is removed, the Visual Novel script works perfect.

I now seek either a "fix" to the Visual Novel script (just make an addon like the one provided in my demo, as I think it will be easier) or "hack" (hard word) the Advanced Text System 2.0 to work with the Visual Novel script :-\

If anyone can fix this mess, feel free to email me directly at okogawa@hotmail.com or post the fix inside here maybes?

While looking on the Visual Novel bug, please also look/optimize my terrible code for my image-to-movie event I made (I will port lots of movies for the actual game project), as i'ts to many repeats on the tiggers (else the event work 100%).

Hope for any kind assistance, as I am totally stuck now :(

O.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on December 05, 2009, 06:12:26 PM
Hmm, well I don't have time right now to look at it all, but it sounds like a code like this might fix your problem:

Code: [Select]
class Window_Message
  def visible= (value)
    super (value)
    @face_window.visible = value unless @face_window == nil || @face_window.disposed?
    @name_window.visible = value unless @name_window == nil || @name_window.disposed?
    @choice_window.visible = value unless @choice_window == nil || @choice_window.disposed?
  end
end

Place that in its own slot in the editor below the ATS, but still above Main.

If that doesn't work, I'll take a look at the demo when I have time.
Title: Re: Advanced Text System 2.0
Post by: Okogawa on December 07, 2009, 04:43:59 PM
Alas, It did not work... But please do not misunderstand my sadness about it, I am very grateful for your time in making a take on code.

Indeed, if and when you have time, a look on my demo might solve everything since it's all presented there with scripts and explanations. And it's probably no understatement when I say; - if anyone are to solve this issue, I am sure you are the one  :)

Cheers

O.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on December 07, 2009, 04:51:56 PM
Ah yeah, I know what the problem is - I save the faces as distinct sprites in order to quickly exchange them without redrawing when using animated faces. I'll fix it quickly.
Title: Re: Advanced Text System 2.0
Post by: Okogawa on December 07, 2009, 04:55:04 PM
Thanks thanks thanks!!!!!!!! :tpg:

EDIT: it's okay to mail it directly to me on okogawa@hotmail.com or in here or on this forum post (which also discuss this bug): http://www.rpgmakervx.net/index.php?showtopic=23501 (http://www.rpgmakervx.net/index.php?showtopic=23501)  :P

EDIT 2: It's all like Greek to me... but I guess it's a good thing you found the error, because it's more or less impossible to make any game without Advanced Text System 2.0.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on December 07, 2009, 05:41:54 PM
Alright, here, try this code to replace the one I gave you earlier:

Code: [Select]
class Window_Message
  def visible= (value)
    super (value)
    unless @face_window == nil || @face_window.disposed?
      @face_window.visible = value
      @face_window.sprites_visible = value
    end
    @name_window.visible = value unless @name_window == nil || @name_window.disposed?
    @choice_window.visible = value unless @choice_window == nil || @choice_window.disposed?
  end
end

class Window_FaceBox
  def sprites_visible= (boolean)
    @faces_hidden = boolean
    @face_sprites[@active_face].visible = boolean unless @face_sprites.nil? ||
                                              @face_sprites[@active_face].nil?
  end
  alias malg_okog_anmtfce_8iu2 animate_face
  def animate_face (*args)
    return if @faces_hidden == false
    malg_okog_anmtfce_8iu2 (*args)
  end
  alias malgbr_okogw_visnov_puse_7jb3 pause
  def pause (*args)
    malgbr_okogw_visnov_puse_7jb3 (*args)
    @face_sprites[0].visible = @faces_hidden unless @faces_hidden.nil? || @face_sprites[0].nil?
  end
end


BTW, I actually sort of suspect that the choice window hider is incomplete, since it doesn't account for the fact that the choice window is made visible when it is created and so if the message is still running when you press F8, I suspect the choice window would pop up, but that I haven't tested.

I think to resolve that issue, I would probably need to rewrite the hide textbox code with the ATS specifically in mind though, so I won't for now.
Title: Re: Advanced Text System 2.0
Post by: Okogawa on December 07, 2009, 06:21:02 PM
YOU ARE A GENIUS!!! ::PEHU:: IT REALLY WORKS!!! ;8

Finally I can start to relax and actually begin to work on Kanokon - Kitsune no Yomeiri. But before, once again: Thanks for doing this, and above all the Advanced Text System 2.0

Your contributions to the VX RPG is what actually make it possible to even use Enterbrain's product in the first place :blizj:

Cheers!

O.
Title: Re: Advanced Text System 2.0
Post by: Heartofshadow on February 07, 2010, 04:47:47 AM
I understand it's been about 2 months since this was posted in, but since I am unaware of how far off ATS 3.0 is, I figured might as well post it here.

In the instruction section of ATS 2.0 where it goes over all the various codes, there's one I think was forgotten or I'm using wrong. When using \NP[n], which is supposed to display the name of the Actor in party index "n" (0-3), all it does is display the code and not the Actor's name.

I tried searching through the script to find the part that looked for "\NP[n]" in a message window but was unsuccessful. Is this feature implemented? Or did I mess up somewhere?


-Heart of Shadow-
Title: Re: Advanced Text System 2.0
Post by: modern algebra on February 07, 2010, 02:17:30 PM
Yeah, I think I replaced it because you can use \PID and \N to effectively replace it, so:

Code: [Select]
\n[\pid[n]]

would do the same thing.

However, if you want the NP code, then paste the following code into its own slot below the ATS but still above Main:

Code: [Select]
#==============================================================================
# ** Game_Message
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - perform_substitution
#==============================================================================

class Game_Message
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Perform Substitution
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias moaba_prfrmsubs_np_ats_8kn3 perform_substitution
  def perform_substitution (text, *args)
    txt = moaba_prfrmsubs_np_ats_8kn3 (text, *args)
    txt.gsub! (/\\NP\[(\d+)\]/i) { $1.to_i.between? (0, $game_party.members.size - 1) ? $game_party.members[$1.to_i].name : "" } # Name by Party Position
    return txt
  end
end
Title: Re: Advanced Text System 2.0
Post by: Heartofshadow on February 08, 2010, 02:32:20 AM
I just added the line where it looked like it would have been originally in the ATS script, and it works perfectly.

I figured since it was mentioned as a feature of the script, it was already in there. Plus, I like the shorter "\np[n]" over the rather long "\n[\pid[n]]". Thanks for the quick reply and help!

Really looking forward to the next version of this and the Quest Journal.


-Heart of Shadow-
Title: Re: Advanced Text System 2.0
Post by: sanb2036 on February 18, 2010, 04:35:23 AM
I don't remember what your bug was specifically, but try this: find the initialize method of Window_Choicebox and replace it with this:

Code: [Select]
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize
commands, width = prepare_choices
index = -1
@true_command_indices = []
commands.dup.each { |i|
  index += 1
  @true_command_indices.push (index)
  while i.sub! (/\x83<(\d),(\d+)>/) { "" } != nil
if $1.to_i == 1 ? !$game_switches[$2.to_i] : $game_switches[$2.to_i]
  commands.delete (i)
  @true_command_indices.delete (index)
  break
end
  end
}
# Height is same as window if on the same line, else it is no greater than window
if $game_message.choicebox_on_line
  height = $game_message.message_height 
else
  wlh = $game_message.wlh
  height = 32 + [(commands.size.to_f / $game_message.column_max.to_f).ceil.to_i*wlh, $game_message.row_max*wlh].min
end
# Compute window height from command quantity
super(width, commands, $game_message.column_max, 0, 24)
self.windowskin = Cache.system ($game_message.choicebox_windowskin)
self.height = height
self.z = 350
self.back_opacity = $game_message.choicebox_opacity
set_position
  end


I am going to start working on ATS 3.0 pretty soon, so you can expect to see a more thorough fix of the issue in that. I believe that will work though.

Sorry it took so long to reply to your message.
I tried posting it in where you suggested and it still came up with the same problem.
(http://i106.photobucket.com/albums/m271/bambie_sanborn_80165/Problem.jpg)
Title: Re: Advanced Text System 2.0
Post by: modern algebra on February 21, 2010, 05:21:06 PM
heh, I think that was directed at another person, so not too surprising it doesn't work. Sorry for not getting back to you sooner, but after the line in question:

Code: [Select]
@line_spacing.slice! (0, @line_count)

replace it with:

Code: [Select]
@line_spacing.slice! (0, @line_count) if @line_spacing

I'm not positive that will be sufficient, as it appears that the SBS doesn't turn on the $game_temp.in_battle switch, and so where my script relies on that to differentiate between battle and map, problems may occur. If you encounter any others, I will look into a more permanent fix.
Title: Re: Advanced Text System 2.0
Post by: MrElectroniceng on March 06, 2010, 11:10:38 PM
Please help me. I can't add this script. I am new at scrips :lol: please explain it.
Title: Re: Advanced Text System 2.0
Post by: haru on March 07, 2010, 02:07:21 PM
im also new to scripts and it seems like there was a lot of mistakes and bugs on it so could some one post the full script of either 3.0 or 2.0?

Thanks! Haru
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on March 07, 2010, 02:16:46 PM
im also new to scripts and it seems like there was a lot of mistakes and bugs on it so could some one post the full script of either 3.0 or 2.0?

Thanks! Haru

This isn't full of bugs. Its patches for other scripts. The full version is available to download on the 1st page.
Second, go to the script editor. Go down and find the section on the left side named "Materials". Click underneath that part, and right-click and click on 'insert'. Next, go over to the demo of the script. Go to the script editor, find materials, and underneath that should be something labeled 'Advanced Text System'. Click on it. On the right side, select all the text that appears. Copy it. Go back to your project. Click on the new page you inserted. Paste the text.
And there you go
Title: Re: Advanced Text System 2.0
Post by: haru on March 07, 2010, 02:44:17 PM
oh were they ok. well i did that but im new to scripting so im not quite sure what to do after that  ;8 most of the other scripts ive used had all this infomation come with but im guessing you dont put it in for max customazation?
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on March 07, 2010, 02:46:33 PM
Well I would play through the demo, and it will tell you how to use it, and how to customize it.

Modern, I don't know how you can be so nice to everyone when I am sure that you get asked the same questions over and over again.
Title: Re: Advanced Text System 2.0
Post by: haru on March 07, 2010, 03:00:20 PM
oh sorry i never saw that.. like you said a page back you was just skimming same here i just wanted to find the script and paste it in i guess it cant be done like that i will take a look at the demo now. Thank you modern for the script and demo ! :)
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on March 07, 2010, 03:02:14 PM
Oh, I was skimming through for a problem I had with another script and this.
The text file is so big that he would rather you just download the demo. If he put the text on here...it'd be a long long long post.
Title: Re: Advanced Text System 2.0
Post by: haru on March 07, 2010, 03:11:59 PM
ok nice got it up and running alot easier than i thought  :D i know there is a way to change the colour of the chat box does any of have a link for one ? :P
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on March 07, 2010, 03:36:26 PM
I believe that is in the script somewhere. Hold on

$game_ats.message_windowskin = "Window File"

That will change the color to another window skin. Find some window skins and import them into 'system'
Title: Re: Advanced Text System 2.0
Post by: haru on March 07, 2010, 03:39:25 PM
ok thanks
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 07, 2010, 08:48:09 PM
Thanks for being so helpful redyugi :) Makes my life a lot easier
Title: Re: Advanced Text System 2.0
Post by: haru on March 08, 2010, 01:24:50 PM
ok well it worked fine up untill it said this

http://s1046.photobucket.com/albums/b469/harubh/?action=view&current=VX4.jpg (http://s1046.photobucket.com/albums/b469/harubh/?action=view&current=VX4.jpg)

i looked at line 1073 but it looked fine what should i do?
Title: Re: Advanced Text System 2.0
Post by: haru on March 08, 2010, 01:40:35 PM
ok well it worked fine up untill it said this

http://s1046.photobucket.com/albums/b469/harubh/?action=view&current=VX4.jpg (http://s1046.photobucket.com/albums/b469/harubh/?action=view&current=VX4.jpg)

i looked at line 1073 but it looked fine what should i do?

ok dont worry now ive just about sorted it seems there was a miss type on line 1073 all done now though :D
Title: Re: Advanced Text System 2.0
Post by: h3llh0und on March 25, 2010, 03:50:43 AM
hey modern_algebra, is there a way to make it check variables too? like, a choice only apear if a certain variable is LESS, EQUAL, HIGHER or NOT EQUAL to a determined number? or even another variable?
Title: Re: Advanced Text System 2.0
Post by: modern algebra on March 25, 2010, 11:31:43 AM
No, but you can just use a conditional branch right before the choice branch and turn a switch on. So:

Conditional Branch: Variable [XXX] <=> y
  Control Switch: Switch [ZZZ] = ON
Branch END
Show Choices: \son[ZZZ] choice 1, choice 2, etc...


I figured that would be a far more efficient way then including checks for every possible thing you can use in a conditional branch.
Title: Re: Advanced Text System 2.0
Post by: user3k on April 07, 2010, 02:41:49 AM
I've a request to Advanced Text System 3.0:
- A way to walk with the message in the screen (ie you talk with someone, but can move around )
Title: Re: Advanced Text System 2.0
Post by: ?????? on April 07, 2010, 05:55:05 PM
 ;D This script with text effects... This is exciting...  ;D
Title: Re: Advanced Text System 2.0
Post by: Grafikal on April 07, 2010, 11:35:15 PM
Google translations make me giggle :)
Title: Re: Advanced Text System 2.0
Post by: passededge on April 07, 2010, 11:41:59 PM
Is there a way in the script to have the text itself positioned on the message back differently?  In my case I'm using a custom message back, so I want the text centered differently then the normal one.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on April 07, 2010, 11:45:29 PM
You could alter the x, y, width and height of the message. So, either $game_message or $game_ats :

.message_x = integer (-1 for default placement)
.message_y = integer (-1 for default placement)
.message_width = positive integer > 32
.message_height = positive integer > 32
Title: Re: Advanced Text System 2.0
Post by: user3k on April 08, 2010, 12:37:18 AM
bug: this type of letter crash the game: É Ó Á Í Ú
Title: Re: Advanced Text System 2.0
Post by: modern algebra on April 17, 2010, 03:28:12 PM
Have you tried inserting the Foreign Characters Bug Patch? It's located in the Bug Patches section of the first post.


Also, for your request to allow walking when the text box is open... how would you want to work that? Would you still be able to interact with other events. If the text box was over a character, would is move with them, etc... I'm not overly opposed to the idea, but there are a lot of factors involved that I'd need to know before I could do it.
Title: Re: Advanced Text System 2.0
Post by: user3k on April 17, 2010, 03:35:20 PM
Yes, i've tried.
The crash occur when Paragraph Formatter is enabled.
I've tried the Paragraph Formatter 2.0, but the same thing occur.
Title: Re: Advanced Text System 2.0
Post by: Nessiah on May 01, 2010, 07:34:09 PM
I found this stack error bug whenever we press f12!
at line...1874:
start_choice if $game_message.choicebox && !$game_message.choice_texts.empty?

Replaced 1871 with [ alias modalg_ats_strt_chce_if_able_94n5 close unless $@ ]
for the meantime, I hope that'll help!
Title: Re: Advanced Text System 2.0
Post by: user3k on May 02, 2010, 10:14:01 PM
Bug: when using Paragraph Formatter (1.1 or 2.0) and using the option 'bold' in the messages, the words are 'cut' in the end of the window.
Title: Re: Advanced Text System 2.0
Post by: Cascading Dragon on May 16, 2010, 12:39:11 AM
Just a suggestion for 3.0, have a code to show skill name/icon.
Title: Re: Advanced Text System 2.0
Post by: modern algebra on May 18, 2010, 09:15:38 PM
Alright, will do.
Title: Re: Advanced Text System 2.0
Post by: captainregal on June 13, 2010, 09:48:56 AM

Level 5
Group Icon

Group: Members
Posts: 61
Type: Event Designer
RM Skill: Advanced

Warn: (0%) -----


   
I don't know if u get this a lot but when you F12 the game to reset. I always get the Stack too deep error. Is there anyway around this???

(http://i630.photobucket.com/albums/uu28/captainregal/ATSError.png)

Title: Re: Advanced Text System 2.0
Post by: modern algebra on June 13, 2010, 11:03:25 AM
yeah, go to the line above def close. It should say

Code: [Select]
alias something close

something is just a bunch of random characters. Add

Code: [Select]
unless $@

right after that line, on the same line.
Title: Re: Advanced Text System 2.0
Post by: captainregal on June 13, 2010, 11:55:14 AM
TY Ty fixed the problem!!!
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 13, 2010, 01:14:22 PM
Alright. Updated to Version 3.0. There may be a few bugs I missed, so I invite you all to please try it out and report any bugs or incompatibilities you might find. I will note that if you are upgrading from ATS 2, you will need to also put in the Conversion patch below the ATS3, since I changed a lot of the naming and things in this version. But once you have the conversion patch, all the work you did with ATS 2.0 will be preserved.

Download Demo (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21375)
Download Text Document (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21376)
Download ATS 2 Conversion Patch (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21377)
Download Sample SpeechTag Graphics (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=20973)
Title: Re: Advanced Text System 3.0
Post by: cozziekuns on June 13, 2010, 05:45:55 PM
Finally upgraded. I'll test it out as soon as I can. Good Job MA!

EDIT: OMG, you can view a record of your text. I've always wanted to know how to do that.
Title: Re: Advanced Text System 3.0
Post by: Mishka on June 13, 2010, 05:51:04 PM
I can't wait to take 'er fer a spin, but 2.0 was pretty damn good, so I am actually watering at the mouth thinking about this thing (which provides many essential features.)
Title: Re: Advanced Text System 3.0
Post by: Cascading Dragon on June 13, 2010, 08:28:09 PM
Wow. Very nice MA. I like all the extra features and how you redid them
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 13, 2010, 11:54:44 PM
@cozzie - Thanks - in ATS2, I was pretty sloppy and instead of using oy to scroll contents, I had instead chopped off the top line and redrew the last three on a new bitmap. It was pretty sloppy and the scroll review and smooth scrolling features are only possible because I did it properly in this version. I'm glad you like :)

@Mikhail - well, I hope I don't disappoint you. Be sure to tell me what you think :)

@redyugi - Thanks!
Title: Re: Advanced Text System 3.0
Post by: Countdown on June 14, 2010, 01:12:55 AM
Hey MA. Awesome update! I love it! I'm using the Conversion patch...and I plug it in, and test and I get this:
(http://i278.photobucket.com/albums/kk96/Arcono/rmvx/error.png)
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 14, 2010, 01:15:18 AM
I can't see that - moved or deleted
Title: Re: Advanced Text System 3.0
Post by: Countdown on June 14, 2010, 01:16:08 AM
Yeah, sorry. I was cleaning up my photobucket account and moved it.  It's up again.
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 14, 2010, 01:26:22 AM
and you've pasted in ATS3? and put the Conversion Patch under ATS3 in the Script Editor?
Title: Re: Advanced Text System 3.0
Post by: Countdown on June 14, 2010, 01:28:32 AM
*Facepalm* Now I have. It works now. Thanks for correcting me on my retardedness.
EDIT: Do I still need the "Special Codes Formatter" or the "Paragraph Formatter v1.1" scripts anymore?
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 15, 2010, 12:37:49 AM
I had to do a small update to the ATS2 Conversion patch. You can download it here (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=20701). All it was was a little problem with $game_message.choicebox_fitted, so if you don't need that then you won't need this update.
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 19, 2010, 06:17:07 PM
Alright, well no bug reports so far, so that's a good sign :)

Anyway, I decided to add a feature so the demo has been updated. All this does is make it easier to use non-standard facesets. Basically, now when you set :face_width and :face_height to 0, it will automatically draw the whole face. This means that instead of having to change the values of :face_width and :face_height every time you want to show a larger or smaller face, you can always have them at 0 and it will show the whole face, whether single or in a set. You can still specify values for :face_width and :face_height, if you wish, and when you do it will cut out the center of the face to those specifications; but this just makes it easier for people who just want to show the whole face.

Anyway, that's the only thing I changed in this update, and so if that feature doesn't appeal to you then you don't need to get the updated version.
Title: Re: Advanced Text System 3.0
Post by: cozziekuns on June 19, 2010, 06:23:52 PM
Could be useful if your drawing a lot of faces (which is exactly what I'm doing). By the way, where would you set your own images of your own speech bubbles?

EDIT: Nevermind, I found it out myself.
Title: Re: Advanced Text System 3.0
Post by: Kayo on June 23, 2010, 02:10:23 PM
I found a bug! Hopefully you can squash it lol.

So if I start a new game or a continue game then return to the title screen and start a new game or a continue game again I get this error message when going through a meassage box:

"Script 'ATS 3.0' line 3546: SystemStackError occured

Stack level too deep"

So yea... i noticed this bug in Ats 2.0 too. Hopefully this is fixable because i wuldnt want to have the character close the whole application every time he dies against that hard boss or chooses the wrong save file.

This isnt the same problem CaptainRegal was having right?

(This is my first time posting on this board and i just wanted to say. I cannot read the verification letters hopefully im not the only one lol)
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 23, 2010, 02:27:45 PM
It's not the same problem, but it is the same mistake I made. I didn't realize pause= was definded in the hidden Window class. Right around that line you should see:

Code: [Select]
alias whatever pause=

change it to:

Code: [Select]
alias whatever pause= unless $@

whatever is just a bunch of characters; don't modify them -just add the unless $@

I'll fix it for the next update.
Title: Re: Advanced Text System 3.0
Post by: noian on June 26, 2010, 05:52:12 AM
Since AMS version 3 includes a paragraph formatter, where should the old PF2 be placed (below or above?) as PF2 is required for some of your other scripts (or can AMS3 substitute PF2?)
Title: Re: Advanced Text System 3.0
Post by: modern algebra on June 26, 2010, 11:32:05 AM
No, it can't substitute for PF2 in other scripts because unlike the real paragraph formatters, I designed the ATS one to go line by line so as to (A) reduce lag with really long messages, and (B) allow me to work it in where face sets are set so as to interfere with only a couple lines. PF2, on the other hand, does the whole message at once and so the scripts that use it can't use the ATS3 version.

Anyway, it doesn't matter where the PF2 is in relation to ATS3 in the Script Editor. Put it anywhere above Main, but usually when I use it I put it at the top of my custom scripts. It really doesn't matter though in general. The only scripts it will need to be under is any that overwrite the initialize method of Game_System.
Title: Re: Advanced Text System 3.0
Post by: tsy0302 on July 23, 2010, 01:43:42 AM
A very good text system! BTW when I first play the demo, when I talked to "Size matters", the game crashed with an error stack level too deep at line 1800 or so which is "alias back_opacity= opacity=". However when i play the demo again without changing anything, the same error didn't appear.  I think I'll let you know anyway, so you can check if you have to change anything.

I don't know whether it's proper to ask this question here or not. But I really want to know what does this "unless $@" do, and why this solve the problem you posted before. I'm new to scripting so I'd really appreciat if you could explain it to me.
Thanks. :)
Title: Re: Advanced Text System 3.0
Post by: Cascading Dragon on July 23, 2010, 03:18:59 AM
You know that if you hit F12 during gameplay, it restarts the program, right?
Well that initializes all the scripts again, which maybe cause a stack error depending on what the script modifies.
Code: [Select]
unless $@
tells the program to only initialize the script once, even if F12 is used
Title: Re: Advanced Text System 3.0
Post by: modern algebra on July 23, 2010, 02:50:24 PM
Well, that's not entirely true; it does that only indirectly. $@ contains the backtrace for the last exception raised. It is useful for debugging particularly, since if you do something like this:

Code: [Select]
begin
  # Code that may throw an exception
  # Code that may throw an exception
  # Code that may throw an exception
  # Code that may throw an exception
  # Code that may throw an exception
rescue
  p $@
end

It will print out where the error has occured.

When you first start the program, $@ will be nil, which is why "unless $@" will not prevent the initial aliases when first "loading" the scripts. The reason "unless $@" works to avoid stack errors in hidden scripts is because when F12 is pressed, an exception occurs in the update method of the Graphics module, which means that the second time it is "loading" the scripts, $@ will have the backtrace for that exception and therefore will not be nil, and so the "unless $@" will avoid re-aliasing the methods.

Personally, I think it is bad form to use this, and I prefer to directly check if the aliased method is already defined with a self.method_defined? check.

Anyway, thanks for the bug report.

I have decided to stop being lazy and have released v. 3.0b, which fixes both F12-related errors. That is all it does so there is no need to download the new version if that is irrelevant to anyone or if they've fixed it themselves. Hopefully that's the end of the bugs.
Title: Re: Advanced Text System 3.0
Post by: tsy0302 on July 23, 2010, 05:27:19 PM
Thanks for the explanation?It clarified al lot of things for my script learning.
One more question:
Do I still need the  paragraph formatter for other scripts like outline, quest journal, diary system?
Since in this link http://rmrk.net/index.php/topic,35059.0.html, it says that it requires the paragraph formatter.
I'm not sure what will happen if I use the paragraph formatter with the ATS at the same time.
Title: Re: Advanced Text System 3.0
Post by: modern algebra on July 23, 2010, 08:59:13 PM
yes, you still need the paragraph formatter for other scripts and it does not interfere with the ATS
Title: Re: Advanced Text System 3.0
Post by: captainregal on July 24, 2010, 02:25:34 AM
I think I have found another bug. When you use choices. With the Dim Background message option it works. However as soon as you exit the choices. The dim choice part of the window won't go away until you enter the menu or exit the map.
Title: Re: Advanced Text System 3.0
Post by: gigazomebies on July 24, 2010, 05:30:20 AM
Never mind, now I had solved this problem by myself.  ;D
Anyway, thanks for creating the great tool!

--------------------------------------------------------------------------------------------
modern algebra,

I have a problem with the localization of ATS 3.0. It's not compatable with Woratana's display localization alphabets scripts.

because of ATS has revised the code of Window_Message, so I really have no idea how to implement Woratana's code into it.

Thanks in advanced

ps. please excuse my bad english, coz it's not even my third language ;8
Title: Re: Advanced Text System 3.0
Post by: modern algebra on July 26, 2010, 01:07:02 PM
Cool, I'm glad you solved the problem :)

Good luck with your project and I hope you enjoy the ATS
Title: Re: Advanced Text System 3.0
Post by: E. Belle on August 04, 2010, 10:57:55 PM
Hello! First off, I'd like to say that this is an awesome script.
Anyhow, I'm having a problem.
I'm using Display Victory Aftermath and, of course, your script. At first it all works fine, but when it begins popping up dialogue boxes of Actors saying things like "We beat them all" blah blah blah, it gets to Actor 3 and an error for ATS pops up and the game crashes.
(http://i998.photobucket.com/albums/af104/dude10101012/Stuff/th_ERROR.jpg) (http://s998.photobucket.com/albums/af104/dude10101012/Stuff/?action=view&current=ERROR.jpg)

Any ideas as to why this is happening?

EDIT: Oh, here's what the line looks like, in case you need to know.
Code: [Select]
        @text += $game_message.texts[i].clone + "\x00"
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 05, 2010, 01:41:49 PM
Well, try upgrading to v. 3.0b and see if the error persists. You will need the ATS 2.0 Conversion Patch too if you have already been using 2.0 in your project. If it does, I will look into the issue.
Title: Re: Advanced Text System 3.0
Post by: E. Belle on August 06, 2010, 01:56:45 AM
Well, I upgraded, but now I'm getting an error when I press new game.
(http://i998.photobucket.com/albums/af104/dude10101012/ERROR.jpg)

Did I put it in wrong or something?
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 06, 2010, 01:22:45 PM
Well, my line 2604 is:
Code: [Select]

    @face_window = Window_FaceBox.new (self.viewport)

and that line is fine, since Window_Facebox expects that argument. If yours doesn't it's telling me that either (a) your line 2604 is not the same as mine, in which case you need to show me exactly what that line says; or (b) you did not delete the old version of the script or you have another script below it which redefines the initialize method of Window_Facebox. If it is the former, you have to delete the ATS 2.0 version; if the latter, tell me what script it is and I'll try to find a workaround.
Title: Re: Advanced Text System 3.0
Post by: E. Belle on August 07, 2010, 01:03:38 AM
Well, line 2604 is from this page so I doubt it's wrong, but here it is anyway:
Code: [Select]
@face_window = Window_FaceBox.new (self.viewport)
(The same as yours)
As for deleting 2.0, it's definitely deleted.
I have the following scripts below ATS 3.0:
Mithran Item Selection Number Fix
OriginalWij Row Changer
OriginalWij and Mac Malone Chest Item Pop-up
Yanfly Engine RD - Scene Menu Redux
Yanfly Engine RD - Scene Battle Redux
Scene Battle Redux Fix
Modern Algebra Flash Selected Enemy
Yanfly Engine RD - Scene Status Redux
Yanfly - Extended Equip
Yanfly - Custom Target Select
Yanfly Engine RD - Party Data Display
Yanfly Engine RD - Victory Aftermath
Yanfly Engine RD - Victory Extend
Modern Algerbra - Victory Aftermath Fix
Yanfly Engine RD - Common Event Menu
Yanfly Engine RD - Common Event Shop
Yanfly Engine RD - Bestiary/Scan
Yanfly Engine RD - Skill Display
Yanfly Engine RD - Menu System
KGC Steal
OriginalWij Debug Tools
Mr. Anonymous Battle Screen Effects
Neo Save System III
TDS Name Pop-Up
Prexus Party Manager Switcher

That's all of them, sorry about the long list.
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 07, 2010, 02:39:45 AM
Well, first try placing the ATS below all of them but still above Main. Then Press CTRL+SHIFT+F and put Window_FaceBox in the search field. Let me know if any beside the ATS come up in the list and tell me which it is.
Title: Re: Advanced Text System 3.0
Post by: E. Belle on August 07, 2010, 04:30:15 AM
Putting the script below all the other scripts (That was something I should've done in the first place, sorry) got rid of the line 2604 error, but the other error only changed to line 172, which is identical to the line from 2.0.
Code: [Select]
     @text += $game_message.texts[i].clone + "\x00"
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 07, 2010, 01:06:13 PM
Well, it's definitely a compatibility error. But I'm not going to find and look through all of those scripts. Try starting a new project with just the ATS, and then add in each of those scripts one by one. When the error first occurs, tell me which script you had just added and give me a link to it. Well, it might be Display Victory Aftermath, so I'll test that first, but I need a link since I think Yanfly took down all his YERD scripts.
Title: Re: Advanced Text System 3.0
Post by: Joshua.Bellmore on August 07, 2010, 06:13:06 PM
 ;8 This is absolutely amazing. I can't wait to dive into this script and enhance my games. Thank you so much.
Title: Re: Advanced Text System 3.0
Post by: XxInfusionsxX on August 10, 2010, 08:16:38 AM
Just wondering... is there any way to make it so it DOESN'T merge all the text boxes? I'm trying to make an event speak with only one line per message box. Like the default message system actually. Right now I'm just putting multiple line breaks but that becomes a hassle. Here's an example:

>"What's up?"
>
>
>

>"...Why do you look so down?"
>
>
>

and NOT

>"What's up?""Why do you look so down?"
>
>
>

Help is appreciated. This system is amazing  ^-^
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 10, 2010, 02:02:40 PM
Yeah, just set APPEND_TEXT to false in the script. It should be around line 769. If you want to turn it on or off in-game, then just use the following codes in a script call:

Code: [Select]
ats_all (:append_text, true)
to turn it on, or
Code: [Select]
ats_all (:append_text, false)
to turn it off.
Title: Re: Advanced Text System 3.0
Post by: XxInfusionsxX on August 10, 2010, 06:25:34 PM
Oh wow I can't believe I missed that! Exactly what I wanted, thanks  ;D
Title: Re: Advanced Text System 3.0
Post by: E. Belle on August 10, 2010, 10:34:38 PM
The error suddenly stopped appearing. I don't know what I did, but it's working fine now. Thanks for your help.
Title: Re: Advanced Text System 3.0
Post by: Genjis on August 11, 2010, 12:57:28 PM
I have the exact same issue like E. Belle:
http://www.rpgmakervx.net/index.php?showtopic=19726&pid=330573&st=80&#entry330573 (http://www.rpgmakervx.net/index.php?showtopic=19726&pid=330573&st=80&#entry330573)

Judging from the list of scripts you posted, I assume you're using the KGC+YanflyPLUS Base Demo as well? I figured out which script is causing this error:
(http://i998.photobucket.com/albums/af104/dude10101012/ERROR.jpg)

It's YERD_MenuSystem. I've verified this by deleting one script at a time, then start the game, then delete another script, and so on.  But once this script is being deleted, everything works.

I other news, I also found out that the game crashes if YERD_VictoryAftermath is deleted. The game doesn't crash if I keep it AND use ATB3.0b, but couldn't care less if I delete it AND DON't USE ATB3.0b. Since I plan to keep both ATB and VictoryAftermath anyway, everything's fine here. I know that it was already mentioned, but for the record, I though I might as well mention it.

Overall, these two scripts (YERD_MenuSystem and YERD_VictoryAftermath) are the only troublemakers, you can literally delete any other script you want and it still works in the KGC+YanflyPLUS Base Demo. The KGC scripts are fine, you can use ATS3.0b with KGC Script Library without any problems.

That's all I could figure out so far. I would be more then grateful if you could find a solution for this problem.


Edit: Nevermind, I fixed the problem. Appearently, if you place ATB3.0b at the very end (read: As the last script right before Main) the game won't crash. Only noticed that just now that you that you said "try placing the script at the end".
So yeah, case closed. Still, I guess it's good to know which scripts caused problems in the first place.

Here's the code from YERD_MenuSystem:

Code: [Select]
#===============================================================================
#
# Yanfly Engine RD - Menu System Options
# Last Date Updated: 2009.05.12
# Level: Easy, Normal
#
# The "End Game" option is quite possibly the most useless function in RPG Maker
# VX games. Not only does it have little functionality but its functions can
# be reproduced by Alt+F4 and F12. This script replaces "End Game" with a new
# menu altogether and giving the player some familiar options seen in many of
# today's commercial RPG's such as changing window skins, adjust sound volume,
# turning off animations during battle, and the like.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.05.12 - Auto-Dash update. If player holds down the dash button when
#                this option is enabled, the player will walk instead of dash.
# o 2009.05.09 - Compatibility update with Woratana's NeoMessage.
#                Compatibility update with Modern Algebra's ATS.
# o 2009.05.07 - Started script and finished.
#===============================================================================
# Instructions
#===============================================================================
#
# Input this script anywhere above Main. It's plug and play outside of changing
# a few variables and switches, which will be listed below:
#
# - If you have variables bound to variables 91, 92, 93, and 94, scroll down and
#   bind them to unused variables.
# - If you have switches bound to switches 91, 92, 93, 94, 95, or 96, scroll
#   down and bind them to unused switches.
#
# Then, download the windows pack, and create a "Windows" folder inside your
# Graphics folder. Input the windows pack there. You're all set to go.
#
#===============================================================================
#
# Compatibility
# - Works With: Woratana's NeoMessage
# - Works With: Modern Algebra's ATS
# - Alias: Game_Player: dash?
# - Alias: Window_Base: initialize
# - Alias: Scene_Battle: display_normal_animation
# - Overwrites: Scene_End: All of it
# - Overwrites: Vocab: game_end
#
#===============================================================================

$imported = {} if $imported == nil
$imported["MenuSystemOptions"] = true

module YE
  module SYSTEM
     
    # This changes the "End Game" string to a new string. This completely
    # overrides the default term from the database for a reason and that's
    # because this is adjustable from the title menu as well.
    TITLE = "System"
   
    #---------------------
    # Window Configuration
    #---------------------
   
    # This will affect what string data will appear for the window selection
    # portion of the system menu.
    WINDOW_HELP = "Select preferred window skin."
    WINDOW_SKIN = "Window Skin"
   
    # This sets the default window used when nothing is selected. This also
    # determines the window skin used at the title screen. Reference it to
    # the list below to determine which window skin. Don't make this 0.
    DEFAULT_WINDOW = 7
   
    # This determines the variable used to store the player's windowskin choice.
    WINDOW_VARIABLE = 91
   
    # This below determines what the variable refers to when it's used as
    # reference. Put your windows inside the Graphics/Windows folder. ID 0 will
    # automatically push back to the default window's ID.
    WINDOW_HASH ={
    # Window ID => Window Name
              1 => "Red",
              2 => "Orange",
              3 => "Yellow",
              4 => "Green",
              5 => "Cyan",
              6 => "Navy",
              7 => "Blue",
              8 => "Violet",
              9 => "Purple",
             10 => "Pink",
             11 => "Grey",
             12 => "Black",
    } # Do not remove this.
   
    #---------------------
    # Volume Configuration
    #---------------------
   
    # This will affect what string data will appear for the volume adjustment
    # portion of the system menu.
    BGM_HELP  = "Adjust BGM volume. Press L/R to mute."
    SFX_HELP  = "Adjust SFX volume. Press L/R to mute."
    BGS_HELP  = "Adjust BGS volume. Press L/R to mute."
    BGM_TITLE = "BGM Volume"
    SFX_TITLE = "SFX Volume"
    BGS_TITLE = "BGS Volume"
    VOL_MUTE  = "Mute"
   
    # These are the variables and switches that govern the sound effect volumes.
    # Note that for the variables, the higher they are, the lower the volume.
    BGM_VOLUME_VAR  = 92    # Variable
    SFX_VOLUME_VAR  = 93    # Variable
    BGS_VOLUME_VAR  = 94    # Variable
    BGM_MUTE_SWITCH = 92    # Switch
    SFX_MUTE_SWITCH = 93    # Switch
    BGS_MUTE_SWITCH = 94    # Switch
   
    # This adjusts the gradient colours for each of the volume controls.
    BGM_COLOUR1 = 30
    BGM_COLOUR2 = 31
    SFX_COLOUR1 = 28
    SFX_COLOUR2 = 29
    BGS_COLOUR1 = 20
    BGS_COLOUR2 = 21
   
    #---------------------
    # Battle Animations
    #---------------------
   
    # This will affect what string data will appear for the toggling of
    # battle animations portion of the system menu.
    ANI_TITLE = "Battle Animations"
    ANI_HELP  = "Toggles animations during battle."
    ANI_ON    = "Shown"
    ANI_OFF   = "Hidden"
   
    # This is the switch used to adjust battle animations. If it is off,
    # animations are enabled. If it is on, animations are disabled.
    ANI_SWITCH = 91
   
    #---------------------
    # Automatic Dashing
    #---------------------
   
    # This will affect what string data will appear for the toggling of
    # automatic dashing portion of the system menu.
    AUTO_DASH_TITLE = "Automatic Dash"
    AUTO_DASH_HELP  = "Toggles automatic dashing."
    AUTO_DASH_ON    = "Auto"
    AUTO_DASH_OFF   = "Hold"
   
    # This is the switch used to determine whether or not autodashing is on.
    AUTO_DASH_SWITCH = 95
   
    #---------------------
    # Instant Text
    #---------------------
   
    # This will affect what string data will appear for the instant text
    # portion of the system menu.
    INSTANT_TEXT_TITLE = "Instant Text"
    INSTANT_TEXT_HELP  = "Toggles instant text display."
    INSTANT_TEXT_ON    = "Instant"
    INSTANT_TEXT_OFF   = "Default"
   
    # This is the switch used to determine whether or not instant text is on.
    INSTANT_TEXT_SWITCH = 96
   
    #---------------------
    # Remaining Text
    #---------------------
   
    # This will affect what remaining string data is left for the system menu.
    RETURN_TO_TITLE   = "Return to Title Screen"
    RETURN_TITLE_HELP = "Return back to the title screen."
    RETURN_TO_MENU    = "Return to Main Menu"
    RETURN_MENU_HELP  = "Return back to the main menu."
     
  end # SYSTEM
end # YE

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

module Vocab
  def self.game_end
    return YE::SYSTEM::TITLE
  end
end

module Cache
  def self.windows(filename)
    load_bitmap("Graphics/Windows/", filename)
  end
end

module RPG
 
  class BGM < AudioFile
    def play
      if @name.empty?
        Audio.bgm_stop
        @@last = BGM.new
      else
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::BGM_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
        end
        Audio.bgm_play("Audio/BGM/" + @name, vol, @pitch)
        @@last = self
      end
    end #Play
  end # BGM
 
  class ME < AudioFile
    def play
      if @name.empty?
        Audio.me_stop
      else
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::BGM_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
        end
        Audio.me_play("Audio/ME/" + @name, vol, @pitch)
      end
    end
  end # ME
 
  class SE < AudioFile
    def play
      unless @name.empty?
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::SFX_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH]
        end
        Audio.se_play("Audio/SE/" + @name, vol, @pitch)
      end
    end
    def self.stop
      Audio.se_stop
    end
  end # SE
 
  class BGS < AudioFile
    def play
      if @name.empty?
        Audio.bgs_stop
        @@last = BGS.new
      else
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::BGS_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH]
        end
        Audio.bgs_play("Audio/BGS/" + @name, vol, @pitch)
        @@last = self
      end
    end
  end # BGS
 
end # RPG

#===============================================================================
# Game Player
#===============================================================================

class Game_Player < Game_Character
 
  #--------------------------------------------------------------------------
  # alias dash?
  #--------------------------------------------------------------------------
  alias dash_mso dash? unless $@
  def dash?
    if $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH]
      return false if @move_route_forcing
      return false if $game_map.disable_dash?
      return false if in_vehicle?
      return false if Input.press?(Input::A)
      return true
    else
      dash_mso
    end
  end
 
end

#===============================================================================
# Window
#===============================================================================

class Window
 
  #--------------------------------------------------------------------------
  # update windowskin
  #--------------------------------------------------------------------------
  def update_windowskin
    if $game_variables != nil
      winvar = YE::SYSTEM::WINDOW_VARIABLE
      if $game_variables[winvar] == 0
        $game_variables[winvar] = YE::SYSTEM::DEFAULT_WINDOW
      elsif !YE::SYSTEM::WINDOW_HASH.include?($game_variables[winvar])
        $game_variables[winvar] = YE::SYSTEM::DEFAULT_WINDOW
      end
      mso_windowskin = YE::SYSTEM::WINDOW_HASH[$game_variables[winvar]]
    else
      mso_windowskin = YE::SYSTEM::WINDOW_HASH[YE::SYSTEM::DEFAULT_WINDOW]
    end
    self.windowskin = Cache.windows(mso_windowskin)
  end
 
end

#===============================================================================
# Window Base
#===============================================================================

class Window_Base < Window
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_window_mso initialize unless $@
  def initialize(x, y, width, height)
    initialize_window_mso(x, y, width, height)
    self.update_windowskin
  end
 
end

#===============================================================================
# Window Message
#===============================================================================

class Window_Message < Window_Selectable
 
  #--------------------------------------------------------------------------
  # alias update show fast
  #--------------------------------------------------------------------------
  alias update_show_fast_mso update_show_fast unless $@
  def update_show_fast
    if $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH]
      if self.pause or self.openness < 255
        @show_fast = false
      else
        @show_fast = true
      end
      if @show_fast and @wait_count > 0
        @wait_count -= 1
      end
    else
      update_show_fast_mso
    end
  end

if $worale != nil
  if $worale["NMS"]
  #--------------------------------------------------------------------------
  # alias draw_name
  #--------------------------------------------------------------------------
  alias draw_name_mso draw_name unless $@
  def draw_name(name, x, y)
    draw_name_mso(name, x, y)
    @namebox.update_windowskin
  end
  end
end
 
end

#===============================================================================
# Window System
#===============================================================================

class Window_System < Window_Selectable
 
  #--------------------------------------------------------------------------
  # Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 56, 544, 360)
    @column_max = 1
    self.index = 0
    self.active = true
    refresh
  end
 
  #--------------------------------------------------------------------------
  # Refresh
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    @data.push(0) # Window Skins
    @data.push(1) # Sound Volume/Sound Mute
    @data.push(2) # BGM Volume/BGM Mute
    @data.push(3) # Ambience Volume/Ambience Mute
    @data.push(4) # Battle Animations
    @data.push(5) # Auto-Dash
    @data.push(6) # Instant Text
    @data.push(7) # Return to Title
    @data.push(8) # Return to Menu
    @item_max = @data.size
    self.contents.clear
    for i in 0..@item_max
      self.contents.font.color.alpha = 255
      draw_item(i)
    end
    #---
  end
 
  #--------------------------------------------------------------------------
  # Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    sw = self.width - 32
    dw = sw
    #---
    case index
    when 0
      dx = 0
      dy = 0
      text = YE::SYSTEM::WINDOW_SKIN
      self.contents.draw_text(dx, dy, dw, WLH, text, 1)
      winvar = $game_variables[YE::SYSTEM::WINDOW_VARIABLE]
      text = YE::SYSTEM::WINDOW_HASH[winvar - 2]
      self.contents.draw_text(dx + dw * 0/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar - 1]
      self.contents.draw_text(dx + dw * 1/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar]
      self.contents.draw_text(dx + dw * 2/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar + 1]
      self.contents.draw_text(dx + dw * 3/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar + 2]
      self.contents.draw_text(dx + dw * 4/5, dy + WLH, dw/5, WLH, text, 1)
    when 1
      dx = 0
      dy = WLH * 2
      text = YE::SYSTEM::BGM_TITLE
      self.contents.draw_text(dx + 20, dy, dw/3 - 20, WLH*2, text, 0)
    when 2
      dx = 0
      dy = WLH * 4
      text = YE::SYSTEM::SFX_TITLE
      self.contents.draw_text(dx + 20, dy, dw/3 - 20, WLH*2, text, 0)
    when 3
      dx = 0
      dy = WLH * 6
      text = YE::SYSTEM::BGS_TITLE
      self.contents.draw_text(dx + 20, dy, dw/3 - 20, WLH*2, text, 0)
    when 4
      dx = 0
      dy = WLH * 8
      text = YE::SYSTEM::ANI_TITLE
      self.contents.draw_text(dx + 20, dy, dw/2 - 20, WLH, text, 0)
      if $game_switches[YE::SYSTEM::ANI_SWITCH]
        en1 = false
        en2 = true
      else
        en1 = true
        en2 = false
      end
      text1 = YE::SYSTEM::ANI_ON
      text2 = YE::SYSTEM::ANI_OFF
      self.contents.font.color.alpha = en1 ? 255 : 128
      self.contents.draw_text(sw*1/2, dy, dw/4, WLH, text1, 1)
      self.contents.font.color.alpha = en2 ? 255 : 128
      self.contents.draw_text(sw*3/4, dy, dw/4, WLH, text2, 1)
    #---
    when 5
      dx = 0
      dy = WLH * 9
      text = YE::SYSTEM::AUTO_DASH_TITLE
      self.contents.draw_text(dx + 20, dy, dw/2 - 20, WLH, text, 0)
      if $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH]
        en1 = true
        en2 = false
      else
        en1 = false
        en2 = true
      end
      text1 = YE::SYSTEM::AUTO_DASH_ON
      text2 = YE::SYSTEM::AUTO_DASH_OFF
      self.contents.font.color.alpha = en1 ? 255 : 128
      self.contents.draw_text(sw*1/2, dy, dw/4, WLH, text1, 1)
      self.contents.font.color.alpha = en2 ? 255 : 128
      self.contents.draw_text(sw*3/4, dy, dw/4, WLH, text2, 1)
    #---
    when 6
      dx = 0
      dy = WLH * 10
      text = YE::SYSTEM::INSTANT_TEXT_TITLE
      self.contents.draw_text(dx + 20, dy, dw/2 - 20, WLH, text, 0)
      if $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH]
        en1 = true
        en2 = false
      else
        en1 = false
        en2 = true
      end
      text1 = YE::SYSTEM::INSTANT_TEXT_ON
      text2 = YE::SYSTEM::INSTANT_TEXT_OFF
      self.contents.font.color.alpha = en1 ? 255 : 128
      self.contents.draw_text(sw*1/2, dy, dw/4, WLH, text1, 1)
      self.contents.font.color.alpha = en2 ? 255 : 128
      self.contents.draw_text(sw*3/4, dy, dw/4, WLH, text2, 1)
    #---
    when 7
      dx = 0
      dy = WLH * 11
      text = YE::SYSTEM::RETURN_TO_TITLE
      self.contents.draw_text(dx + 20, dy, dw - 20, WLH, text, 0)
    #---
    when 8
      dx = 0
      dy = WLH * 12
      text = YE::SYSTEM::RETURN_TO_MENU
      self.contents.draw_text(dx + 20, dy, dw - 20, WLH, text, 0)
    end
  end
 
  #--------------------------------------------------------------------------
  # Update Cursor
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    elsif @index < 4
      self.cursor_rect.set(0, @index * 48, self.width - 32, 48)
    else
      self.cursor_rect.set(0, @index * 24 + 96, self.width - 32, 24)
    end
  end
 
end

#===============================================================================
# Window Volume
#===============================================================================

class Window_Volume < Window_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(wx, wy, ww, wh, var)
    super(wx, wy, ww, wh)
    @var = var
    if @var == YE::SYSTEM::BGM_VOLUME_VAR
      @gc1 = text_color(YE::SYSTEM::BGM_COLOUR1)
      @gc2 = text_color(YE::SYSTEM::BGM_COLOUR2)
      @mute = YE::SYSTEM::BGM_MUTE_SWITCH
    elsif @var == YE::SYSTEM::SFX_VOLUME_VAR
      @gc1 = text_color(YE::SYSTEM::SFX_COLOUR1)
      @gc2 = text_color(YE::SYSTEM::SFX_COLOUR2)
      @mute = YE::SYSTEM::SFX_MUTE_SWITCH
    else
      @gc1 = text_color(YE::SYSTEM::BGS_COLOUR1)
      @gc2 = text_color(YE::SYSTEM::BGS_COLOUR2)
      @mute = YE::SYSTEM::BGS_MUTE_SWITCH
    end
    self.opacity = 0
    refresh
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    sw = self.width - 32
    self.contents.fill_rect(0, 14, sw-80, 20, gauge_back_color)
    gw = sw-84
    gw *= 100 - $game_variables[@var]
    gw /= 100
    gw = [[gw, 0].max, sw-84].min
    self.contents.gradient_fill_rect(2, 16, gw, 16, @gc1, @gc2)
    if $game_switches[@mute]
      text = YE::SYSTEM::VOL_MUTE
    else
      text = sprintf("%d%%", 100 - $game_variables[@var])
    end
    self.contents.draw_text(sw-76, 0, 76, WLH*2, text, 0)
  end
 
end

#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize
    initialize_fb_mso
    self.update_windowskin
  end
 
end
end

class Window_NameBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize(string = '')
    initialize_nb_mso(string)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox < Window_Command
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize
    initialize_cb_mso
    self.update_windowskin
  end
 
end
end

class Window_Message < Window_Selectable
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize
    initialize_wm_mso
    self.update_windowskin
  end
 
end
end

#===============================================================================
# Scene_Battle
#===============================================================================

class Scene_Battle < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias display_normal_animation
  #--------------------------------------------------------------------------
  alias display_normal_animation_mso display_normal_animation unless $@
  def display_normal_animation(targets, animation_id, mirror = false)
    return if $game_switches[YE::SYSTEM::ANI_SWITCH]     
    display_normal_animation_mso(targets, animation_id, mirror)
  end
 
end

#===============================================================================
# Scene_End
#===============================================================================

class Scene_End < Scene_Base

  #--------------------------------------------------------------------------
  # Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @help_window = Window_Base.new(0, 0, 544, 56)
    @help_window.contents.clear
    #---
    text = YE::SYSTEM::WINDOW_HELP
    @help_window.contents.draw_text(4,  0, 504, 24, text, 0)
    @system_window = Window_System.new
    var = YE::SYSTEM::BGM_VOLUME_VAR
    @bgm_vol_window = Window_Volume.new(160, 104, 384, 80, var)
    var = YE::SYSTEM::SFX_VOLUME_VAR
    @sfx_vol_window = Window_Volume.new(160, 152, 384, 80, var)
    var = YE::SYSTEM::BGS_VOLUME_VAR
    @bgs_vol_window = Window_Volume.new(160, 200, 384, 80, var)
    #---
    @last_index = 100
  end
 
  #--------------------------------------------------------------------------
  # Post-Start Processing
  #--------------------------------------------------------------------------
  def post_start
    super
  end
 
  #--------------------------------------------------------------------------
  # Pre-termination Processing
  #--------------------------------------------------------------------------
  def pre_terminate
    super
  end
 
  #--------------------------------------------------------------------------
  # Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    @help_window.dispose
    @system_window.dispose
    @bgm_vol_window.dispose
    @sfx_vol_window.dispose
    @bgs_vol_window.dispose
    dispose_menu_background
  end
 
  #--------------------------------------------------------------------------
  # Update Help
  #--------------------------------------------------------------------------
  def update_help
    @help_window.contents.clear
    case @system_window.index
    when 0; text = YE::SYSTEM::WINDOW_HELP
    when 1; text = YE::SYSTEM::BGM_HELP
    when 2; text = YE::SYSTEM::SFX_HELP
    when 3; text = YE::SYSTEM::BGS_HELP
    when 4; text = YE::SYSTEM::ANI_HELP
    when 5; text = YE::SYSTEM::AUTO_DASH_HELP
    when 6; text = YE::SYSTEM::INSTANT_TEXT_HELP
    when 7; text = YE::SYSTEM::RETURN_TITLE_HELP
    when 8; text = YE::SYSTEM::RETURN_MENU_HELP
    end
    @help_window.contents.draw_text(4,  0, 504, 24, text, 0)
  end
 
  #--------------------------------------------------------------------------
  # Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @system_window.update
   
    if @last_index != @system_window.index
      @last_index = @system_window.index
      update_help
    end
   
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    else
      #---
      if Input.repeat?(Input::LEFT) and @system_window.index == 0
        $game_variables[YE::SYSTEM::WINDOW_VARIABLE] -= 1
        if $game_variables[YE::SYSTEM::WINDOW_VARIABLE] == 0
          $game_variables[YE::SYSTEM::WINDOW_VARIABLE] = 1
        else
          Sound.play_cursor
        end
        @system_window.refresh
        @system_window.update_windowskin
        @help_window.update_windowskin
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 0
        $game_variables[YE::SYSTEM::WINDOW_VARIABLE] += 1
        if $game_variables[YE::SYSTEM::WINDOW_VARIABLE] >
        YE::SYSTEM::WINDOW_HASH.size
          $game_variables[YE::SYSTEM::WINDOW_VARIABLE] =
          YE::SYSTEM::WINDOW_HASH.size
        else
          Sound.play_cursor
        end
        @system_window.refresh
        @system_window.update_windowskin
        @help_window.update_windowskin
      #---
      elsif Input.repeat?(Input::LEFT) and @system_window.index == 1
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] += 10
        else
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] += 1
        end
        if $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] >= 100
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] = 100
        end
        Sound.play_cursor
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 1
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] -= 10
        else
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] -= 1
        end
        if $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] <= 0
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] = 0
        end
        Sound.play_cursor
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::L) and @system_window.index == 1
        if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::R) and @system_window.index == 1
        if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.repeat?(Input::LEFT) and @system_window.index == 2
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] += 10
        else
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] += 1
        end
        if $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] >= 100
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] = 100
        end
        Sound.play_cursor
        @sfx_vol_window.refresh
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 2
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] -= 10
        else
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] -= 1
        end
        if $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] <= 0
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] = 0
        end
        Sound.play_cursor
        @sfx_vol_window.refresh
      elsif Input.trigger?(Input::L) and @system_window.index == 2
        if $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @sfx_vol_window.refresh
      elsif Input.trigger?(Input::R) and @system_window.index == 2
        if $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @sfx_vol_window.refresh
      elsif Input.repeat?(Input::LEFT) and @system_window.index == 3
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] += 10
        else
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] += 1
        end
        if $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] >= 100
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] = 100
        end
        Sound.play_cursor
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 3
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] -= 10
        else
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] -= 1
        end
        if $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] <= 0
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] = 0
        end
        Sound.play_cursor
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::L) and @system_window.index == 3
        if $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::R) and @system_window.index == 3
        if $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::LEFT) and @system_window.index == 4
        $game_switches[YE::SYSTEM::ANI_SWITCH] = false
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::RIGHT) and @system_window.index == 4
        $game_switches[YE::SYSTEM::ANI_SWITCH] = true
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::LEFT) and @system_window.index == 5
        $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH] = true
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::RIGHT) and @system_window.index == 5
        $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH] = false
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::LEFT) and @system_window.index == 6
        $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH] = true
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::RIGHT) and @system_window.index == 6
        $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH] = false
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::C) and @system_window.index == 7
        Sound.play_decision
        RPG::BGM.fade(800)
        RPG::BGS.fade(800)
        RPG::ME.fade(800)
        $scene = Scene_Title.new
        Graphics.fadeout(60)
      elsif Input.trigger?(Input::C) and @system_window.index == 8
        Sound.play_cancel
        return_scene
      end
      #---
    end
  end
 
end

#===============================================================================
#
# END OF FILE
#
#===============================================================================
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 11, 2010, 05:32:13 PM
OK, I'll definitely look into it. The problem with Victory Aftermath seems strange - the ATS does not in any way require it, so it shouldn't matter if it's deleted. Likely the Aftermath scripts overwrites or overrides some other script that is causing a problem, and it is that script the ATS is incompatible with. Anyway, I'll look into both and see if I can fix it.
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 11, 2010, 05:40:03 PM
OK, to fix the Menu System Options bug, just do the following:

go to line 602 in the Menu System Options script and see this:

Code: [Select]
#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize
    initialize_fb_mso
    self.update_windowskin
  end
 
end
end

class Window_NameBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize(string = '')
    initialize_nb_mso(string)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox < Window_Command
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize
    initialize_cb_mso
    self.update_windowskin
  end
 
end
end

class Window_Message < Window_Selectable
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize
    initialize_wm_mso
    self.update_windowskin
  end
 
end
end

Fix it by replacing it with:

Code: [Select]
#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize (*args)
    initialize_fb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_NameBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize (*args)
    initialize_nb_mso(*args)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox < Window_Command
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize (*args)
    initialize_cb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_Message < Window_Selectable
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize (*args)
    initialize_wm_mso (*args)
    self.update_windowskin
  end
 
end
end

Also, it should be placed under the ATS in the Script Editor.
Title: Re: Advanced Text System 3.0
Post by: Genjis on August 11, 2010, 09:25:20 PM
Yup, this new code fixes the problem with YERD_MenuSystem. Aternatively, I could fix the problem by placing ATS3.0b below MenuSystem. But I guess this was the cheap way, your fix is the real deal and allows me to place ATS3.0b in the same place which ATS2.0 was placed in the "Demo" (that is above MenuScene instead of below it).

As for Victory Aftermath: Just in case this isn't clear: Both ATS3.0b and VictoryAftermath work just fine(the upgrade from a to b must've solved the compatibility issue), BUT it causes trouble if someone tries to delete it. I guess it's just because there are other scripts left that requires the script. In fact, after deleting the 3 other scripts connected to VictoryAftermath, the game works once again.
In other words: If you want to remove VictoryAftermath from your game (or the demo in my case), be sure to delete these 4 scripts:
YERD_VictoryAftermath
YERD_VictoryExtend
MALG_YerdAftermathFix
YERD_JPDisplay

if any of these scripts is spared, but the others are deleted, it'll crash. Otherwise, version 3.0b works just fine with it.




I'll let you know if I should encounter any other issues, but everything seems to work so far.

Once again many, many thanks for this super fast support  :) . This isn't the first time I see you in action, but you really helped me out big time this time (what a sentence XD).
Title: Re: Advanced Text System 3.0
Post by: kreavenkreaven on August 12, 2010, 06:59:51 PM
Hi !

First of all , THANKS for this script . this is awesome . i will raise a statue of you in my next game :)

But .... i have a small issue , look at this screen :
(http://i89.servimg.com/u/f89/11/59/23/52/proble10.jpg)

Here is the original text :
Voulez-vous jouer en mode developpeur ?\lb
Vous aurez accés au commentaire du créateur du jeu et vous
pourrez meme ... tricher .\lb
(yes , it is in french) .

As you can see , a word "créateur" is truncated ...

This is not a major issue because i can put a \lb before , but ...


Hmm, yeah it shouldn't happen. The spaces at the starts of those lines shouldn't happen either. For now, just put the \lb. If it becomes common I will have to look into it more closely. I suspect the problem has to do with the text_size method of bitmap and incorrectly calculating for french characters.

I have quite a similar problem for Polish characters. In my case, though, the whole paragraph formatting and justifying seems not to be working. It does work when I use English only. I'd like to know if there's any chance of fixing this. I'd rather stay with ATS, as I'm in great need of these alignment codes/properties and I didn't see them anywhere else.
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 15, 2010, 01:29:33 AM
Well, paragraph formatting relies on the #text_size method of Bitmap. With some fonts, that method is not accurate. I can't really fix that unfortunately - that method is hidden. The only way to do it would be to manually adjust the method specifically for the font being used. I could do it if it were an English font, but I don't think I could with a Polish font. Sorry.
Title: Re: Advanced Text System 3.0
Post by: Genjis on August 15, 2010, 12:58:32 PM
Ok, this script is really starting to get on my nerves. I encountered another bug. Each time a dialogue box with an extra name box is shown ( \nb is used), the game crashes and gives me this error:


Script 'YERD_MenuSystem' line 629: ArgumentError occurred.

wrong number of arguments (2 for 4)


Here is the line in question:

Code: [Select]
    initialize_nb_mso(*args)

And here is the script itself. It already contains your fix from before, but it still crashes. (Without the fix, the game wouldn't even come this far).

Code: [Select]
#===============================================================================
#
# Yanfly Engine RD - Menu System Options
# Last Date Updated: 2009.05.12
# Level: Easy, Normal
#
# The "End Game" option is quite possibly the most useless function in RPG Maker
# VX games. Not only does it have little functionality but its functions can
# be reproduced by Alt+F4 and F12. This script replaces "End Game" with a new
# menu altogether and giving the player some familiar options seen in many of
# today's commercial RPG's such as changing window skins, adjust sound volume,
# turning off animations during battle, and the like.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.05.12 - Auto-Dash update. If player holds down the dash button when
#                this option is enabled, the player will walk instead of dash.
# o 2009.05.09 - Compatibility update with Woratana's NeoMessage.
#                Compatibility update with Modern Algebra's ATS.
# o 2009.05.07 - Started script and finished.
#===============================================================================
# Instructions
#===============================================================================
#
# Input this script anywhere above Main. It's plug and play outside of changing
# a few variables and switches, which will be listed below:
#
# - If you have variables bound to variables 91, 92, 93, and 94, scroll down and
#   bind them to unused variables.
# - If you have switches bound to switches 91, 92, 93, 94, 95, or 96, scroll
#   down and bind them to unused switches.
#
# Then, download the windows pack, and create a "Windows" folder inside your
# Graphics folder. Input the windows pack there. You're all set to go.
#
#===============================================================================
#
# Compatibility
# - Works With: Woratana's NeoMessage
# - Works With: Modern Algebra's ATS
# - Alias: Game_Player: dash?
# - Alias: Window_Base: initialize
# - Alias: Scene_Battle: display_normal_animation
# - Overwrites: Scene_End: All of it
# - Overwrites: Vocab: game_end
#
#===============================================================================

$imported = {} if $imported == nil
$imported["MenuSystemOptions"] = true

module YE
  module SYSTEM
     
    # This changes the "End Game" string to a new string. This completely
    # overrides the default term from the database for a reason and that's
    # because this is adjustable from the title menu as well.
    TITLE = "System"
   
    #---------------------
    # Window Configuration
    #---------------------
   
    # This will affect what string data will appear for the window selection
    # portion of the system menu.
    WINDOW_HELP = "Select preferred window skin."
    WINDOW_SKIN = "Window Skin"
   
    # This sets the default window used when nothing is selected. This also
    # determines the window skin used at the title screen. Reference it to
    # the list below to determine which window skin. Don't make this 0.
    DEFAULT_WINDOW = 7
   
    # This determines the variable used to store the player's windowskin choice.
    WINDOW_VARIABLE = 91
   
    # This below determines what the variable refers to when it's used as
    # reference. Put your windows inside the Graphics/Windows folder. ID 0 will
    # automatically push back to the default window's ID.
    WINDOW_HASH ={
    # Window ID => Window Name
              1 => "Red",
              2 => "Orange",
              3 => "Yellow",
              4 => "Green",
              5 => "Cyan",
              6 => "Navy",
              7 => "Blue",
              8 => "Violet",
              9 => "Purple",
             10 => "Pink",
             11 => "Grey",
             12 => "Black",
    } # Do not remove this.
   
    #---------------------
    # Volume Configuration
    #---------------------
   
    # This will affect what string data will appear for the volume adjustment
    # portion of the system menu.
    BGM_HELP  = "Adjust BGM volume. Press L/R to mute."
    SFX_HELP  = "Adjust SFX volume. Press L/R to mute."
    BGS_HELP  = "Adjust BGS volume. Press L/R to mute."
    BGM_TITLE = "BGM Volume"
    SFX_TITLE = "SFX Volume"
    BGS_TITLE = "BGS Volume"
    VOL_MUTE  = "Mute"
   
    # These are the variables and switches that govern the sound effect volumes.
    # Note that for the variables, the higher they are, the lower the volume.
    BGM_VOLUME_VAR  = 92    # Variable
    SFX_VOLUME_VAR  = 93    # Variable
    BGS_VOLUME_VAR  = 94    # Variable
    BGM_MUTE_SWITCH = 92    # Switch
    SFX_MUTE_SWITCH = 93    # Switch
    BGS_MUTE_SWITCH = 94    # Switch
   
    # This adjusts the gradient colours for each of the volume controls.
    BGM_COLOUR1 = 30
    BGM_COLOUR2 = 31
    SFX_COLOUR1 = 28
    SFX_COLOUR2 = 29
    BGS_COLOUR1 = 20
    BGS_COLOUR2 = 21
   
    #---------------------
    # Battle Animations
    #---------------------
   
    # This will affect what string data will appear for the toggling of
    # battle animations portion of the system menu.
    ANI_TITLE = "Battle Animations"
    ANI_HELP  = "Toggles animations during battle."
    ANI_ON    = "Shown"
    ANI_OFF   = "Hidden"
   
    # This is the switch used to adjust battle animations. If it is off,
    # animations are enabled. If it is on, animations are disabled.
    ANI_SWITCH = 91
   
    #---------------------
    # Automatic Dashing
    #---------------------
   
    # This will affect what string data will appear for the toggling of
    # automatic dashing portion of the system menu.
    AUTO_DASH_TITLE = "Automatic Dash"
    AUTO_DASH_HELP  = "Toggles automatic dashing."
    AUTO_DASH_ON    = "Auto"
    AUTO_DASH_OFF   = "Hold"
   
    # This is the switch used to determine whether or not autodashing is on.
    AUTO_DASH_SWITCH = 95
   
    #---------------------
    # Instant Text
    #---------------------
   
    # This will affect what string data will appear for the instant text
    # portion of the system menu.
    INSTANT_TEXT_TITLE = "Instant Text"
    INSTANT_TEXT_HELP  = "Toggles instant text display."
    INSTANT_TEXT_ON    = "Instant"
    INSTANT_TEXT_OFF   = "Default"
   
    # This is the switch used to determine whether or not instant text is on.
    INSTANT_TEXT_SWITCH = 96
   
    #---------------------
    # Remaining Text
    #---------------------
   
    # This will affect what remaining string data is left for the system menu.
    RETURN_TO_TITLE   = "Return to Title Screen"
    RETURN_TITLE_HELP = "Return back to the title screen."
    RETURN_TO_MENU    = "Return to Main Menu"
    RETURN_MENU_HELP  = "Return back to the main menu."
     
  end # SYSTEM
end # YE

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

module Vocab
  def self.game_end
    return YE::SYSTEM::TITLE
  end
end

module Cache
  def self.windows(filename)
    load_bitmap("Graphics/Windows/", filename)
  end
end

module RPG
 
  class BGM < AudioFile
    def play
      if @name.empty?
        Audio.bgm_stop
        @@last = BGM.new
      else
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::BGM_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
        end
        Audio.bgm_play("Audio/BGM/" + @name, vol, @pitch)
        @@last = self
      end
    end #Play
  end # BGM
 
  class ME < AudioFile
    def play
      if @name.empty?
        Audio.me_stop
      else
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::BGM_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
        end
        Audio.me_play("Audio/ME/" + @name, vol, @pitch)
      end
    end
  end # ME
 
  class SE < AudioFile
    def play
      unless @name.empty?
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::SFX_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH]
        end
        Audio.se_play("Audio/SE/" + @name, vol, @pitch)
      end
    end
    def self.stop
      Audio.se_stop
    end
  end # SE
 
  class BGS < AudioFile
    def play
      if @name.empty?
        Audio.bgs_stop
        @@last = BGS.new
      else
        vol = @volume
        if $game_variables != nil
          vol *= 100 - $game_variables[YE::SYSTEM::BGS_VOLUME_VAR]
          vol /= 100
          vol = [[vol, 0].max, 100].min
          vol = 0 if $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH]
        end
        Audio.bgs_play("Audio/BGS/" + @name, vol, @pitch)
        @@last = self
      end
    end
  end # BGS
 
end # RPG

#===============================================================================
# Game Player
#===============================================================================

class Game_Player < Game_Character
 
  #--------------------------------------------------------------------------
  # alias dash?
  #--------------------------------------------------------------------------
  alias dash_mso dash? unless $@
  def dash?
    if $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH]
      return false if @move_route_forcing
      return false if $game_map.disable_dash?
      return false if in_vehicle?
      return false if Input.press?(Input::A)
      return true
    else
      dash_mso
    end
  end
 
end

#===============================================================================
# Window
#===============================================================================

class Window
 
  #--------------------------------------------------------------------------
  # update windowskin
  #--------------------------------------------------------------------------
  def update_windowskin
    if $game_variables != nil
      winvar = YE::SYSTEM::WINDOW_VARIABLE
      if $game_variables[winvar] == 0
        $game_variables[winvar] = YE::SYSTEM::DEFAULT_WINDOW
      elsif !YE::SYSTEM::WINDOW_HASH.include?($game_variables[winvar])
        $game_variables[winvar] = YE::SYSTEM::DEFAULT_WINDOW
      end
      mso_windowskin = YE::SYSTEM::WINDOW_HASH[$game_variables[winvar]]
    else
      mso_windowskin = YE::SYSTEM::WINDOW_HASH[YE::SYSTEM::DEFAULT_WINDOW]
    end
    self.windowskin = Cache.windows(mso_windowskin)
  end
 
end

#===============================================================================
# Window Base
#===============================================================================

class Window_Base < Window
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_window_mso initialize unless $@
  def initialize(x, y, width, height)
    initialize_window_mso(x, y, width, height)
    self.update_windowskin
  end
 
end

#===============================================================================
# Window Message
#===============================================================================

class Window_Message < Window_Selectable
 
  #--------------------------------------------------------------------------
  # alias update show fast
  #--------------------------------------------------------------------------
  alias update_show_fast_mso update_show_fast unless $@
  def update_show_fast
    if $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH]
      if self.pause or self.openness < 255
        @show_fast = false
      else
        @show_fast = true
      end
      if @show_fast and @wait_count > 0
        @wait_count -= 1
      end
    else
      update_show_fast_mso
    end
  end

if $worale != nil
  if $worale["NMS"]
  #--------------------------------------------------------------------------
  # alias draw_name
  #--------------------------------------------------------------------------
  alias draw_name_mso draw_name unless $@
  def draw_name(name, x, y)
    draw_name_mso(name, x, y)
    @namebox.update_windowskin
  end
  end
end
 
end

#===============================================================================
# Window System
#===============================================================================

class Window_System < Window_Selectable
 
  #--------------------------------------------------------------------------
  # Initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 56, 544, 360)
    @column_max = 1
    self.index = 0
    self.active = true
    refresh
  end
 
  #--------------------------------------------------------------------------
  # Refresh
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    @data.push(0) # Window Skins
    @data.push(1) # Sound Volume/Sound Mute
    @data.push(2) # BGM Volume/BGM Mute
    @data.push(3) # Ambience Volume/Ambience Mute
    @data.push(4) # Battle Animations
    @data.push(5) # Auto-Dash
    @data.push(6) # Instant Text
    @data.push(7) # Return to Title
    @data.push(8) # Return to Menu
    @item_max = @data.size
    self.contents.clear
    for i in 0..@item_max
      self.contents.font.color.alpha = 255
      draw_item(i)
    end
    #---
  end
 
  #--------------------------------------------------------------------------
  # Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    sw = self.width - 32
    dw = sw
    #---
    case index
    when 0
      dx = 0
      dy = 0
      text = YE::SYSTEM::WINDOW_SKIN
      self.contents.draw_text(dx, dy, dw, WLH, text, 1)
      winvar = $game_variables[YE::SYSTEM::WINDOW_VARIABLE]
      text = YE::SYSTEM::WINDOW_HASH[winvar - 2]
      self.contents.draw_text(dx + dw * 0/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar - 1]
      self.contents.draw_text(dx + dw * 1/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar]
      self.contents.draw_text(dx + dw * 2/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar + 1]
      self.contents.draw_text(dx + dw * 3/5, dy + WLH, dw/5, WLH, text, 1)
      text = YE::SYSTEM::WINDOW_HASH[winvar + 2]
      self.contents.draw_text(dx + dw * 4/5, dy + WLH, dw/5, WLH, text, 1)
    when 1
      dx = 0
      dy = WLH * 2
      text = YE::SYSTEM::BGM_TITLE
      self.contents.draw_text(dx + 20, dy, dw/3 - 20, WLH*2, text, 0)
    when 2
      dx = 0
      dy = WLH * 4
      text = YE::SYSTEM::SFX_TITLE
      self.contents.draw_text(dx + 20, dy, dw/3 - 20, WLH*2, text, 0)
    when 3
      dx = 0
      dy = WLH * 6
      text = YE::SYSTEM::BGS_TITLE
      self.contents.draw_text(dx + 20, dy, dw/3 - 20, WLH*2, text, 0)
    when 4
      dx = 0
      dy = WLH * 8
      text = YE::SYSTEM::ANI_TITLE
      self.contents.draw_text(dx + 20, dy, dw/2 - 20, WLH, text, 0)
      if $game_switches[YE::SYSTEM::ANI_SWITCH]
        en1 = false
        en2 = true
      else
        en1 = true
        en2 = false
      end
      text1 = YE::SYSTEM::ANI_ON
      text2 = YE::SYSTEM::ANI_OFF
      self.contents.font.color.alpha = en1 ? 255 : 128
      self.contents.draw_text(sw*1/2, dy, dw/4, WLH, text1, 1)
      self.contents.font.color.alpha = en2 ? 255 : 128
      self.contents.draw_text(sw*3/4, dy, dw/4, WLH, text2, 1)
    #---
    when 5
      dx = 0
      dy = WLH * 9
      text = YE::SYSTEM::AUTO_DASH_TITLE
      self.contents.draw_text(dx + 20, dy, dw/2 - 20, WLH, text, 0)
      if $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH]
        en1 = true
        en2 = false
      else
        en1 = false
        en2 = true
      end
      text1 = YE::SYSTEM::AUTO_DASH_ON
      text2 = YE::SYSTEM::AUTO_DASH_OFF
      self.contents.font.color.alpha = en1 ? 255 : 128
      self.contents.draw_text(sw*1/2, dy, dw/4, WLH, text1, 1)
      self.contents.font.color.alpha = en2 ? 255 : 128
      self.contents.draw_text(sw*3/4, dy, dw/4, WLH, text2, 1)
    #---
    when 6
      dx = 0
      dy = WLH * 10
      text = YE::SYSTEM::INSTANT_TEXT_TITLE
      self.contents.draw_text(dx + 20, dy, dw/2 - 20, WLH, text, 0)
      if $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH]
        en1 = true
        en2 = false
      else
        en1 = false
        en2 = true
      end
      text1 = YE::SYSTEM::INSTANT_TEXT_ON
      text2 = YE::SYSTEM::INSTANT_TEXT_OFF
      self.contents.font.color.alpha = en1 ? 255 : 128
      self.contents.draw_text(sw*1/2, dy, dw/4, WLH, text1, 1)
      self.contents.font.color.alpha = en2 ? 255 : 128
      self.contents.draw_text(sw*3/4, dy, dw/4, WLH, text2, 1)
    #---
    when 7
      dx = 0
      dy = WLH * 11
      text = YE::SYSTEM::RETURN_TO_TITLE
      self.contents.draw_text(dx + 20, dy, dw - 20, WLH, text, 0)
    #---
    when 8
      dx = 0
      dy = WLH * 12
      text = YE::SYSTEM::RETURN_TO_MENU
      self.contents.draw_text(dx + 20, dy, dw - 20, WLH, text, 0)
    end
  end
 
  #--------------------------------------------------------------------------
  # Update Cursor
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    elsif @index < 4
      self.cursor_rect.set(0, @index * 48, self.width - 32, 48)
    else
      self.cursor_rect.set(0, @index * 24 + 96, self.width - 32, 24)
    end
  end
 
end

#===============================================================================
# Window Volume
#===============================================================================

class Window_Volume < Window_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(wx, wy, ww, wh, var)
    super(wx, wy, ww, wh)
    @var = var
    if @var == YE::SYSTEM::BGM_VOLUME_VAR
      @gc1 = text_color(YE::SYSTEM::BGM_COLOUR1)
      @gc2 = text_color(YE::SYSTEM::BGM_COLOUR2)
      @mute = YE::SYSTEM::BGM_MUTE_SWITCH
    elsif @var == YE::SYSTEM::SFX_VOLUME_VAR
      @gc1 = text_color(YE::SYSTEM::SFX_COLOUR1)
      @gc2 = text_color(YE::SYSTEM::SFX_COLOUR2)
      @mute = YE::SYSTEM::SFX_MUTE_SWITCH
    else
      @gc1 = text_color(YE::SYSTEM::BGS_COLOUR1)
      @gc2 = text_color(YE::SYSTEM::BGS_COLOUR2)
      @mute = YE::SYSTEM::BGS_MUTE_SWITCH
    end
    self.opacity = 0
    refresh
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    sw = self.width - 32
    self.contents.fill_rect(0, 14, sw-80, 20, gauge_back_color)
    gw = sw-84
    gw *= 100 - $game_variables[@var]
    gw /= 100
    gw = [[gw, 0].max, sw-84].min
    self.contents.gradient_fill_rect(2, 16, gw, 16, @gc1, @gc2)
    if $game_switches[@mute]
      text = YE::SYSTEM::VOL_MUTE
    else
      text = sprintf("%d%%", 100 - $game_variables[@var])
    end
    self.contents.draw_text(sw-76, 0, 76, WLH*2, text, 0)
  end
 
end

#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize (*args)
    initialize_fb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_NameBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize (*args)
    initialize_nb_mso(*args)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox < Window_Command
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize (*args)
    initialize_cb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_Message < Window_Selectable
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize (*args)
    initialize_wm_mso (*args)
    self.update_windowskin
  end
 
end
end

#===============================================================================
# Scene_Battle
#===============================================================================

class Scene_Battle < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias display_normal_animation
  #--------------------------------------------------------------------------
  alias display_normal_animation_mso display_normal_animation unless $@
  def display_normal_animation(targets, animation_id, mirror = false)
    return if $game_switches[YE::SYSTEM::ANI_SWITCH]     
    display_normal_animation_mso(targets, animation_id, mirror)
  end
 
end

#===============================================================================
# Scene_End
#===============================================================================

class Scene_End < Scene_Base

  #--------------------------------------------------------------------------
  # Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @help_window = Window_Base.new(0, 0, 544, 56)
    @help_window.contents.clear
    #---
    text = YE::SYSTEM::WINDOW_HELP
    @help_window.contents.draw_text(4,  0, 504, 24, text, 0)
    @system_window = Window_System.new
    var = YE::SYSTEM::BGM_VOLUME_VAR
    @bgm_vol_window = Window_Volume.new(160, 104, 384, 80, var)
    var = YE::SYSTEM::SFX_VOLUME_VAR
    @sfx_vol_window = Window_Volume.new(160, 152, 384, 80, var)
    var = YE::SYSTEM::BGS_VOLUME_VAR
    @bgs_vol_window = Window_Volume.new(160, 200, 384, 80, var)
    #---
    @last_index = 100
  end
 
  #--------------------------------------------------------------------------
  # Post-Start Processing
  #--------------------------------------------------------------------------
  def post_start
    super
  end
 
  #--------------------------------------------------------------------------
  # Pre-termination Processing
  #--------------------------------------------------------------------------
  def pre_terminate
    super
  end
 
  #--------------------------------------------------------------------------
  # Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    @help_window.dispose
    @system_window.dispose
    @bgm_vol_window.dispose
    @sfx_vol_window.dispose
    @bgs_vol_window.dispose
    dispose_menu_background
  end
 
  #--------------------------------------------------------------------------
  # Update Help
  #--------------------------------------------------------------------------
  def update_help
    @help_window.contents.clear
    case @system_window.index
    when 0; text = YE::SYSTEM::WINDOW_HELP
    when 1; text = YE::SYSTEM::BGM_HELP
    when 2; text = YE::SYSTEM::SFX_HELP
    when 3; text = YE::SYSTEM::BGS_HELP
    when 4; text = YE::SYSTEM::ANI_HELP
    when 5; text = YE::SYSTEM::AUTO_DASH_HELP
    when 6; text = YE::SYSTEM::INSTANT_TEXT_HELP
    when 7; text = YE::SYSTEM::RETURN_TITLE_HELP
    when 8; text = YE::SYSTEM::RETURN_MENU_HELP
    end
    @help_window.contents.draw_text(4,  0, 504, 24, text, 0)
  end
 
  #--------------------------------------------------------------------------
  # Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @system_window.update
   
    if @last_index != @system_window.index
      @last_index = @system_window.index
      update_help
    end
   
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    else
      #---
      if Input.repeat?(Input::LEFT) and @system_window.index == 0
        $game_variables[YE::SYSTEM::WINDOW_VARIABLE] -= 1
        if $game_variables[YE::SYSTEM::WINDOW_VARIABLE] == 0
          $game_variables[YE::SYSTEM::WINDOW_VARIABLE] = 1
        else
          Sound.play_cursor
        end
        @system_window.refresh
        @system_window.update_windowskin
        @help_window.update_windowskin
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 0
        $game_variables[YE::SYSTEM::WINDOW_VARIABLE] += 1
        if $game_variables[YE::SYSTEM::WINDOW_VARIABLE] >
        YE::SYSTEM::WINDOW_HASH.size
          $game_variables[YE::SYSTEM::WINDOW_VARIABLE] =
          YE::SYSTEM::WINDOW_HASH.size
        else
          Sound.play_cursor
        end
        @system_window.refresh
        @system_window.update_windowskin
        @help_window.update_windowskin
      #---
      elsif Input.repeat?(Input::LEFT) and @system_window.index == 1
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] += 10
        else
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] += 1
        end
        if $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] >= 100
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] = 100
        end
        Sound.play_cursor
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 1
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] -= 10
        else
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] -= 1
        end
        if $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] <= 0
          $game_variables[YE::SYSTEM::BGM_VOLUME_VAR] = 0
        end
        Sound.play_cursor
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::L) and @system_window.index == 1
        if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::R) and @system_window.index == 1
        if $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGM_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgm_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.repeat?(Input::LEFT) and @system_window.index == 2
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] += 10
        else
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] += 1
        end
        if $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] >= 100
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] = 100
        end
        Sound.play_cursor
        @sfx_vol_window.refresh
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 2
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] -= 10
        else
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] -= 1
        end
        if $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] <= 0
          $game_variables[YE::SYSTEM::SFX_VOLUME_VAR] = 0
        end
        Sound.play_cursor
        @sfx_vol_window.refresh
      elsif Input.trigger?(Input::L) and @system_window.index == 2
        if $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @sfx_vol_window.refresh
      elsif Input.trigger?(Input::R) and @system_window.index == 2
        if $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::SFX_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @sfx_vol_window.refresh
      elsif Input.repeat?(Input::LEFT) and @system_window.index == 3
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] += 10
        else
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] += 1
        end
        if $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] >= 100
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] = 100
        end
        Sound.play_cursor
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.repeat?(Input::RIGHT) and @system_window.index == 3
        if Input.press?(Input::A)
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] -= 10
        else
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] -= 1
        end
        if $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] <= 0
          $game_variables[YE::SYSTEM::BGS_VOLUME_VAR] = 0
        end
        Sound.play_cursor
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::L) and @system_window.index == 3
        if $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::R) and @system_window.index == 3
        if $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH]
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = false
        else
          $game_switches[YE::SYSTEM::BGS_MUTE_SWITCH] = true
        end
        Sound.play_decision
        @bgs_vol_window.refresh
        RPG::BGM.last.play
        RPG::BGS.last.play
      elsif Input.trigger?(Input::LEFT) and @system_window.index == 4
        $game_switches[YE::SYSTEM::ANI_SWITCH] = false
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::RIGHT) and @system_window.index == 4
        $game_switches[YE::SYSTEM::ANI_SWITCH] = true
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::LEFT) and @system_window.index == 5
        $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH] = true
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::RIGHT) and @system_window.index == 5
        $game_switches[YE::SYSTEM::AUTO_DASH_SWITCH] = false
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::LEFT) and @system_window.index == 6
        $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH] = true
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::RIGHT) and @system_window.index == 6
        $game_switches[YE::SYSTEM::INSTANT_TEXT_SWITCH] = false
        Sound.play_decision
        @system_window.refresh
      elsif Input.trigger?(Input::C) and @system_window.index == 7
        Sound.play_decision
        RPG::BGM.fade(800)
        RPG::BGS.fade(800)
        RPG::ME.fade(800)
        $scene = Scene_Title.new
        Graphics.fadeout(60)
      elsif Input.trigger?(Input::C) and @system_window.index == 8
        Sound.play_cancel
        return_scene
      end
      #---
    end
  end
 
end

#===============================================================================
#
# END OF FILE
#
#===============================================================================

No other scripts are involved in this error. I've tested this by using a new "ATS3b Demo" project file and inserting the MenuScene script below ATS3.0b.
My guess is that one of the features from YERD_MenuScene (to change the windowskin) is causing this error. Strangely enough, it crashes without even changing the windowskin in the first place (I don't even access the main menu). I mean, ATS should work as long as the default one is still in use, but it looks like MenuScene is overwriting the entire windowskin part.
Btw, it also crashes if I set the background to "Dim Background" or "Transparent".

As always, the "cheap and easy way" still works: Place "YERD_MenuScene" ABOVE "ATS 3.0" and everything's fine, but place it below "ATS 3.0" and it crashes.
Would it make a difference if we leave MenuScene above ATS 3.0 anyway?
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 15, 2010, 08:10:40 PM
Well, no, not on the ATS end. However, whatever Yanfly is trying to do by aliasing those ATS methods in the first place wouldn't be done, which probably means one of the options that Yanfly has in the System menu doesn't work exactly as it should. I have never used that script, but it looks like it's the windowskin option, and the methods that are causing the issue are intended to make sure that the ATS windows have the chosen windowskins upon initialization. This particular error is occuring because I changed the superclass for Window_NameBox in ATS 3.0 and didn't think to change it here. Anyway, the following should fix it. Replace the whole ATS compatibility section: Ie.
Spoiler for old code:
Code: [Select]
#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize (*args)
    initialize_fb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_NameBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize (*args)
    initialize_nb_mso(*args)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox < Window_Command
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize (*args)
    initialize_cb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_Message < Window_Selectable
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize (*args)
    initialize_wm_mso (*args)
    self.update_windowskin
  end
 
end
end

with:

Spoiler for new code:
Code: [Select]
#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize (*args)
    initialize_fb_mso (*args)
    self.update_windowskin
  end
 
end

  alias remake_window_fb_mso remake_window unless $@
  def remake_window (*args)
    remake_window_fb_mso (*args)
    self.update_windowskin
  end
end

class Window_WordBox
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize (*args)
    initialize_nb_mso(*args)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize (*args)
    initialize_cb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceHelp
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_ch_mso initialize unless $@
  def initialize (*args)
    initialize_ch_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_Message
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize (*args)
    initialize_wm_mso (*args)
    self.update_windowskin
  end
 
end

  alias remake_window_wm_mso remake_window unless $@
  def remake_window (*args)
    remake_window_wm_mso (*args)
    self.update_windowskin
  end
end

Place the Menu System script under the ATS and that fix should work fine. I haven't tested it myself because I'd have to get new windowskin graphics and set the Menu System Options script up and I don't really have time, but I imagine that should fix the problems you have and retain compatibility between the two scripts. I remind you that the ATS properties used to change the windowskin will be automatically trumped by whatever windowskin is selected by the player in Menu System Options.
Title: Re: Advanced Text System 3.0
Post by: Genjis on August 15, 2010, 09:20:57 PM
Wow, you certainly are fast, and you know what you're doing.

The new code works, thanks a lot.

Should I encounted yet another bug with MenuScene, I'll send it to hell.
Title: Re: Advanced Text System 3.0
Post by: kreavenkreaven on August 16, 2010, 12:25:37 PM
Well, paragraph formatting relies on the #text_size method of Bitmap. With some fonts, that method is not accurate. I can't really fix that unfortunately - that method is hidden. The only way to do it would be to manually adjust the method specifically for the font being used. I could do it if it were an English font, but I don't think I could with a Polish font. Sorry.

I see. Thanks anyway. I'll stick to English then. If that's the only option then so be it. By the way, that's a really great script, so thanks for it (I should have said that in the first place).
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 16, 2010, 09:27:38 PM
Well, maybe try sending me the font you are using, as well as a text document that has every polish character you might need listed. The only reason I say I can't do it is because I don't know Polish and therefore don't know what characters I need to adjust or how to do it. So if I can get those from you I might be able to fix it.
Title: Re: Advanced Text System 3.0
Post by: kreavenkreaven on August 19, 2010, 08:27:50 PM
I understand. It's quite an unrewarding job. Not many people will make use of the fix. I'll try being of as much help to you as possible - I can't do much more than provide fonts and sample texts, though. I'll PM you links. One more thing, don't haste. I'm quite sure you're working on thousands of other scripts right now. ;)
Title: Re: Advanced Text System 3.0
Post by: Xapples on August 27, 2010, 05:51:06 PM
Thanks for making such an awesome script!

I just have one question.

Is there any way to make each character have a different pitch for their "voice"?
I've tried changing it through a call script event, but it keeps throwing syntax errors back at me.

The script event: ats_all (:letter_se ~ "Cancel", 40, 130)

Is it just my scripting illiteracy, or is this not possible to do?

Thanks in advance!
Title: Re: Advanced Text System 3.0
Post by: modern algebra on August 27, 2010, 08:28:26 PM
Well, the mistake is the ~.

Put the following instead:

ats_all (:letter_se, ["Cancel", 40, 130])
Title: Re: Advanced Text System 3.0
Post by: Xapples on August 27, 2010, 08:46:44 PM
Thanks for the help!

Works perfectly now.
Title: Re: Advanced Text System 3.0
Post by: IXFURU on September 04, 2010, 08:50:30 PM
I have a question about the filters.   It's used by placing \f[x].  Say I wanted one which said the names of the lead actor.  In my project, there are four.  So, in the following setup:
Spoiler for:
FILTERS = {                   # See line 457.
    'ATS' => '\c[1]Advanced Text System\c[0], Version 3.0',
    0     => 'Numbered filters work too',

is the x representing the number or letters to the left?   Or should I set it up like this?
 
Code: [Select]
'names'  => '\n[1], \n[2], \n[3], \n[4]'


You say it will hold a hash, so do I call the \f[names, 3] if I want to say the 3rd Actor's name?

What I've been doing is having to use multiple text boxes based on conditional branches.  I think this could help, if I could understand how to use it.  If it only holds the number on the left, then won't I still have to use conditional branches?
Title: Re: Advanced Text System 3.0
Post by: modern algebra on September 04, 2010, 10:48:02 PM
Yeah, you would. The filter takes the key on the right and replaces it with the string on the left. So, it wouldn't work for what you want it for.

However, you could simply use the code:

Code: [Select]
\np[0]

and that will print out the name of the lead actor.

Also, you might want to look into the \s and \s! codes, since they allow you to include text in a message on the basis of the value of a switch. That sounds more like what you are looking for. With that, for instance, you would be able to make a filter like the one you were asking about simply by having four switches and turning on one based on who the lead actor is. Like I said, however, better to simply use the \np code in that case, but it's an option if you wanted to do similar things, like change the dialogue based on who is the lead actor.
Title: Re: Advanced Text System 3.0
Post by: modern algebra on September 08, 2010, 02:28:16 AM
Alright, another new version! Sorry guys. I really hope this will be the last. None of the bugs fixed this time were fatal, but they are problematic if you wish to use the following features:

The primary reason for this update was to fix a non-fatal issue that deadnub brought to my attention: when using the :fit_window_to_text property, the window would not be resized if a message was smaller than a previous message. This has been fixed in 3.0c.

There was also a problem with the appended choices: in some cases, when a player repeated a choice branch, the cancel conditions would be thrown off. That has been fixed and it should work perfectly fine no matter how many times a player repeats an appended choice branch.

Another issue was when moving a text box around using the \oc, \e series of codes, the paragraph format would be thrown off for one line. That is now fixed as well.

And finally, I also added a new message code: \x[n]. This allows you to set the x position for drawing directly to n, a useful feature for formatting purposes and similar to the tab code, but more explicit.

Anyway, if you don't need any of the above, then it is not crucial to update to 3.0c.
Title: Re: Advanced Text System 3.0c
Post by: kreavenkreaven on September 09, 2010, 10:54:47 PM
Great to see the :fit_window_to_text property work all fine now.

I've run into another little problem, though - using justification with italics (I suppose it concerns the bold text as well). Italics cause the text not to fit the window sometimes, if you're using justification. Making it work with the three default fonts would be good. Don't know how many people use justification, so it may be of little priority to fix it.
Title: Re: Advanced Text System 3.0c
Post by: Cascading Dragon on September 09, 2010, 11:16:03 PM
With italics and bold fonts, its hard to guess the size they use. I believe MA has said somewhere that he can't make it work for everything, and its up the the developer to play test it.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 10, 2010, 12:15:57 AM
Yeah, the paragraph formatter relies on the text_size method of Bitmap, which unfortunately is not accurate when it comes to italicized text (though I think it actually is with regard to bolded font). The way to fix it would be to manually tweak the text_size method to return the correct value for each font and for each individual character, which requires a scripter. I might be able to whip up a little RM-based program that will allow you to do the tweaking yourself and generate the code to do that for the text_size method, but I am very busy at the moment, so we'll have to see about that.
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on September 10, 2010, 11:50:21 AM
Modern.

I have a question about the Choice Branches.

I've been trying to use a Choice Box to sell furniture to a player who has purchased a house in my project.   When you go to the furniture store, and select which house you wish to add to, you are given Appended Choice Branches, based on possible upgrades.  There are two possible upgrades for each room of the house.   Therefor, I've got it setup so only the second upgrade is not visible  (\son[]) until the first Upgrade is purchased.  At which point, the first upgrade choice is rendered disabled using \d[].

Now, after the player upgrades to the second one, both should be disabled.   That's when I'm having a hard time finishing the sequence. 

I'm looking for a way to make both codes work on the same line.  Like this
Code: [Select]
\son[x]\d[y]LIVING ROOM 2

For some reason, though the code show selection if switch x is on and disable it if switch y is on, it simply disables it. 

Is it not possible to use a double code like that?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 10, 2010, 06:56:56 PM
Well, they should work together, and I did a short test and they did. I think you're using the wrong code for what you want though. If you want to disable it when switch y is on, you should be using \d![y]. \d[y] disables the choice as long as switch Y is off.

That sounds confusing, so in other words, the way the code you have works is that the choice will not show up unless switch X is ON, and will be disabled unless switch Y is ON. If you want it to be disabled if switch Y is on (it sounds like you do), then use \d![y]
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on September 11, 2010, 02:30:51 AM
Yes, that was confusing.  But you were right.  It works.  Thanks again.
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on September 12, 2010, 01:11:12 PM
Just a suggestion, M_A:

Code: [Select]
afp[x] show face of actor in the nth position?


This would be helpful if there were multiple front of the party possibilities.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 12, 2010, 03:18:03 PM
you could always do this:

Code: [Select]
\af[\p[x]]

The construction you have might be a little more simple though. What I really should have done is made it so that \n[0] and \af[0] would show the first actor in the party, as it was in RM2k3, but I forgot about it.
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on September 12, 2010, 06:04:35 PM
Cool.  That works.
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on September 19, 2010, 03:25:06 AM
Hey Modern,

I'm still using the crap out of this script.  I wanted to let you know that I found what may or may not be considered another bug in it. 

For some reason, there are a few times, when I had an NPC say something, immediately followed by a choice branch.    And in certain instances, the choices wouldn't show and the game would resume as if by cancel.   I've been working around it, by excluding the choices in these situations.  But today, I had an idea that maybe since I left the default max lines at 4, and there wasn't room for the choices in the message box, that it wouldn't show them. 

I got this impression, because when it happens, the namebox disappears on the first spacebar or enter input, and it takes a second one to remove the message box.    At length, I decided to change the default "false" boolean which is designated to the "opens choices in another box" option to "true".   And it worked.

Anyway, I just wanted to let you know.  It's not a real problem and I doubt anyone has run into it before.  Most people can probably figure it out if it does.  I know you just released the new version, so I was hesitant to tell you.  But I figured you'd like to know in case the problem ever arises again. 
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 19, 2010, 12:46:40 PM
Alright, thanks for telling me. I will definitely look into it once I have the time.
Title: Re: Advanced Text System 3.0c
Post by: Wiimeiser on September 20, 2010, 10:31:20 AM
Minor issue, Yanfly's game options script doesn't work correctly, in that the windowskin you choose won't be used. Surely this can be fixed?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 26, 2010, 04:46:47 PM
Well, link me to it and I will take a look.
Title: Re: Advanced Text System 3.0c
Post by: Deity on September 29, 2010, 04:04:20 PM
You're genius MA. :)
This is a very good Message System which have more features then anyone will be able to use. xD
Keep on doing such freaky scripts.

Deity
Title: Re: Advanced Text System 3.0c
Post by: Wiimeiser on September 30, 2010, 09:15:54 AM
Here it is (http://wiki.pockethouse.com/index.php?title=System_Game_Options)
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on October 01, 2010, 11:13:37 PM
Alright, well that script does more than just select a windowskin. It also sets the bold, italic, shadow, size, name, and color. Do you also want all that or just the windowskin?
Title: Re: Advanced Text System 3.0c
Post by: Lysop on October 02, 2010, 09:27:36 AM
Is it possible to create a conditional branch for choices?
Like this:
(http://i53.tinypic.com/oh8f8k.png)
If a switch or variable doesn't fit, an other choice is activated.
It should be all in one window!
(im sorry if there is a possibility, but I dont find it)
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on October 02, 2010, 01:03:09 PM
There are very good reasons for choices not being added externally in the way you describe, but there are other ways to do what you want - use the \soff and \son codes. You should find a description of how they work in the Instructions - special codes list. Essentially, the only thing they can check is the value of a switch, so it is not as extensive as a conditional branch, but you can use conditional branches beforehand to determine the value of the switch. So your example will look like this:

Code: [Select]
@>Show Choices: \d[200]Mission 2-1, \son[261]Mission 2-2, \soff[261]Mission 2-3, Mission 3-1
  :  When [\d[200]Mission 2-1]
    @>
  :  When [\son[261]Mission 2-2]
    @>
  :  When [\soff[261]Mission 2-3]
    @>
  :  When [Mission 3-1]
    @>
  :  When Cancel
    @>
  :  Branch End
@>

To use the full range of conditionals, then you would need to do the checks before hand and turn the switch on or off accordingly
Title: Re: Advanced Text System 3.0c
Post by: Lysop on October 02, 2010, 03:00:53 PM
Oh, thanks, you are right! It's more or less that what I want :) !
Title: Re: Advanced Text System 3.0c
Post by: Countdown on October 02, 2010, 09:19:49 PM
So, when I use the fit to text and place it above a character with the speech bubble pictures...it flashes down at the bottom of the screen, as if it starts writing it down at the bottom, but then realizes that it needs to be above a character? How do I get it so that it will start drawing above a character, instead of jump to that character?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on October 02, 2010, 09:53:44 PM
Are you using the :character and :char_ref properties or the \e[], \oc[] codes?

Try using the :character and :char_ref properties - I think they will do it immediately. Really, I should have made it so the codes would be interpreted before the window shows up, but for now, just use the properties.
Title: Re: Advanced Text System 3.0c
Post by: Countdown on October 02, 2010, 10:46:29 PM
Yeah, I've been using \E[x].
Title: Re: Advanced Text System 3.0c
Post by: Very Fairy Tail. on November 10, 2010, 04:05:12 AM
PRETTY NEAT!

ill be deffinetly Using it.

5/5
Title: Re: Advanced Text System 3.0c
Post by: Kaimi on November 18, 2010, 08:53:42 PM
I'm eventing for myself Final Fantasy XIII Datalog: I'm getting with ATS 3 pretty well, but I don't know what should I do, if I wanted to display a full screen description. For example: I'm selecting chapter one, and from this subchoice menu second choice, then a full page description shows up (preferably with pic).
Title: Re: Advanced Text System 3.0c
Post by: CompanionWulf on November 21, 2010, 05:57:00 PM
I have to say that this script has come in leaps and bounds since its inception and now it's the most comprehensive text system out there. I was using UTS for my projects before but ATS satisfies all the needs for my project, AMG, though still learning all its features! That's half the fun though (teaches me how to script too!) ;D
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on November 21, 2010, 11:58:35 PM
I'm glad that you like it. I originally had made it for a friend, and its only feature was animated faces :)

I hope that the learning curve is not too steep and you get used to it quickly.
Title: Re: Advanced Text System 3.0c
Post by: CompanionWulf on November 29, 2010, 01:53:35 AM
Awesome! Well it's certainly very useful. So far so good. Still learning RGSS properly, but it's nice to be able to really study the code to see how things are done. If the "learning curve" proves too steep, I guess I know where to come!  ;D
Title: Re: Advanced Text System 3.0c
Post by: Countdown on December 16, 2010, 05:17:57 AM
Hey Modern. Got a question for you.

I've messed around with the different configuration settings, and still seem to not to be getting the results I want. So, I'll come here and ask.

Is it possible to have the Message box one window skin and the Menu an entirely different one? I notice that you can change ones for the message, face, choice, and word, but what about menu? I've got it customized to be a speech bubble, but don't want it to be a speech bubble in the menu.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 16, 2010, 02:17:19 PM
The menu is controlled entirely separately. Just save the one you want for the menu as "Window" and save the one you want for the message to something else. In the configuration, set the windowskin to that something else.
Title: Re: Advanced Text System 3.0c
Post by: harl4101 on December 16, 2010, 08:59:47 PM
Does Anyone know where I can get one just like this for XP?
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on December 28, 2010, 05:32:19 AM
First of all, I'm working with RPG Maker VX for the first time. Second, how exactly do I use a large image (X > 96x96) for the character icon or whatever? And also, I don't understand how to use the message codes (an example of it should be enough for me to understand)?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 28, 2010, 06:08:47 AM
To use large faces, simply select faces that are larger than usual in the message window. IE. if you have a set of eight faces that are 128x128 rather than 96x96, just use that set of faces and select the appropriate index. Alternatively, you can save faces as single face graphics by saving it with a $ at the start of the name. Then select the 0 index and it will display the whole image.

For using message codes, just insert them directly into the text. So, if you wanted to show the name of actor 1, just put it in like so:

@>Text: My name is \n[1]!

There's no trick to it. Download the demo - there are examples of nearly every feature there, including large faces and lots of message code use.
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on December 28, 2010, 07:06:30 AM
@modern algebra
Thank you for the explanation on using message codes.

"select the appropriate index"
I'm sorry, what?

"Alternatively, you can save faces as single face graphics by saving it with a $ at the start of the name. Then select the 0 index and it will display the whole image."
So... putting "$" at the beginning of a face set does what to it exactly? I thought it was just something that I had to do to the Character images. 0 index?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 28, 2010, 04:37:32 PM
Normal facesets are set up as 4x2. So, 4 actors in the top row, 4 actors in the bottom row, and each face is 96x96. So, when you are normally selecting a face, you are selecting one of those eight faces. That is what I was referring to by select the index.

For large faces, you can do it in one of two ways, either you can make a 4x2 set of faces that are larger than normal (ie. 4 faces in top row and 4 in bottom, but instead of being 96x96 they are 160x128, or whatever). Then you select the face you want, but if I recall correctly, the selecting square will not be aligned properly, so that's why I said index instead of face.

The other way to do it is to just save single large faces with the $. What that $ means is that the script will read the image as just one face, rather than 8 faces like normal.

If you are still confused, a large face is used in the demo. You can just look into that event and see how it was done.
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on December 29, 2010, 12:15:38 AM
@modern agenda
Oh, thank you very much. Now, here's another problem. Only a few images actually worked when I placed "$" in front of the filename. The others had the same problem. Check the attachment.

"Place this script in its own slot in the Script Editor (F11) above Main #   and below Materials."

By this, do you mean I should have it with my other scripts (going down the list under Main and above Materials) or it should be on its own like Main and Materials are?
i.e.
*empty slot*
?Advance Text System 3.0
*empty slot*
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 29, 2010, 04:28:31 AM
Yeah, it should be in its own slot between Main and Materials. So:

Materials
*empty slot(s)
ATS 3.0
*empty slot(s)
Main


And yeah, it's fine that the little selector box is tiny. I can't change the program; just leave it where it is. However, once in game and used in a message, it will show the whole face.
Title: Re: Advanced Text System 3.0c
Post by: heisenman on December 30, 2010, 09:58:00 AM
May I ask the implementation of a new feature here or should I open a new thread?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 30, 2010, 04:08:18 PM
Nah, ask it here
Title: Re: Advanced Text System 3.0c
Post by: heisenman on December 31, 2010, 05:40:14 AM
I noticed that when :scroll_show_arrows is true, the floating arrow (forgot its name) overlaps the scrolling arrow in the bottom. I wouldn't have noticed there was a down arrow had it not been a different colour.

So, could you implement a feature that allows to move the floating arrow to the side?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 31, 2010, 04:36:30 PM
Sure, just grab the Window Pause Sprite Hijacked (http://rmrk.net/index.php/topic,39893.0.html) script and place it above the ATS. Then place the following little code below it:

Code: [Select]
class Window_Message
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Reset Pause Position
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def reset_pause_position
    super
    @pause_sprite.x += 16 if $game_message.scrolling && $game_message.scroll_show_arrows
  end
end

That'll move the pause sprite a little to the right.
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on January 01, 2011, 12:04:37 AM
Would you mind posting an example for making someone's dialogue green with the script? I didn't do it right.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 01, 2011, 02:02:12 AM
Assuming that you are using the default windowskin, the following message would be do it:

@>Text: \c[3]Hi this text is green. \c[11]This is a different shade of green. \c[0]This is white.

You can also use hex with this system, allowing you to use any shade of color pretty much.

So, something like this:

@>Text: \c[#00FF00]This is green. \c[#00a000]This is a less obnoxious green.

Title: Re: Advanced Text System 3.0c
Post by: yarow12 on January 01, 2011, 02:31:52 AM
Thank you.
What in the script do I mess with in order to make it possible to press enter and continue downward to view the rest of a message? When I press enter, it just skips to the next message.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 01, 2011, 03:25:59 AM
You're going to have to be more specific as I don't know what you mean by "skip to the next message." The script will always show a full message. You can turn the scrolling option on so that it will scroll, if that is what you are asking for. You can also turn on the autopause feature if you want it to pause everytime it reads a page.

If on the other hand, you mean you want a message to pause for a second before completing itself, you just use the \! command.

Seriously though, almost everything is in the demo. Just look at the events and you can figure it out.
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on January 01, 2011, 09:11:15 AM
Thanks for the demo recommendation. It cleared up a few things, but not the scrolling problem that I have. This could possibly be a bug of some sort. Perhaps it's occurring because of the Scripts that I am using.
In the demo, way too much text just continued to flow until it was done. Afterwards, I was free to either scroll back up or continue to the next message.
In my Play Testing, too much text is shown in the message window (as much that will fit). However, it does not continue downward (scroll) with the rest of the text I simply never get it and when I press Enter or Space Bar it just goes to the next message box. What can I do from within the script to fix this?

I'm using Reedo's Common Code, Ultimate Quest System (not set-up yet), Read!, Pause Script, HK's Animated Title Screen, Yanfly Engion Melody (the latest version from the demo), and your script.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 01, 2011, 04:11:36 PM
Well, it might be that you have the message system from YEM. You would have to get rid of that or else it will probably interfere.
Title: Re: Advanced Text System 3.0c
Post by: kirinelf on January 01, 2011, 08:08:11 PM
Hey there MA, I'm getting a weird error with nameboxes, namely that they aren't long enough. Here's a screenshot:

Spoiler for:
(http://i12.photobucket.com/albums/a228/kirinelf/Errors/Error.jpg)

This only happens if I use \nb[Mama]. Interestly enough, the other names I'm using (Login, Router, Yufia, Lucia, Eclair) all show up fine. I tried setting the character's name in the database and used \n[ x], but it still appears cut off like that.

Do you have any idea why this is happening?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 01, 2011, 09:54:00 PM
Well, the text_size method in Bitmap doesn't work very well for some fonts, so that's probably the problem. I was working on a little fix type thing for that, but I don't know when that will be ready. For now, try just putting extra spaces in it and see if that works, like:

\nb[Mama   ]
Title: Re: Advanced Text System 3.0c
Post by: kirinelf on January 01, 2011, 10:11:40 PM
*Headdesk* That was a simple workaround. It doesn't seem like anything else in my project is effected, so that should be all for now. Cheers, MA.
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on January 01, 2011, 11:42:50 PM
I don't have that one on my script list. Oh wellies, I guess. Maybe it's a bug?
The message starting from the top ends with "what happened to them" from the next downward. Afterwards, it continues on the next message.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 02, 2011, 03:44:34 AM
Hmm - yeah I guess its a bug. Can you send me a project with the error recreated? Just paste the ATS as you have it configured and that event into a new project and try it out. If it works, then its an incompatibility and you'll need to include your other scripts. If it doesn't work, you only need to include the ATS. In any case, compress game data (leave it unencrypted), and upload it in a post.
Title: Re: Advanced Text System 3.0c
Post by: heisenman on January 02, 2011, 09:59:03 AM
Sure, just grab the Window Pause Sprite Hijacked (http://rmrk.net/index.php/topic,39893.0.html) script and place it above the ATS.
Ah, I remember seeing that script some times ago but I didn't fully understand what its purpose was.
It works, tough I have a minor bug to report.

Thanks (:
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on January 03, 2011, 03:40:46 AM
I tried it with only ATS and that one event. I still had the same problem, though.
Can you give me any advice on making a bridge in the game or an example (screenshot) of one? I can't shake the feeling that the one I made is really crappy, but that's the best that I've figured out how to do.  :-[
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 03, 2011, 04:02:27 AM
OK, you set MAX_LINES to 10 - that is your problem.

In the Config, around line 766, you have:

Code: [Select]
  MAX_LINES = 10                 # See line 376.

But your window size and font size means you can really only fit 4 lines. So change it to:

Code: [Select]
  MAX_LINES = 4                 # See line 376.

If you want to make the window bigger or the font size smaller, then you can make the max lines greater too.


As for the bridge - I'm not a mapper. As far as bridges go, the VX RTP is pretty limited. I probably wouldn't make it that long though. You can always grab resources to help make better bridges though, like this (http://rmrk.net/index.php/topic,26153.0.html).

If you want better feedback, you can always post in the Screenshot Thread (http://rmrk.net/index.php/topic,13626.0.html)
Title: Re: Advanced Text System 3.0c
Post by: yarow12 on January 03, 2011, 04:46:12 AM
Thank you for the help.
Title: Re: Advanced Text System 3.0c
Post by: Countdown on January 12, 2011, 02:30:32 AM
Only a tiny problem. Shouldn't be hard to fix.

I have the boxes fit to the text lenght, and I also have this script:
Code: [Select]
#==============================================================================
# Chest Item Pop-Up
#==============================================================================
# Author    : OriginalWij
# Edited By : Mac Malone (Dr. ?)
# Version   : 3.0 - Dr. ? Edit v1.2
#==============================================================================

#==============================================================================
# v1.0
# - Initial release
# v1.1
# - Added description window
# v1.2
# - Bug fix and added forgotten aliases
# v1.3
# - Added option to only popup once for many of the same item
# v2.0
# - Reworked name popup window (won't show "1 x" if only one item)
# - Reworked gold display (more efficient)
# - Added option to turn popup sound on/off
# - Added option to turn popup text on/off
# - Added icon to name popup and the ability to turn it on/off
# - Added adjustable X & Y coordinates for name popup window
# - Added "call" feature - with and without adding the item to inventory
# - Added option to wait for button or time for popup name window
# - Added options to define button and time for popup name window wait
# - Added option to enable/disable the "close window" sound
# - Added options to define "close window" sound
# v2.1
# - Fixed moving event bug
# - Added option to have popup always active
# - Added option for overlay graphic
# - Added auto-adjust name window location, depending on actor X/Y
# v2.2
# - Several minor (non-bug) display fixes
# - Removed overlay option due to compatibility problems
# - Optimized script
# v3.0
# - Bugfix for when called from a common event
# - Reworked main popup scene for new X/Y determination
# - Added option for 2nd window cancellation button
# - Added option to center the text window or auto-move to not cover the player
# - Added option to popup items & gold after battle
# v3.0 - Dr. ? Edit
# - Added sound groups
# - Added ME compadibiltiy
# - Added Chest_Popup.new2 command
# - Added option to show or not show gold
# - Added option to show popup above event
# - Added Chest_Popup.new3 command
# - Added Popup_Data class (Incompadible with old save files)
# v3.0 - Dr. ? Edit v1.1
# - Bugfix for $popup.show_above_event
# v3.0 - Dr. ? Edit v1.2
# - Bugfix for save bug in lines 339-353 (now lines 341-355)
#==============================================================================

#==============================================================================
# To use:
#
#   Normal Mode    : turn on the switch (designated below) BEFORE
#                    each gold/item addition
#   Automatic Mode : turn on the switch (designated below) if you DON'T want
#                    popups and then turn the switch off when done
#
# To call manually:
#
#   (useful if using a break-limits script and popping-up 100+ of one item)
#
#   $scene = Chest_Popup.new(type, amount, index, add = false, x = pX, y = pY, sound_group = nil)
#          type : 0 :gold, 1 :items, 2 :weapons, 3 :armor
#        amount : number of items "gaining"
#         index : item ID
#           add : adds item(s) shown into inventory if true (default = false)
#             x : custom X coordinate to pop-up at (default = player X)
#             y : custom Y coordinate to pop-up at (default = player Y)
#   sound_group : play different sounds; an array containing [SI, VI, PI] look
#               : at PLAY_P_SOUND for more. (default = nil) - Dr.? Edit
#==============================================================================

#==============================================================================
# NOTE: when adding multiple (different) items in an event, insert a WAIT(1)
#       between them (insert the WAIT(1) even if in AUTOMATIC mode)
#==============================================================================
# NOTE: the switch turns itself off after each "add item/gold" event command
#       UNLESS in automatic mode (you MUST turn it off MANUALLY in auto-mode)
#==============================================================================
# NOTE: insert a WAIT(7) between a text message and adding items in events
#       (allows time for the message window to close)
#==============================================================================

  #-----------------------------------------------------------------------------
  # Popup Controls
  #-----------------------------------------------------------------------------
  # Automatic popup mode
  # (true = ALWAYS popup UNLESS $game_switches[POPUP_SWITCH] is on)
  AUTO_POPUP = true
  # Switch to activate/deactivate popups
  # (activate if AUTO_POPUP = false) (deactivate if AUTO_POPUP = true)
  POPUP_SWITCH = 1
  # Popup gold
  GOLD_POP = true
    # "Gold" icon index
    # (if GOLD_POPUP = true)
    GOLD_ICON = 205
  # Only popup once (if many of the same item)
  ONLY_SHOW_ONE = true
  # Popup gold/items gained in battle (pops-up after battle)
  BATTLE_POP = false
    # Battle reward prefix text for popup text window
    # (if BATTLE_POP = true)
    BATTLE_REWARD = 'Battle Reward: '
  # Show the Popup icon above the event which gave you the item.
  SHOW_ABOVE_EVENT = false
 
  #-----------------------------------------------------------------------------
  # Sound Groups (Dr. ?)
  #-----------------------------------------------------------------------------
  # With this edit you can play multiple sounds depending on what you pick up.
  # You can also play custom sounds when an important item is gained.
  #
  # Defining your Sounds, Volumes, and Pitches:
  # ===========================================
  # To set up your volumes, pitchs, and sound files you put a new pitch, volume,
  # and or sound into the 3 constants below (P_SND, P_SND_V, P_SND_P).
  #
  # Sounds:
  # -------
  # For sounds you can either play a SE or a ME.
  # To add a new sound simply add new index to P_SND like so:
  #
  # old:
  # P_SND = ['Audio/SE/Chime2']
  # new:
  # P_SND = ['Audio/SE/Chime2', 'Audio/SE/Item1'] # Added a new SE called Item1
  #
  # Volumes:
  # --------
  # To add a new volume add a new index to P_SND_V like so:
  #
  # old:
  # P_SND_V = [100]
  # new:
  # P_SND_V = [100, 80] # Added a volume with a percentage of 80. The precentage can be 0 - 100
  #
  # Pitchs:
  # -------
  # Same as with volumes except you add it to P_SND_P. The precentage can be 0 - 150.
  # Examples: [150] # Pitch of 150
  #
  # Defining your Sound Groups:
  # ===========================
  # A sound group is an array cosisting of a Sound Index (SI), a Volume Index (VI),
  # and a Pitch Index (PI). So the format is: [SI, VI, PI]. A sound index is the
  # index of one of your defined sounds, a volume index is the index of one of
  # your defined volumes, and a pitch index is the index of one of your defined
  # pitchs. Here are some examples (Using the values above):
  #
  # [0, 0, 0] # This would be the SE, Chime2, with a volume of 100 and a pitch of 150.
  # [1, 1, 0] # This would be the SE, Item1, with a volume of 80 and a pitch of 150.
  #
  # I hope you understood that.
  #
  # Using Sound Groups:
  # ===================
  # There are two ways to use sound groups. The GOLD_SOUND, WEAPON_SOUND, etc.
  # constants and via Chest_Popup.new or Chest_Popup.new2 commands.
  #
  # GOLD_SOUND, ITEM_SOUND, WEAPON_SOUND, etc.:
  # -------------------------------------------
  # To use a sound group in these constants simply write: GOLD_SOUND = [0, 0, 0]
  # or whatever your sound group is. These constants mean what sounds will play
  # when gold is gained, when a weapon is gained, etc. It should be evident, but
  # it does tell you what each one is beside the constant definition. Examples:
  #
  # GOLD_SOUND = [0, 0, 0] # This would play the SE, Chime2, with a volume of 100
  # and a pitch of 150 when gold is gained.
  # ITEM_SOUND = [1, 1, 0] # This would play the SE, Item1, witha volume of 80
  # and a pitch of 150 when an item is gained.
  #
  # Chest_Popup.new and Chest_Popup.new2 Commands:
  # ----------------------------------------------
  # Use this to make special music play when you get a special item.
  #
  # Example:
  # Let's say we get a very special item (Like a crystal) and we want it to
  # popup and play the ME Fanfare1 with the defualt volume and pitch (100, 150).
  # So here is what we would do. We would first add that ME into P_SND like so:
  #
  # P_SND = ['Audio/SE/Chime2', 'Audio/SE/Item1', 'Audio/ME/Fanfare1']
  #
  # Then we would make our event with Quick Event Creation > Treasure Chest,
  # select our chest character set and choose our crystal item from the drop-down.
  # Then we open up the event. We delete the second to last event on the first
  # page, the one that adds the a item. Then We replace it with a script event.
  # If the index of the crystal was 8 it would look like this:
  #
  # $scene=Chest_Popup.new(1,1,8,true,nil,nil,[2,0,0]) # See the 8 in this command?
  # That is the index of the item in the database.
  #
  # Note: This WON'T fit one just one line, and I'm not sure if that's going to
  # be a problem or not. If you want the command to fit on one line you could
  # ethier use the new2 command or do this:
  #
  # sg = [2,0,0] # sound group
  # t = true     # add value
  # $scene=Chest_Popup.new(1,1,8,t,nil,nil,sg)
  #
  # This would end up taking 3 lines but all of the commands would fit on one
  # line.
  #
  # After that, click OK and you are done.
  #
  # About New2:
  # -----------
  # The Chest_Popup.new2 is a command made just for the sound group purpose. It
  # shortens the new command by rearrganing it and removing the x, y settings.
  # In the example above the new2 command would have made the script look like
  # this:
  #
  # $scene = Chest_Popup.new2(1, 1, 10, [2,0,0])
  #
  # Thus, it would fit on one line. The syntax for this command is:
  #
  # $scene = Chest_Popup.new2(type, amount, index, sound_group=nil, add=true)
  #
  # Each of them have the same meaning the same as their counterparts in the
  # Chest_Popup.new command explained at the top of this script, with the
  # exception of the defualt of add now being true.
  #
  # Notes:
  # ======
  # PLAY_P_SND must be true for any of this to work.
  #
  #-----------------------------------------------------------------------------
  # Play sound on popup?
  PLAY_P_SND = true
    #######################################################
    # 3 options below are valid ONLY if PLAY_P_SND = true #
    #######################################################
    # Sound to play upon popup
    # Can be a list of sounds, volumes, and pitchs, but must be surrounded in []
    P_SND = ['Audio/SE/Chime2', 'Audio/SE/Chime1', 'Audio/ME/Fanfare1']
    P_SND_V = [100]
    P_SND_P = [150]
   
  # Which sound to play from P_SND at certain occasions.
  # SI = Sound Index, VI = Volume Index, PI = Pitch Index
  #                SI VI PI
  GOLD_SOUND    =  [1, 0, 0]      # Sound to play if gold
  ITEM_SOUND    =  [0, 0, 0]      # Sound to play if item
  ARMOR_SOUND   =  [1, 0, 0]      # Sound to play if armour
  WEAPON_SOUND  =  [1, 0, 0]      # Sound to play if weapon
  DEFAULT_SOUND =  [0, 0, 0]      # Sound to play if all others are nil
   
  # Play "close window" sound?
  # Sound Groups do not currently work with this sound.
  PLAY_C_SND = false
    #######################################################
    # 3 options below are valid ONLY if PLAY_C_SND = true #
    #######################################################
    # Sound to play upon popup close
    C_SND = 'Audio/SE/Cancel'
    C_SND_V = 80
    C_SND_P = 100
   
  #-----------------------------------------------------------------------------
  # Popup Text Controls
  #-----------------------------------------------------------------------------
  # Show popup text?
  SHOW_POPUP_TEXT = true
    ##############################################################
    # ALL options below are valid ONLY if SHOW_POPUP_TEXT = true #
    ##############################################################
    # Show icon with popup text?
    SHOW_POPUP_TEXT_ICON = true
    # Auto adjust window if over player
    TEXT_WINDOW_MOVE = true
    # Popup text window Y coordinate
    TEXT_WINDOW_Y = 180
    # Popup text window X coordinate offset
    # 0 (Zero)         : centered in the window
    # negative integer : offset left  (centered)
    # positive integer : offset right (centered)
    TEXT_WINDOW_X_OFFSET = 0
    # Wait for button to close? (false = wait for time)
    WAIT_FOR_BUTTON = false
      # Buttons to wait for
      # (if WAIT_FOR_BUTTON = true)
      # (Set both to the same button to check for only one)
      BUTTON_TO_WAIT_FOR1 = Input::C
      BUTTON_TO_WAIT_FOR2 = Input::B
      # Frames to wait
      # (if WAIT_FOR_BUTTON = false)
      WAIT_FOR_TIME = 40

#==============================================================================
# Popup_Data
#   - Added by Dr.?
#==============================================================================

class Popup_Data
 
  attr_accessor :gold_pop, :only_show_one, :show_above_event, :battle_pop, :play_p_snd, :play_c_snd,
  :c_snd, :c_snd_v, :c_snd_p, :show_popup_text, :show_popup_text_icon, :text_window_move,
  :text_window_y, :text_window_x_offset, :wait_for_button, :wait_for_time
 
  def initialize
    create_popup_data
  end
 
  def create_popup_data
    @gold_pop = GOLD_POP
    @only_show_one = ONLY_SHOW_ONE
    @battle_pop = BATTLE_POP
    @show_above_event = SHOW_ABOVE_EVENT
    @play_p_snd = PLAY_P_SND
    @play_c_snd = PLAY_C_SND
    @c_snd = C_SND
    @c_snd_v = C_SND_V
    @c_snd_p = C_SND_P
    @show_popup_text = SHOW_POPUP_TEXT
    @show_popup_text_icon = SHOW_POPUP_TEXT_ICON
    @text_window_move = TEXT_WINDOW_MOVE
    @text_window_y = TEXT_WINDOW_Y
    @text_window_x_offset = TEXT_WINDOW_X_OFFSET
    @wait_for_button = WAIT_FOR_BUTTON
    @wait_for_time = WAIT_FOR_TIME
  end
 
end

$popup = Popup_Data.new

#==============================================================================
# Scene_File
#   - Added by Dr.?
#==============================================================================

class Scene_File
 
  alias popup_save write_save_data
  def write_save_data(file)
    popup_save(file)
    Marshal.dump($popup, file)
  end
 
  alias popup_load read_save_data
  def read_save_data(file)
    popup_load(file)
    $popup = Marshal.load(file)
  end
 
end
     
#==============================================================================
# Game_System
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # Public Instance Variables (Added)
  #--------------------------------------------------------------------------
  attr_accessor :battle_pop       # holds items to popup after battle
  attr_accessor :battle_pop_gold  # holds gold to popup after battle
  attr_accessor :pop_event        # holds the event if SHOW_ABOVE_EVENT=true
  #--------------------------------------------------------------------------
  # Initialize (Mod)
  #--------------------------------------------------------------------------
  alias chest_pop_gs_initialize initialize unless $@
  def initialize
    chest_pop_gs_initialize
    @battle_pop = nil
    @battle_pop_gold = 0
    @pop_event = nil # Add by Dr. ?
  end
  #--------------------------------------------------------------------------
  # Get Battle Pop (New)
  #--------------------------------------------------------------------------
  def battle_pop
    return @battle_pop
  end
  #--------------------------------------------------------------------------
  # Set Battle Pop (New)
  #--------------------------------------------------------------------------
  def battle_pop=(items)
    @battle_pop = items
  end
  #--------------------------------------------------------------------------
  # Get Battle Pop Gold (New)
  #--------------------------------------------------------------------------
  def battle_pop_gold
    return @battle_pop_gold
  end
  #--------------------------------------------------------------------------
  # Set Battle Pop Gold (New)
  #--------------------------------------------------------------------------
  def battle_pop_gold=(gold)
    @battle_pop_gold = gold
  end
 
end

#==============================================================================
# Game_Interpreter
#==============================================================================

class Game_Interpreter
  #--------------------------------------------------------------------------
  # Change Gold (Mod)
  #--------------------------------------------------------------------------
  alias chest_pop_command_125 command_125 unless $@
  def command_125
    value = operate_value(@params[0], @params[1], @params[2])
    # Pop-up
    event = $game_map.events[@event_id]
    $game_system.pop_event = event
    if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[0] == 0 and $popup.gold_pop
      if !$popup.show_above_event
        $scene = Chest_Popup.new(0, value, 1)
      elsif !@event_id.nil?
        $scene = Chest_Popup.new(0, value, 1, false, event.screen_x, event.screen_y)
      end
    end
    chest_pop_command_125   
  end
  #--------------------------------------------------------------------------
  # Change Items (Mod)
  #--------------------------------------------------------------------------
  alias chest_pop_command_126 command_126 unless $@
  def command_126
    value = operate_value(@params[1], @params[2], @params[3])
    # Pop-up
    event = $game_map.events[@event_id]
    $game_system.pop_event = event
    if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0
      if !$popup.show_above_event
        $scene = Chest_Popup.new(1, value, @params[0])
      elsif !@event_id.nil?
        $scene = Chest_Popup.new(1, value, @params[0], false, event.screen_x, event.screen_y)
      end
    end
    chest_pop_command_126
  end
  #--------------------------------------------------------------------------
  # Change Weapons (Mod)
  #--------------------------------------------------------------------------
  alias chest_pop_command_127 command_127 unless $@
  def command_127
    value = operate_value(@params[1], @params[2], @params[3])
    # Pop-up
    event = $game_map.events[@event_id]
    $game_system.pop_event = event
    if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0
      if !$popup.show_above_event
        $scene = Chest_Popup.new(2, value, @params[0])
      elsif !@event_id.nil?
        $scene = Chest_Popup.new(2, value, @params[0], false, event.screen_x, event.screen_y)
      end
    end
    chest_pop_command_127
  end
  #--------------------------------------------------------------------------
  # Change Armor (Mod)
  #--------------------------------------------------------------------------
  alias chest_pop_command_128 command_128 unless $@
  def command_128
    value = operate_value(@params[1], @params[2], @params[3])
    # Pop-up
    event = $game_map.events[@event_id]
    $game_system.pop_event = event
    if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0
      if !$popup.show_above_event
        $scene = Chest_Popup.new(3, value, @params[0])
      elsif !@event_id.nil?
        $scene = Chest_Popup.new(3, value, @params[0], false, event.screen_x, event.screen_y)
      end
    end
    chest_pop_command_128
  end
end

#==============================================================================
# Item Popup Window (New)
#==============================================================================

class Item_Popup_Window < Window_Base
  #--------------------------------------------------------------------------
  # Initialize
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(0, 0, 544, 416)
    self.opacity = 0
    # Adjust X/Y to proper origin
    @x, @y = x - 27, y - 60
  end
  #--------------------------------------------------------------------------
  # Pop-Up
  #--------------------------------------------------------------------------
  def pop_up(icon_index, x_offset, y_offset)
    self.contents.clear
    # Draw pop-up icon
    draw_icon(icon_index, @x + x_offset, @y + y_offset, true)
  end
end

#==============================================================================
# Name window (New)
#==============================================================================

class Name_Window < Window_Base
  #--------------------------------------------------------------------------
  # Initialize
  #--------------------------------------------------------------------------
  def initialize(x, y, desc, no_desc, index, gold = false, icon = 0)
    super(x, y, 56, WLH + 32)
    # Adjust window to content's size and center
    icon_x = self.contents.text_size(index).width + 6
    width = self.contents.text_size(desc).width
    self.width = width + 32
    self.x = ((544 - self.width) / 2) + $popup.text_window_x_offset
    create_contents
    # Draw pop-up text
    ix = no_desc ? 0 : icon_x
    item_check = $game_system.battle_pop
    gold_check = $game_system.battle_pop_gold
    if $popup.battle_pop and (item_check != nil or gold_check > 0) # If battle reward
      ix += self.contents.text_size(BATTLE_REWARD).width + 2
    end
    tx = gold ? 4 : 0
    draw_icon(icon, ix, 0) if $popup.show_popup_text_icon and !gold
    self.contents.draw_text(tx, 0, width, WLH, desc, 0)
    draw_icon(GOLD_ICON, width - 24, 0, true) if gold
  end
end

#==============================================================================
# Scene_Base
#==============================================================================

class Scene_Base
  #--------------------------------------------------------------------------
  # Initialize (New)
  #--------------------------------------------------------------------------
  def initialize
    @disable_blur = false
  end
  #--------------------------------------------------------------------------
  # Disable blur (New)
  #--------------------------------------------------------------------------
  def disable_blur=(enabled)
    @disable_blur = enabled
  end
  #--------------------------------------------------------------------------
  # Create Snapshot for Using as Background of Another Screen (Rewrite)
  #--------------------------------------------------------------------------
  def snapshot_for_background
    $game_temp.background_bitmap.dispose
    $game_temp.background_bitmap = Graphics.snap_to_bitmap
    # Don't blur if disabled
    $game_temp.background_bitmap.blur unless @disable_blur # changed
  end
end

#==============================================================================
# Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # Start (Mod)
  #--------------------------------------------------------------------------
  alias chest_pop_start start unless $@
  def start
    chest_pop_start
    # Popup battle rewards
    if $popup.battle_pop
      if $game_system.battle_pop_gold > 0  # gold
        gold = $game_system.battle_pop_gold
        $game_system.battle_pop_gold = 0
        $scene = Chest_Popup.new(0, gold, 0, true)
      elsif $game_system.battle_pop != nil # items
        item = $game_system.battle_pop.shift
        if item == nil
          $game_system.battle_pop = nil
        else
          type = 1 if item.is_a?(RPG::Item)
          type = 2 if item.is_a?(RPG::Weapon)
          type = 3 if item.is_a?(RPG::Armor)
          $scene = Chest_Popup.new(type, 1, item.id, true)
        end
      end
    end
  end
end

#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # Display Gained Experience and Gold (Rewrite)
  #--------------------------------------------------------------------------
  def display_exp_and_gold
    # Save gold to popup after battle
    $game_system.battle_pop_gold = $game_troop.gold_total if $popup.battle_pop # added
    exp = $game_troop.exp_total
    gold = $popup.battle_pop && $popup.gold_pop ? 0 : $game_troop.gold_total # changed
    $game_party.gain_gold(gold) unless $popup.battle_pop  # changed
    text = sprintf(Vocab::Victory, $game_party.name)
    $game_message.texts.push('\|' + text)
    if exp > 0
      text = sprintf(Vocab::ObtainExp, exp)
      $game_message.texts.push('\.' + text)
    end
    if gold > 0
      text = sprintf(Vocab::ObtainGold, gold, Vocab::gold)
      $game_message.texts.push('\.' + text)
    end
    wait_for_message
  end
  #--------------------------------------------------------------------------
  # Display Gained Drop Items (Mod)
  #--------------------------------------------------------------------------
  alias chest_pop_display_drop_items display_drop_items unless $@
  def display_drop_items
    # Save items to popup after battle
    $game_system.battle_pop = $game_troop.make_drop_items if $popup.battle_pop
    return if $popup.battle_pop
    chest_pop_display_drop_items
  end
end

#==============================================================================
# Chest_Popup (New)
#==============================================================================

class Chest_Popup < Scene_Base
  #--------------------------------------------------------------------------
  # Initialize
  #--------------------------------------------------------------------------
  def initialize(type, amount, index, add = false, x = nil, y = nil, sound_group = nil)
    x = $game_player.screen_x if x == nil
    y = $game_player.screen_y if y == nil
    $game_switches[POPUP_SWITCH] = !AUTO_POPUP
    $scene.disable_blur = true
    @x, @y, @amount = x, y, amount
    @gold = @no_desc = false
    case type
    when 0 # Gold
      $game_party.gain_gold(amount) if add
      @icon = GOLD_ICON
      @desc_amount = ''
      @desc = @amount.to_s
      @amount = 1
      @gold = true
      @sound = GOLD_SOUND
    when 1 # Items
      $game_party.gain_item($data_items[index], amount) if add
      @icon = $data_items[index].icon_index
      @desc_amount = @amount.to_s + ' x'
      @desc_amount = '' if @amount == 1
      @no_desc = true if @amount == 1
      @desc = $data_items[index].name
      @amount = 1 if $popup.only_show_one
      @sound = ITEM_SOUND
    when 2 # Weapons
      $game_party.gain_item($data_weapons[index], amount) if add
      @icon = $data_weapons[index].icon_index
      @desc_amount = @amount.to_s + ' x'
      @desc_amount = '' if @amount == 1
      @no_desc = true if @amount == 1
      @desc = $data_weapons[index].name
      @amount = 1 if $popup.only_show_one
      @sound = WEAPON_SOUND
    when 3 # Armors
      $game_party.gain_item($data_armors[index], amount) if add
      @icon = $data_armors[index].icon_index
      @desc_amount = @amount.to_s + ' x'
      @desc_amount = '' if @amount == 1
      @no_desc = true if @amount == 1
      @desc = $data_armors[index].name
      @amount = 1 if $popup.only_show_one
      @sound = ARMOR_SOUND
    end
    # Check sound_group
    @sound = sound_group if !sound_group.nil?
    # Set index
    @index = @desc_amount
    # Add description to text
    if @gold
      @desc = @desc + '      '
    else
      if $popup.show_popup_text_icon
        @desc = @desc_amount + '      ' + @desc
      else
        @desc = @desc_amount + ' ' + @desc if @desc_amount != ''
      end
    end
    # If battle reward
    item_check = $game_system.battle_pop
    gold_check = $game_system.battle_pop_gold
    if $popup.battle_pop and (item_check != nil or gold_check > 0)
      @desc = BATTLE_REWARD + @desc
    end
  end
  #--------------------------------------------------------------------------
  # New2
  #   - Added by Dr.?
  #   - This is mostly used for controling sound groups
  #--------------------------------------------------------------------------
  def self.new2(type, amount, index, sound_group = nil, add = true)
    return Chest_Popup.new(type, amount, index, add, nil, nil, sound_group)
  end
  #--------------------------------------------------------------------------
  # New3
  #   - Added by Dr.?
  #   - This is mostly used for making the icon pop-up over an event
  #--------------------------------------------------------------------------
  def self.new3(type, amount, index, event, add = false, sound_group = nil)
    event = $game_map.events[event] if event.is_a?(Integer)
    return Chest_Popup.new(type, amount, index, add, event.screen_x, event.screen_y, sound_group)
  end
  #--------------------------------------------------------------------------
  # Start
  #--------------------------------------------------------------------------
  def start
    create_background
    # Create pop-up window
    @popup_window = Item_Popup_Window.new(@x, @y)
  end
  #--------------------------------------------------------------------------
  # Terminate
  #--------------------------------------------------------------------------
  def terminate
    # Dispose windows
    @popup_window.dispose
    @menuback_sprite.dispose
    @name_window.dispose if $popup.show_popup_text
  end
  #--------------------------------------------------------------------------
  # Return Scene
  #--------------------------------------------------------------------------
  def return_scene
    # Turn off blur and pop-up switch
    $scene.disable_blur = false
    $game_switches[POPUP_SWITCH] = false
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # Update
  #--------------------------------------------------------------------------
  def update
    super
    # Update pop-up window
    @popup_window.update
    @menuback_sprite.update
    # Do the actual popping-up
    do_popup
  end
  #--------------------------------------------------------------------------
  # Update Basic
  #--------------------------------------------------------------------------
  def update_basic
    Graphics.update             
    Input.update                 
  end
  #--------------------------------------------------------------------------
  # Wait
  #--------------------------------------------------------------------------
  def wait(duration)
    # Wait for DURATION frames
    for i in 0..duration
      update_basic
    end
  end
  #--------------------------------------------------------------------------
  # Wait for close
  #--------------------------------------------------------------------------
  def wait_for_close
    count = 0
    loop do
      update_basic
      count += 1
      # Close if button 1 pressed
      break if Input.trigger?(BUTTON_TO_WAIT_FOR1) and $popup.wait_for_button
      # Close if button 2 pressed
      break if Input.trigger?(BUTTON_TO_WAIT_FOR2) and $popup.wait_for_button
      # Close if time elapsed
      break if count >= $popup.wait_for_time and !$popup.wait_for_button
    end
  end
  #--------------------------------------------------------------------------
  # Create Background
  #--------------------------------------------------------------------------
  def create_background
    # Create modified background
    @menuback_sprite = Sprite.new
    @menuback_sprite.bitmap = $game_temp.background_bitmap
    @menuback_sprite.update
  end
  #--------------------------------------------------------------------------
  # Show Name
  #--------------------------------------------------------------------------
  def show_name
    x = 272
    y = $popup.text_window_y
    py = $game_player.screen_y - 32
    cy = (py - y).abs
    # Offset Y if text box is above player's position
    if cy < 128 and $popup.text_window_move
      y = py < y ? y + (y / 2) : y - (y / 2)
    end
    # Create Window
    @name_window = Name_Window.new(x, y, @desc, @no_desc, @index, @gold, @icon)
    # Wait for button(s) or time
    wait_for_close
    # Play sound
    Audio.se_play($popup.c_snd, $popup.c_snd_v, $popup.c_snd_p) if $popup.wait_for_button and $popup.play_c_snd
  end
  #--------------------------------------------------------------------------
  # Do Pop-Up
  #--------------------------------------------------------------------------
  def do_popup
    # Set sound index - Dr.?
    @sound = DEFAULT_SOUND if @sound.nil?
    # Pop-up icon(s)
    for i in 1..@amount
      # Support for ME added - Dr.?
      if P_SND[@sound[0]].include?("/SE/")
        Audio.se_play(P_SND[@sound[0]], P_SND_V[@sound[1]], P_SND_P[@sound[2]]) if $popup.play_p_snd
      elsif P_SND[@sound[0]].include?("/ME/")
        Audio.me_play(P_SND[@sound[0]], P_SND_V[@sound[1]], P_SND_P[@sound[2]]) if $popup.play_p_snd
      end
      for i in 0..4
        @popup_window.pop_up(@icon, 0, i * -4)
        @popup_window.update
        wait(2)
      end
      wait(5) if i != @amount and !$popup.only_show_one
    end
    wait(5)
    # Pop-up text
    show_name if $popup.show_popup_text
    # Exit
    return_scene
  end
 
end

My issue is that even when I turn the wlh off with
Code: [Select]
$game_ats.fit_window_to_text = false
it still cuts off some text. Any way to fix it?

EDIT: It also places the box in random places on the map. How to fix that so that it'll be in the center of the screen all the time?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 12, 2011, 06:40:19 AM
It doesn't seem like that script uses the message window, so are you sure that it's doing those errors because of the ATS and is not inherent in that script? I don't see any reason why my script would interact with that one - it creates its own windows.
Title: Re: Advanced Text System 3.0c
Post by: Countdown on January 15, 2011, 11:07:37 PM
The chest opens and the icon comes out of the chest, then a message window comes up and says what the item was. I can't turn off the window.

I've put this into the event before it does anything:
Code: [Select]
$game_ats.fit_window_to_text = false

And then put this back in to put the ATS back to how I use it:
Code: [Select]
$game_ats.fit_window_to_text = true

But it still acts strange.

Note for the attachment, I get 10 gold from the chest. But all I see is part of the 1 and then the icon.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 16, 2011, 12:00:30 AM
OK, but is that a problem with the ATS or is it independent - IE does it happen if you do it in a project that doesn't have the ATS in it?

From what I could tell when I glanced at the script, it creates and uses its own windows - it doesn't piggyback on Window_Message and so I don't see how the ATS would be affecting it.
Title: Re: Advanced Text System 3.0c
Post by: Countdown on January 16, 2011, 12:09:52 AM
It only does it when I have the ATS. What if I put the script above the ATS? I'll try it then edit this and let you know the results.

EDIT: It still cuts off the words. Not really cuts off the words, but puts the icon over the top of the words.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 16, 2011, 04:35:31 PM
Alright, can you send me a little demo with the error recreated and I will take a look. I would prefer if it wasn't your project demo, but anything is fine so long as I know where to call the event that creates the error.
Title: Re: Advanced Text System 3.0c
Post by: Countdown on January 17, 2011, 06:44:41 PM
Sent. Had time to look at it?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 17, 2011, 11:38:38 PM
not yet. I will get to it soon.

EDIT::

I just took a look - removing the ATS from the project does not fix the problem, so it is not the ATS. Why did you lie to me about testing that? The error is directly in the Chest Popup script and will thus occur even if there were no other scripts present - it takes poor account of font difference. In the future, I would ask that you take the steps that I ask of you when debugging a script before foisting it on me. In any case, I suppose there is no harm done and at least now I've taken the time to examine the problem.

A simple fix is to replace the method starting at line 513 with the following:

Code: [Select]
  #--------------------------------------------------------------------------
  # Initialize
  #--------------------------------------------------------------------------
  def initialize(x, y, desc, no_desc, index, gold = false, icon = 0)
    super(x, y, 56, WLH + 32)
    # Adjust window to content's size and center
    icon_x = self.contents.text_size(index).width
    width = self.contents.text_size(desc).width
    width += 10
    self.width = width + 32
    self.x = ((544 - self.width) / 2) + $popup.text_window_x_offset
    create_contents
    # Draw pop-up text
    ix = no_desc ? 0 : icon_x
    item_check = $game_system.battle_pop
    gold_check = $game_system.battle_pop_gold
    if $popup.battle_pop and (item_check != nil or gold_check > 0) # If battle reward
      ix += self.contents.text_size(BATTLE_REWARD).width + 2
    end
    tx = gold ? 4 : 0
    if !gold && desc[0, 1] != " "
      desc.insert (3, " ")
    elsif !gold
      tx += 10
    end
    draw_icon(icon, ix, 0) if $popup.show_popup_text_icon and !gold
    self.contents.draw_text(tx, 0, width, WLH, desc, 0)
    draw_icon(GOLD_ICON, width - 24, 0, true) if gold
  end

There is potentially another problem with the script when it comes to using different fonts. Instead of directly calculating whether an icon is used or not, the scripter decided to just put a set number of spaces when passing the name of the item gained to his little window. This was a poor decision as it can (and in your case, did) cause problems when using different fonts. This is the real problem with the script and it is one that I did not actually address - I retained his method and simply adapted it so that it will not cause problems with the specific font you are using. I did this because to really fix it would take more time than I am willing to spend on someone else's script. The result of this is that if you change fonts, you will once again have a problem. If you want a real solution, I suggest you alert the scripter of these errors and ask him to fix it. My guess is that the error was introduced by Mac Malone (Dr ?), not Wij, but that is speculative as I am not familiar with the original script and am just going on reputation.

As for the window popping up in different places, that was a deliberate choice of the scripter and it's based on where the player sprite is on the screen. It appears designed to avoid blocking the sprite. I did not take the time to address this - it also has nothing to do with the ATS and if you want it changed, talk to the scripter.

Again though, I'd like to reiterate that while I am happy to help you with this problem, I do not like that you decided to obtain my aid by pretending it was an incompatibility with my script and maintaining that fiction even when following my directions would have clearly shown that was not the issue. Maybe it was accidental, I don't know, but in the future just post in the regular Scripts (http://rmrk.net/index.php/board,99.0.html) board when you have a problem with some random script.
Title: Re: Advanced Text System 3.0c
Post by: munkis on January 19, 2011, 08:09:34 PM
I don't know if this can already be done with the script, but if it can't I have a suggestion for a feature to be added.  Basically what I'd like to do is be able to change the face displayed in the message box after the message is finished (kinda like when you say something that you think is somewhat amusing and you crack a smile).  The text tag could be structured like:

\cf("file_name", index)
Title: Re: Advanced Text System 3.0c
Post by: Countdown on January 19, 2011, 10:00:18 PM
Hi, Modern. A couple things.

First. Thank you for fixing it very much. You did something that I do not know how to do.

Second. I did not intentionally "lie" to you. I did test it without the ATS, and it did work. What happened though, my guess, is that I wasn't using the font that I am in my project. So I truly did think it was an issue with the ATS, and I'm very sorry for any inconvenience I have caused you and I hope that you won't think less of me in the future. I try not to disappoint, even though I sometimes fail. Thank you once again Modern!
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 19, 2011, 11:19:11 PM
I'm sorry that I jumped to a conclusion that you were doing it intentionally - I did recognize that it was possible that you were simply not being rigourous enough, but it is not uncommon for me to get requests about random scripts and I am not the world's personal scripter. I don't hold it against you personally and as I said, it's not a big deal and I would help you regardless. I do think you should be a little more careful in the future and logically make a conclusion as to the source of the error before implicating some other script based on random guesswork. It would not have been hard to either simply remove the ATS from your project to test or try both in a new project where they were the only scripts and no other variables were modified.
Title: Re: Advanced Text System 3.0c
Post by: Countdown on January 19, 2011, 11:41:41 PM
You are right, and I will make sure that I don't mess up again. I would never intentionally take advantage of you. You must be a busy person, as am I, and I respect your time and effort into scripting awesome scripts, and helping people resolve issues in scrips. I would never intentionally waste your time. So, I shall redouble my efforts to make sure I do not do it again.
Title: Re: Advanced Text System 3.0c
Post by: Organ House on February 01, 2011, 02:35:30 PM
I've been using ATS2 for months, and just today came across an error where \pid[n] wasn't working, so I upgraded to ATS3, and I'm re-adjusting all of my settings and I've come across a problem.
I used to use the Yanfly RD menu options to allow me to set the windowskin and change it around. I used to put it below ATS2 and it would supersede it, but now it causes an error (line 2616) because ATS3 and the menu options both want to mess with the windowskin.

This was also nice because it would set the facewindow, choicebox, namebox and message window to display the same thing instead of having to change all of them four times. Is there a way to make it so Yanfly's system still works?

Other than that I'm loving the update!

P.S. this is probably a hard request so you don't have to do it if you don't want to, but in RMXP ccoa had a system for facesets so that when RMXP reached the end of a message for a window it would switch the faceset from one (talking) to another (blinking). Any way that could be easily or feasibly done?
Title: Re: Advanced Text System 3.0c
Post by: AquaxRyan on February 01, 2011, 05:15:54 PM
I just start using this script and I have a really beginner question...
How do you enable the choicebox? I can't find the option
Title: Re: Advanced Text System 3.0c
Post by: Organ House on February 01, 2011, 11:32:04 PM
Isn't it "Even Commands>Show Choices"?
Title: Re: Advanced Text System 3.0c
Post by: AquaxRyan on February 03, 2011, 05:11:15 PM
I'm talking about the choicebox thing in this script, not how to show choices in RMVX

I've been using RPG Maker for years, I know how to work it
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on February 03, 2011, 07:32:18 PM
Just go to the gigantic configuration section and find the line that says:

Code: [Select]
  CHOICE_WINDOW = false

Change it to:

Code: [Select]
CHOICE_WINDOW = true

alternatively, if you wanted to change it permanently in-game, you can use the code in a script call:

Code: [Select]
ats_all (:choice_window, true)

or if you want to do it only for the very next message:
Code: [Select]
ats_next (:choice_window, true)
Title: Re: Advanced Text System 3.0c
Post by: Illuminatorr on February 05, 2011, 02:07:56 AM
I have a problem with the name box I put \nb[Guard] and it comes up but it is behind the text box the other scripts I have are in the attached picture. Could one of them be causing the issue?

One more thing does the ATS script include Paragraph Formatter?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on February 05, 2011, 05:58:15 AM
Yes it includes the Paragraph Formatter.
As for the namebox below the textbox, it probably is one of those other scripts. Try putting the ATS below all of them but still above Main. If that doesn't work, you can probably fix it by CTRL+F for the line:

Code: [Select]
@name_window.open

Add after that line the following:

Code: [Select]
@name_window.z = 500

If that doesn't work, play around with that 500 and increase it until it does.
Title: Re: Advanced Text System 3.0c
Post by: Organ House on February 05, 2011, 02:26:21 PM
I just got a weird error. If I turn on choice_window and I have a tinted background for the preceding dialogue box the choice_window in game shows up dim as well (which isn't bad), but once I've made the choice the dim background still remains on the screen and can stack up to several times and never go away if there are multiple choices in the event.
Title: Re: Advanced Text System 3.0c
Post by: Illuminatorr on February 05, 2011, 06:10:58 PM
It worked thank you!
Title: Re: Advanced Text System 3.0c
Post by: munkis on February 09, 2011, 08:55:54 PM
I just thought of another suggestion;  give this script the ability to print text right-to-left, and make it switchable in-game through a script command, like

Code: [Select]
text_rtl = true/false

or something like that.
Title: Re: Advanced Text System 3.0c
Post by: pacdiggity on February 11, 2011, 06:30:42 AM
I've already been told that necroposting in scripts sections is okay, so no rage for you.
Anyways, that is actually a pretty good idea for if there's some cryptic language in your game that you read backwards or something. Perhaps a system wherein text comes from both ends, or expands from the center?
Title: Re: Advanced Text System 3.0c
Post by: Organ House on February 16, 2011, 03:15:16 PM
I noticed if you set move when visible to on and \oc[x] it will place the message window over that event, but if you move along the x,y then the message window won't stay anchored to that point over the event.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on February 16, 2011, 05:40:29 PM
Thanks for the headsup. I will get around to that and all the other recent issues very soon as I am going on break. Hopefully I can have 3.1 ready to go very soon.
Title: Re: Advanced Text System 3.0c
Post by: brushfe on February 20, 2011, 04:52:54 PM
A quick question for anyone who's comfortable with the ATS:

If I was going to insert a line of code to play a sound effect when the choicebox appeared, where in the ATS script would be the best place to do so?

(I've tried doing it with events, but putting anything between the last text message and the 'show choice' command makes the text message disappear, which I'd like to avoid.)

Thanks in advance. 
Title: Re: Advanced Text System 3.0c
Post by: Organ House on February 22, 2011, 09:18:29 PM
I also have a question, just how does the filter command work? I do have a part of my game where the player chooses their gender, but I don't know how I can use the filter command to make that work. Do I go into the script and set it so that if player chooses male it'll run "ats_all (filter, he)" and the opposite for female and then just put "\f[?]" whenever the pronoun would come up?
Title: Re: Advanced Text System 3.0c
Post by: teknoarcanist on March 08, 2011, 12:27:51 AM
Is there an ATS text command to respond to the arrow keys?  For example, if I wanted the message to pause, wait for arrow input (rather than enter), and then proceed?

EDIT: solved.  Worked around it :P

Also:
Is it just something I'm doing wrong, or does changing the font size fuck up paragraph formatting?

MA, this whole system is absolutely fantastic btw.  Idk what strange dementia compels people like yourself to expend time and energy building ridiculously deep code modules like this for the community, but I sure am grateful for it.
Title: Re: Advanced Text System 3.0c
Post by: Mr G W on March 16, 2011, 07:41:28 PM
I found a huge glitch with appended choices.

If you have more than 4 choices by using many choice event commands.
Selecting the last of a set glitches and then crashes the game.

Example:
Event command 1:
Choice 1
Choice 2
Choice 3
Choice 4 <-- This
Event command 2:
Choice 5
Choice 6 <-- This

Selecting these will mess up.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on March 16, 2011, 10:22:23 PM
That doesn't happen in the demo, and I am finding myself unable to recreate the error - can you recreate the error in a project and send it to me so that I can see for myself? I can't really do much as is, except speculate that that method is being called for an index outside of the range included
Title: Re: Advanced Text System 3.0c
Post by: Mr G W on March 17, 2011, 10:08:45 AM
Well its not a compatibility issue since i recreated it in a map without scripts.

this happens on every choice i append, so i dont really know what to do.

i dont have the map at this pc atm, ill show the event later.

EDIT: here it is a "demo" of the glitch. Selecting the 4th option from the choice will.. well glitch up.

I dont know why this happens, but it does not happen to all my events i use choices.
Title: Re: Advanced Text System 3.0c
Post by: Mr G W on March 20, 2011, 08:47:18 PM
I found something interesting: the glitch doesnt happen if the appended choices are inside a choice or a conditional branch, though i dont really feel like using conditional branches just to use a choice...
Title: Re: Advanced Text System 3.0c
Post by: epson777341 on March 21, 2011, 05:51:09 PM
Hi, I switched over to your ATS after using the one that came from Yanfly's Engine Melody because yours had more features available to it. However, I've noticed that If I change the windowskin using the System Game Options, the menu will change but, the text in messages will remain the same as it was before. I know that not all scripts work together, but I just wanted to know if there was an easy fix. or not.

EDIT: Ugh, nevermind, got it to work. I just commented out all instances of calling the windowskin. Great script, MA.
Title: Re: Advanced Text System 3.0c
Post by: Organ House on March 24, 2011, 02:50:16 AM
Seriously, can some please-please-please explain filters? I'm trying to set it up so that when the player makes a specific choice in-game the filter "1" changes to "he" or "she". As far as I can tell the script in the event should look something like "$game_ats.filters = {1="he"}" but that doesn't work.
Title: Re: Advanced Text System 3.0c
Post by: Organ House on March 27, 2011, 12:36:39 PM
Sorry to bother, but I found an odd glitch. If I have a choicebox that's dim, and then make a choice, the dim choicebox doesn't terminate. Alternatively if I have a character talk with a face graphic and use the dim background after that character is done speaking the messagebox won't terminate either. The only way I can get it to terminate normally is to just have a dim messagebox with no choices or face windows.

EDIT: On top of everything having ATS3 and the Quest Journal together causes the game to crash everytime I open the quest menu after a quest has been added, giving me an error that states the paragraph formatter (in the quest script) is an uninitialized constant.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on March 31, 2011, 02:23:21 PM
Well, if you are using the Quest Journal, you need to have the separate Paragraph Formatter script - the one in the ATS is quite different.

As for the other problems, I will work on them as soon as exams are finished.
Title: Re: Advanced Text System 3.0c
Post by: Organ House on April 02, 2011, 05:02:54 AM
Thanks! That fixed everything! And don't stress yourself, I have time.
Title: Re: Advanced Text System 3.0c
Post by: Raukue on May 24, 2011, 10:26:34 AM
I see you have updated some of your scripts, mind showing me all your updated scripts? So far I been tinkering with adding this one on my oh so old demo I made, but I keep getting an error on line 2616 and don't know why. I deleted all your other scripts that I think went with ATS 2.0 but I am not sure.

Also, which scripts of yours are no longer compatible now with this update? Do any of these updated scripts of yours conflict with Yanfly or KGC now?
Title: Re: Advanced Text System 3.0c
Post by: joseanjim on June 20, 2011, 09:11:05 AM
Hello. ¿This script still has support from author? I have a problem with paragraph option. I call script thereby: ats_all (:paragraph_format, true). And all I get is text drawing in a only one long line coming out the window. I will probably use the script, I need anothers of its options. But could be a great thing to write text at input without change line troubles...
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 20, 2011, 11:45:23 AM
That error has never happened to me, so I will need to see your project. Reproduce the error in a new project and upload it for me and I will take a look.
Title: Re: Advanced Text System 3.0c
Post by: joseanjim on June 20, 2011, 03:12:19 PM
http://www.joseanjim.es/RPG_MAKER/WVR.rar (http://www.joseanjim.es/RPG_MAKER/WVR.rar)
Here you have it... You can see in it another error with choose options and the spaniard letter ñ.
Paragraph option according to my observation sometimes works, sometimes not.

I think script needs a command to end color change, like bold (/c, I supose, but I think to use a light version of BBcode commands should be better in general coz a lot of people knows to use it).

I like the script, thank you, is very useful. But all options I tried I found some bug...

Another thing... ¿Is better separate commands with spaces? Then that command spaces must don't appear in final result in game screen...

EDIT: Now I'm doing some event with choice branches (I NEED more than 4 choose options). In the begining all seems ok but when I choose some options I get bad windows and a script error message: Script 'ATS 3.0' line 2553 : NoMethodError ocurred. undefined method `[]' for nil:NilClass.
I think the events are OK.
http://www.joseanjim.es/RPG_MAKER/WVR2.rar (http://www.joseanjim.es/RPG_MAKER/WVR.rar)
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 25, 2011, 05:35:20 PM
Well, I'll take a look at both. The foreign letters is a problem with the text_size method of Bitmap and I have been working on a fix for all that stuff, but the other problems you claim I've never heard before, so it may take some time since I have had trouble finding the time to work on this stuff.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on June 29, 2011, 05:21:45 PM
I think I found an issue:

I am using a message width of 308 with a message height of 78

If the following was made to be over a characters head using the appropriate scripts and speech bubbles - like in your demo - the text will scroll as it is suppose to. I have also set the maximum lines to three. There is some cut off - but its not like "OMG your missing the word not or to" Its more like "Your missing part of the letter t on not."

The main issue is when I make a regular show text with no speech bubble or anything - as you see from the image - and fill it with scrolling text. You see what happens it doesn't scroll, doesn't wrap. It just breaks. and then its like "you can hit enter now" only to see that there is no more text.

I tried using \lb to break up the text but I can only do that for 2 lines, if I have anything past two lines the text won't show no matter if there is a bible of text or one more sentence.

Ideas?
Suggestions?
Fixes?

Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 29, 2011, 05:30:40 PM
And you set the max lines to 2 there?
Title: Re: Advanced Text System 3.0c
Post by: Adrien on June 29, 2011, 06:17:01 PM
No - sorry the line max is actually three but the text size is 24 so it can only fit two lines because of the height which is 78
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 29, 2011, 06:42:40 PM
Change the max lines to 2 then.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on June 29, 2011, 06:48:03 PM
That has done nothing.

Text above a character with a speech tag give three - like it should - text in the middle of the window (see the image above in my post) still looks the same.

Max Lines = 2

in other words its like i've done nothing.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 29, 2011, 07:57:42 PM
Alright, well reproduce the error in a new project and upload it for me. I will take a look as soon as I find the time.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on June 29, 2011, 08:06:49 PM
Really hope you can solve this issue today. I reproduced the error perfectly - thinking it was a scripting issue on my end. The max line of text are three in this case.

This demo does not include rtp for size - obv you have rpg maker vx installed.

The text is an event set to auto run. So your not actually scrolling - what you see on the screen the first time around is the issue.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 29, 2011, 09:24:33 PM
Well, you had paragraph format off. You have to turn that feature on if you want it to operate. In the demo you provided, turning paragraph format on and setting max lines to 2 fixed the problem.

Also, why are you insisting on leaving max_lines at 3? The purpose of that property is to tell the script how many lines can be displayed on the window at any given time. Your window only fits 2 so that is what max_lines should be.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on July 10, 2011, 07:30:12 AM
I am wondering if this is a rmvx thing or a if your script offers this, as  have seen it in peoples games...

Text will display slowly, so let me explain you have the words "the cat" show up normally at regular speed, then "....jumped...." each syllable or group of letters should wait X amount of time before displaying.

Hope that makes sense
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on July 10, 2011, 01:05:32 PM
Yeah, you can do that in this script with the \s[=y] command (where y is the number of frames to wait). You can also use \> and \< to decrease and increase the number of frames to wait by increments of 1. \s[y] will add or subtract y from the current number of frames.

\w[y] will set a number of frames to wait before drawing the next letter but the wait is only once. The script also inherits the \. and \| codes from the default message system, which wait 15 frames (1/4 second) and 60 frames (1 second), respectively.
Title: Re: Advanced Text System 3.0c
Post by: Shinanji on July 15, 2011, 01:42:07 PM
Hello all,
  Sorry if I seem as stupid as a rock here, but I am not that good with scripting. hehe. How do I actually call/assign these scripts in my game. I mean, how do I get the text bubbles to work for example.
  Any help would be appreciated.

Shinanji
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on July 15, 2011, 06:28:32 PM
If I'm not mistaken, you have to have the speech tag or thought tag graphics in your folder.  Then, read lines 354 to 374.  This lines explain just how to set it up.  It takes some getting used to, but I still believe there has never been a better script ever invented than this one.  I find new things on it all the time that I can do and have not used.  It's quite amazing.   Anyway, hope that helped!
Title: Re: Advanced Text System 3.0c
Post by: Shinanji on July 15, 2011, 07:04:47 PM
If I'm not mistaken, you have to have the speech tag or thought tag graphics in your folder.  Then, read lines 354 to 374.  This lines explain just how to set it up.  It takes some getting used to, but I still believe there has never been a better script ever invented than this one.  I find new things on it all the time that I can do and have not used.  It's quite amazing.   Anyway, hope that helped!

Thanks a lot. :) I will check that out.

Shinanji
Title: Re: Advanced Text System 3.0c
Post by: cozziekuns on July 18, 2011, 07:37:55 PM
Hey Modern. If you make a message window with one line of text, and then make a choice window with four options, if the cursor is on the first choice option then if you press Q or whatever Input::L is, the cursor will highlight the message.

Sorry if I've missed something in my configuration. My choice settings are:

Code: [Select]
CHOICE_TEXT = "    %s"        # See line 564.
  DISABLED_CHOICE_TEXT = "\\FA[128]%s\\FA[255]" # See line 569.
  CHOICEBOX_TEXT = "%s"         # See line 576.
  CHOICE_WINDOW = false         # See line 578.
  CHOICE_X = -1                 # See line 580.
  CHOICE_Y = -1                 # See line 584.
  CHOICE_OFFSET_X = -16         # See line 587.
  CHOICE_OFFSET_Y = 16          # See line 589.
  CHOICE_WIDTH = 192            # See line 591.
  CHOICE_HEIGHT = -1            # See line 594.
  COLUMN_MAX = 1                # See line 596.
  ROW_MAX = 4                   # See line 597.
  CHOICE_SPACING = 20           # See line 598.
  CHOICE_OPACITY = 255          # See line 600.
  CHOICE_BACKOPACITY = 200      # See line 601.
  CHOICE_WINDOWSKIN = "Window"  # See line 603.
  CHOICE_FONTCOLOUR = 0         # See line 605.
  CHOICE_FONTNAME = ["Verdana", "Arial", "Courier New"] # See line 607.
  CHOICE_FONTSIZE = 20          # See line 610.
  CHOICE_WLH = -1               # See line 611.
  CHOICE_DIM = "MessageBack"    # See line 612.
  CHOICE_USE_DIM = 2            # See line 614.
  CHOICE_ON_LINE = false        # See line 617.
  CHOICE_OPPOSITE_FACE = true   # See line 620.

Just letting you know about this minor bug.

Title: Re: Advanced Text System 3.0c
Post by: Adrien on July 21, 2011, 12:30:27 AM
I may have found something but I cannot be sure as replication is extremely hard to do - its not a rare occurrence, and its not a script incompatibility. But when I try to replicate it its odd.

The window size is as follows: 308x78 (WxH) the text lines max is set to two both in the script config and in the script you use in the event box to set up a talking npc.

paragraph formatting is on.


Sometimes, if I have more then 2 lines of text, even if i dont, the words get cut off.

"Sally mary had a log, dog on a frog" will some times be "Sally mary had a log, dog on a fr"

I say sometimes because usually talking to the again fixes this issue and the text aligns fine. Is this my issue, or your issue? Again replicating this is really hard as it doesn't ALWAYS happen while sometimes it does


Title: Re: Advanced Text System 3.0c
Post by: modern algebra on July 21, 2011, 12:33:17 AM
My issue probably. I will look into it.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on July 21, 2011, 12:45:50 AM
Ok awesome thank you
Title: Re: Advanced Text System 3.0c
Post by: Adrien on July 27, 2011, 01:22:03 AM
Um sorry for the bump but how goes the fixing of my "error" that i found?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on July 27, 2011, 02:05:23 AM
Sorry, "look into it" was not as present tense as it sounded. I will try to get to it, along with all the other reports, sometime this week.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on July 27, 2011, 02:54:25 AM
thats ok take your time the game wont be released till November any how, I was just curious :D
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on August 01, 2011, 07:48:28 PM
Hey Modern,

Is it possible to display faces as options in choicebox? 

I got to reading through the script and saw where it had the actor_method.  Thought maybe that would be the best way, but I'm not sure I understand it exactly.  I would like to have just a bunch of faces for the player to select from.  You placed suitable methods as str, def, etc.  But these all return one value.  I'd like to return both the name of file and the index of the face on the sheet.  Is that possible?
Title: Re: Advanced Text System 3.0c
Post by: himemai on August 05, 2011, 03:03:54 PM
Hello Modern!  :D I'm sorry for asking this ugly question...  :-\
I'm just seeing you write credit for this script...
And I don't understand the term of use of this script...
Can I use this script for non commercial?
And what about commercial game? <<<But I won't use this
script for commercial though....  :lol:
Sorry for my bad English...  :'(
I'm not really good with English though~   :-\
But if you don't mind, please answer my question...  ^-^
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 05, 2011, 04:00:16 PM
Yes, you can use it for non-commercial games; just mention me in the credits of a game that uses it and don't publish it elsewhere without my permission.

For commercial games, it depends on the scope of the project - typically I just ask for a free copy of the game, but, again, I would need to see the game first.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on August 05, 2011, 08:22:18 PM
Feature request:[\b]

-> In battle when you start the battle you usually see "bla emerged" and then after battle - > you won" or some victory message which is then usually preceded by an xp amount, gold and other rewards. Allow us to change that color using \c[number].

Also checking status of fix to random cut off in smaller formed text boxes bug [\i]
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 06, 2011, 03:13:44 AM
I could probably add that for the next version. In the meantime, you could use a script like my Global Text Codes if you like - since those messages aren't processed character by character, it should work fine. You can find it in the Database.

I haven't gotten around to the fix yet, but I will, eventually.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on August 07, 2011, 06:51:27 AM
I just wanted to update this as I read my bug report the paragraph formatting is true in your ATS script as well as in the "event" script
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 07, 2011, 01:53:42 PM
Thanks, that will help.
Title: Re: Advanced Text System 3.0c
Post by: phil121 on August 08, 2011, 11:44:54 PM
I noticed an annoyance with the Yerd Menu System Options.  It doesn't seem to take the windows that you set from the System option screen.  Is there a compat patch for it, or a snippet that could fix it?  Its just an annoyance, i can deal with blue screened messages, and a black window background.  It would just look... dirty.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on August 14, 2011, 12:43:36 AM
I have a new possible bug report:

With out the ATS - Enemy victory is displayed as such:
Order may not be perfect but you get the idea

Win
XP
Gold
Item
Other
- Other being other scripts that affect this out put

As noted with the previous dimensions on my other bug report of 308x78 (WxH) I get the following out put:

Win XP Gold Items Other (with appropriate line wrapping - agin see previous bug report on line wrapping issues)

\n (in most programming languages works) does nothing. (unless I am being dumb and it needs to go out the out side of the "" in the vocab section)

Ideas? Your issue? My Issue?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 14, 2011, 12:53:24 AM
Probably an incompatibility with that Victory Aftermath script you're using (whatever script is generating the "other" you mentioned) as I don't remember any problem like that in my battle tests. You could use \LB as that is the code I use for linebreaks (\n is used to display actor name by default so I figured it was better to preserve that), but I wouldn't want to force you to do that there.

Share the Victory Aftermath script (or whatever script you're using to generate that "Other") though so I can make them compatible.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on August 14, 2011, 03:28:35 AM
Its no victory after math its a vx ff 12 license board and all it does is add "you gained 10 lp"  to the already existing  "You gained Bla XP, Items, Gold." I am not using VA. This is standard out put, nothing modified except for me adding that one extra line to the already existing default out put for winning a battle.

I will try \lb. (typically in programming I thought you do "" + \n + "" ? (at least we do in java))
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 14, 2011, 12:39:38 PM
Yes, you would as \n is the line break character in ascii, but (a) it would still need to be replaced since it would actually be \\n by the way the message string is interpreted; (b) by default (no message system), it wouldn't work for messaging since it draws character by character and the draw_text method wouldn't recognize a \n character or do anything with it anyway (besides draw a square), so I would still need to add a condition for it; and (c) the default message system already uses \n[y] for the actor's name, and while it would be possible to use \n without [] to signify a line break, I didn't want to double up functions like that. So, (a) and (b) mean it is the same amount of work to use \n instead of \lb, and (c) means it would be confusing. So I think \lb is the better choice. Besides, most people wouldn't know what \n is generally in scripting and \lb for "line break" is, I think, more straightforward.

You still need to share that script though, even if that is all it does and I probably also need the configuration part of your ATS.. Or else just recreate the error in a new project and send it to me since, when I tested, I was unable to recreate your error. It might be a certain combination of features on that is causing the problem or it might be incompatibility with another script and your FF12 script is a likely culprit.

Ideal would be to recreate the error in a new project and send it to me, but I definitely need the FF12 script if you want me to fix this bug.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on August 15, 2011, 04:15:55 PM
\\lb works. Also I don't know what I did but in a recent testing of script compatabiity and moving things around - that "cut off bug" is reduced by 25%.
Title: Re: Advanced Text System 3.0c
Post by: phantomaang on August 20, 2011, 09:21:41 PM
I cannot seem to get this script to work. There must be a script that's messing it up, but I cannot figure out which one it is. I keep getting this error:
 
Script 'ATS 3.0' line 2616: ArgumentError occurred
wrong number of arguments (1 for 0)

Any help?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 20, 2011, 09:51:39 PM
What does the line say? The only way my line 2616 would cause a problem like that is if you had another script that also named one of its classes Window_FaceBox and is below the ATS. That seems unlikely; the only thing I could think of is either (a) you used to have ATS 2 and you didn't delete it when you added ATS3, or (b) my line 2616 is different from yours.

Actually, the fastest way to fix this would be for you to recreate the error in a new project and send it to me - then I could very easily fix it up for you.
Title: Re: Advanced Text System 3.0c
Post by: JonFawkes on August 21, 2011, 03:39:19 AM
Which line in this script do I modify to change the default font or font style for the entire game? I think the window size estimation might work better if my font was different (right now I think it's bold arial, which seems to get cut off sometimes).
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 21, 2011, 03:55:14 AM
This script would only let you change it for the various windows in the Message system. To change it for everything (menus, etc...) you would want to just create a new slot (somewhere above the ATS) and have the following lines:

Code: [Select]
Font.default_name = ["Verdana", "Arial", "Courier New"]
Font.default_size = 20

You would want to add the name of the font you want to the front of the array. It will take the first font that exists on the person's computer.

Ie. the above would use Verdana but if the person doesn't have Verdana installed, it would use Arial, and if the person doesn't have Arial installed, it would use Courier New. Though, that is kind of moot as all you need to do to make sure the player has the font is create a folder inside the game folder named Fonts and put all the fonts you use in it when you share the game.
Title: Re: Advanced Text System 3.0c
Post by: phantomaang on August 27, 2011, 03:59:53 PM
What does the line say? The only way my line 2616 would cause a problem like that is if you had another script that also named one of its classes Window_FaceBox and is below the ATS. That seems unlikely; the only thing I could think of is either (a) you used to have ATS 2 and you didn't delete it when you added ATS3, or (b) my line 2616 is different from yours.

Actually, the fastest way to fix this would be for you to recreate the error in a new project and send it to me - then I could very easily fix it up for you.
Well, I'll see if I can get that demo created, but here's the line in question.
   @face_window = Window_FaceBox.new (self.viewport)
Seems to be the same line. 
I checked all my other scripts, and none of them mess with the faces or are ATS 2.0.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 27, 2011, 07:36:27 PM
Well, I'll need to see a demo with the error recreated.
Title: Re: Advanced Text System 3.0c
Post by: fenicearcana on August 31, 2011, 01:22:55 PM
Hi Modern...your work seems excellent, but i cant use it and i cant understand why.
I pasted it in my Rpgmaker VX script editor but when i start a demo game to try it, the game say "line 3 error". but in line 3 there are only  ====== and if i delete them, it say again error on some other line after commena "end, end"
Seems strage. maybe i'm wrong and this script doesnt work for VX ?
Thanks for your time.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on August 31, 2011, 01:37:44 PM
No, it's for VX. Maybe it's a copying error though. Try downloading the demo (http://rmrk.net/index.php?action=dlattach;topic=25348.0;attach=21375) and if that works, then copy it directly from there.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on September 01, 2011, 06:23:43 PM
Am I doing this right?

Some Text \s[2]...\s[0] some more text...

If so, it never resets to normal text speed.

Also whats the status on the update to this script for fixing the cut off issue? :D
Title: Re: Advanced Text System 3.0c
Post by: TTrain427 on September 04, 2011, 05:55:22 PM
I keep getting a no method error occurred on line 1033, Undefined method 'animate_faces' for nil:NilClass.

Any idea how to fix that?
Title: Re: Advanced Text System 3.0c
Post by: phantomaang on September 10, 2011, 03:53:02 AM
http://www.filehosting.org/file/details/265101/ATS_3_Error_Demo.exe Here's the link to download the Demo that shows the error I was running into. I found which script was causing the issue and put that and the ATS 3 in the demo. Nothing else besides Missing File preventor. Will this do? (Don't worry, the site is safe to download from.)
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 10, 2011, 04:05:43 AM
Alright, it looks like Yanfly had written a compatibility patch between the ATS and the Menu system but it was for an old version of the script.

To fix it, go in the YERD script to line 603 and you should see the following:

Code: [Select]
#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize
    initialize_fb_mso
    self.update_windowskin
  end
 
end
end


class Window_NameBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize(string = '')
    initialize_nb_mso(string)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox < Window_Command
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize
    initialize_cb_mso
    self.update_windowskin
  end
 
end
end

class Window_Message < Window_Selectable
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize
    initialize_wm_mso
    self.update_windowskin
  end
 
end
end

Replace it with:

Code: [Select]

#===============================================================================
# Modern Algebra ATS Compatibility
#===============================================================================

class Window_FaceBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_fb_mso initialize unless $@
  def initialize (*args)
    initialize_fb_mso (*args)
    self.update_windowskin
  end
 
end
end


class Window_NameBox < Window_Base
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_nb_mso initialize unless $@
  def initialize (*args)
    initialize_nb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_ChoiceBox < Window_Command
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_cb_mso initialize unless $@
  def initialize (*args)
    initialize_cb_mso (*args)
    self.update_windowskin
  end
 
end
end

class Window_Message < Window_Selectable
unless method_defined?(:initialize)
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_wm_mso initialize unless $@
  def initialize (*args)
    initialize_wm_mso (*args)
    self.update_windowskin
  end
 
end
end
Title: Re: Advanced Text System 3.0c
Post by: phantomaang on September 10, 2011, 05:28:02 PM
Well, now there's a new issue.
I edited the Menu System script, and now that's fine. But now when I start, the error
Script ATS 3 line 3145 NoMethodError occurred.
undefined method '[]' for nil:NilClass

The Script causing the error is Jet's Mouse System script. I'll post another demo.
http://www.filehosting.org/file/details/265239/ATS_3_Error_Demo.exe
Here ya go.
Title: Re: Advanced Text System 3.0c
Post by: Moko on September 11, 2011, 10:36:07 PM
Hello MA.
I use your script -wich is great- but whenever I use the /oc[X] or /e[X] command, to get the message positionned above the X event, it appear first on the "default" position (for a very short time -but enough time to notice it-) THEN it goes to the right position, above the event.
In short, the message 'flashes' at the bottom of the screen, then goes up to the event.

I tried to change the :character line in the script itself, but the problem remains, only the "default" position changed.
I don't know if I do things correctly or not, this is the first script I've ever tried. =)
So, basically, is there a way to get the program run the commands \e[], \oc[] etc. before the message appears ?

ps: English is not my native language, sorry if my post is not clear enough.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on September 12, 2011, 05:37:11 PM
So I am just wondering if you have fixed that text cutting off issue and I think, as I pointed out before, i found a new issue: (unless I am using it wrong)

some text \s[3]....\s[0] some more text

in that example, the dots show up slowly but the text speed never resets at \s[0] thus some more text also come in slowly.
Title: Re: Advanced Text System 3.0c
Post by: hoodloc on September 17, 2011, 04:44:49 AM
HELP PLEASE!!! I have looked for the answer over and over again but cannot find it. Basically I was testing out the controls from the script for positioning message_width, message_height and some other one i cant remember. I had noticed after i have entered the positions and in the message box of the event after the positions i put Input Choice to see how it would look like. Then when i closed and opened my game again, the start menu screen with the New Game, Continue , and Exit was stretched out. The right side width was stretched out. I attached a picture to show what i mean  :(  .  And yes i have other scripts but i deleted them, downloaded the ATS 3.0 Demo script again, and it still didn't fix it. Then i deleted and un-istalled rpg vx and installed it again 2 times and still wouldn't change back. Help! I don't know whats going on?!?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 17, 2011, 11:51:16 AM
Err, that's just the way the title screen is by default. It has absolutely nothing to do with the ATS.

It's purely coincidental that you only noticed it after playing around with this script.
Title: Re: Advanced Text System 3.0c
Post by: hoodloc on September 17, 2011, 05:45:08 PM
All this time... I thought something was wrong...Man i gotta stop staying up too late. I could have sworn that the box was closer to the text. Thank you, cuz now i can sit back and let this sink in my head and realize. Anyway 10/10 script man its what i always looked for since i needed to congfigure message box width and height. Peace
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 17, 2011, 10:37:12 PM
If you think it looks off, all you need to do to make the window in the Title screen smaller is go to line 154 in Scene_Title. You should see this:

Code: [Select]
    @command_window = Window_Command.new(172, [s1, s2, s3])

Change the 172 to something lower and the box will be less wide. 140 would probably look OK with the default terms.
Title: Re: Advanced Text System 3.0c
Post by: hoodloc on September 18, 2011, 04:58:23 AM
uh huh. Nice thanks again man.  :lol:
Title: Re: Advanced Text System 3.0c
Post by: hoodloc on September 18, 2011, 05:03:39 AM
Hahahah perfect. Thank you again. It looks nice now i set it to 135. :)
Title: Re: Advanced Text System 3.0c
Post by: Adrien on September 19, 2011, 03:56:20 AM
@modern algebra So.....I assume the answer is no to my question of "have you looked at the bug?" lol. Do you have any possible fixes for it? and the s[time] /s[0] issue?
Title: Re: Advanced Text System 3.0c
Post by: fenicearcana on September 19, 2011, 08:31:48 AM
Modern...i beg your forgiveness... ._. i still love your Scripts but i'm too noob (more likely i'm too idiot -.-) to use it at full strenght... i will like to give my players some option like this:

Would you like to kiss me?

1) yes but bla bla bla
2) Definetly yes...*smuack*
3) mmm let me think...
4) well maybe...
5) isnt to haste?
6) i do not...
7) No hell! i dont want!

i make this example just to be clear as i can. i cant figure out how to give more choice with just one box ._.''
i do use Append_choice at line 770 like this...

Quote
  MAX_LINES = 4                 # See line 376.
  MESSAGE_SPEED = 0             # See line 378.
  SKIP_DISABLED = false         # See line 380.
  APPEND_TEXT = true            # See line 381.
  APPEND_CHOICE = true          # See line 383.
  SCROLLING = true              # See line 387.
    SCROLL_SPEED = 2            # See line 389.
    SCROLL_SHOW_ARROWS = true 

but cant figure out how to use it...[/s]

Edit: i figured out after wondering if my IQ is lowering by time...was quite simple...just set some choice then other choice without anything between them =_='''' sorry. The rest is indeed a bug i think...or maybe the bug is inside my brain...i need your confirm XD

And also another  THE problem is:

 if i set 5 line message or more, then use "choice" and add under them \+{text} in the comment, when i run the game, the last choice didnt appear at all ._.
Expecially if i use the line 777   PARAGRAPH_FORMAT = true
So i must use it on false :(
Sorry to bother you all the time...answer in no hurry, i can wait Master XD
Thanks for your Time and hard work ^^
Title: Re: Advanced Text System 3.0c
Post by: Adrien on September 28, 2011, 09:05:23 PM
How are we coming along on the "text cutting off" bug and the possible \s[time] bug....??
Title: Re: Advanced Text System 3.0c
Post by: Nessiah on November 11, 2011, 06:13:27 PM
Modern Algebra~ I was just wondering if there is a skip message function for ATS? I had been looking all over it but I can't seem to activate it. By skipping like fast forwarding a message? If you press shift it just automatically goes on auto read as long as you're holding it?
Title: Re: Advanced Text System 3.0c
Post by: Lestat on November 15, 2011, 09:56:27 PM
Thanks! Good script. It's been working great so far!
I'll be sure to test some more of it's functions out.
Title: Re: Advanced Text System 3.0c
Post by: Fizzly on November 27, 2011, 07:51:37 PM
Hi modern,
I think I found a bug. Don't think I'm doing something wrong, but the problem is when I have a choices like this:
(http://i.imgur.com/w63ii.png)
When I choose the "4" option in game, then I got new choicebox window with "5" and "6" (I had both "5" and "6" in first choicebox, so It's weird), and the game crushes after this. Also, in "5" and "6" new choicebox, your help box (from the script) appear, empty. o.o;
Can you help? What's going on?

Edit: Checked the demo, where it works well, and I think I found dependence. It works, when it looks like this:
(http://i.imgur.com/qkZjU.png)
So it must be in subchoices. Weird for me, but could you please check this?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on November 27, 2011, 08:09:45 PM
Those are the same pictures.

NM, looks like you edited while I was posting.

To everyone else: I have been swamped all Fall, but hopefully can get around to fixing all the bugs over the Christmas holiday.
Title: Re: Advanced Text System 3.0c
Post by: Fizzly on November 27, 2011, 10:08:44 PM
Those are the same pictures.

NM, looks like you edited while I was posting.

To everyone else: I have been swamped all Fall, but hopefully can get around to fixing all the bugs over the Christmas holiday.
Yes, I pposted the same first, sorry. Would be so cool if you can fix this! :)
Title: Re: Advanced Text System 3.0c
Post by: DigitalSpooker on November 29, 2011, 11:54:29 PM
Loving the script, however, I have a question, would it be possible to have a script that uses the party leader's picture as the picture for a text box?

To put it in context, I'm working on a horror-ish game, where the player can pick 1 of 4 characters (they only play as one character for a playthrough) and so far, the only work around I can think of, is to duplicate each map 4 times (1 for each character) I'm hoping it'd be possible to have a script to just call the PC portrait to the text box.

I hope my description made sense, if not, let me know and I'll attempt to re-clarify it.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on December 05, 2011, 01:52:06 AM
Bug report:

Characters who move and talk at the same time should have the speach bubble follow them instead of statically staying in one place.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on December 05, 2011, 06:21:39 PM
Hi modern,
I think I found a bug. Don't think I'm doing something wrong, but the problem is when I have a choices like this:
(http://i.imgur.com/w63ii.png)
When I choose the "4" option in game, then I got new choicebox window with "5" and "6" (I had both "5" and "6" in first choicebox, so It's weird), and the game crushes after this. Also, in "5" and "6" new choicebox, your help box (from the script) appear, empty. o.o;
Can you help? What's going on?

Edit: Checked the demo, where it works well, and I think I found dependence. It works, when it looks like this:
(http://i.imgur.com/qkZjU.png)
So it must be in subchoices. Weird for me, but could you please check this?

I do not seem to have this issue when its not a sub menu....
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 05, 2011, 09:13:49 PM
Neither do I.

Anyway, hopefully I will get around to these bugs at Christmas break. Fizzly, could you please recreate your error in a new project and share it with me?

@Adrien. I know you've mentioned quite a few and thank you for reporting them. I am sorry it has taken so long to get around to fixing them. If it's not too much trouble, could you reply and quote all of the bugs you've found in a single post. I understand that would be a hassle and if you don't want to, then I will go through and hopefully collect them all. I just don't want to miss any and I would appreciate if you did that for me.
Title: Re: Advanced Text System 3.0c
Post by: Adrien on December 05, 2011, 09:29:28 PM
Bug 001: - Verified by MA

Quote
I may have found something but I cannot be sure as replication is extremely hard to do - its not a rare occurrence, and its not a script incompatibility. But when I try to replicate it its odd.

The window size is as follows: 308x78 (WxH) the text lines max is set to two both in the script config and in the script you use in the event box to set up a talking npc.

paragraph formatting is on.


Sometimes, if I have more then 2 lines of text, even if i dont, the words get cut off.

"Sally mary had a log, dog on a frog" will some times be "Sally mary had a log, dog on a fr"

I say sometimes because usually talking to the again fixes this issue and the text aligns fine. Is this my issue, or your issue? Again replicating this is really hard as it doesn't ALWAYS happen while sometimes it does

Bug 002:

Quote
Text bubbles, speach bubbles that sit above a NPC's head should FOLLOW said NPC no matter if that NPC is static or moving about. Some characters (NPC's) walk about as they talk - this speech bubble should follow that character.

Bug 003:

Quote
Based on the size of the text window - see Bug 001 - the choices such as a,b,c and d all spear in the same window as the text. How ever if you choose choice a and are presented with yet more choices those choices appear in a window at the bottom of the screen instead of the same text window the original choices were displayed in. - this has not been tested if said user choices Choice A and then  the NPC talks and then there are more choices. it has only been tested with said user choosing choice A and then there are immediately more choices.

Bug 004:

Quote
\s[6]Some Text\s[0] some more text. - the following you just saw should wait 6 frames before drawing each letter of the words "Some text" then reset to normal speed for writing the words  "some more text" How ever this is not the case. what happens is that the whole series of words - some text. some more text. take 6 frames to render each letter. Now maybe I am using this wrong but if not then this is a bug.

Note: Let it be known that Bug 001 is very tricky to replicate as it DOESN'T always happen. Bug 001 was NOT fixed by upgrading paragraph formatted from 1.1 to 2.0
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 08, 2011, 02:02:56 AM
With respect to 4, that's not a bug, just poor design. That code simply adds to and subtracts from the current speed. So, instead of:

\s[6]Some Text\s[0]

It should be:

\s[6]Some Text\s[-6]

Or:

\s[6]Some Text\s[=0]
Title: Re: Advanced Text System 3.0c
Post by: Adrien on December 08, 2011, 02:08:21 AM
can you fix it or make it more clear in the documentation so that its \s[6]bla\s[0]?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 08, 2011, 03:03:31 AM
Well, no, I can't really fix it generally in the VX version. While I do agree it was a poor design choice, the price to change it would be a little steep since, for everyone who was using them correctly, it would force a choice between the current version with all its bugs, or getting the new version and having to go through every single one of their messages to check for where they used it and to change it to whatever new scheme I choose. The benefit of having one small feature slightly more intuitive is outweighed by that cost.

However, if you want to change it for your individual project, you can do the following (I did not test this, but it should work):

1. Go to around line 1144, where you will see:

Code: [Select]
    text.gsub! (/\\</)                  { "\x08<1>" }    # Message speed + 1
    text.gsub! (/\\[Ss]\[(=?-?\d+)\]/i) { "\x08<#{$1}>" } # Message speed + x

Change it to:

Code: [Select]
    text.gsub! (/\\</)                  { "\x08<+1>" }    # Message speed + 1
    text.gsub! (/\\[Ss]\[([\+-]?\d+)\]/i) { "\x08<#{$1}>" } # Message speed + x

2. Go to around line 3429, where you will see this:

Code: [Select]
    when "\x08"                       # Speed Change
      @text.sub!(/<(=?-?\d+)>/, "")
      s = $1.to_s
      s.sub! (/(=)/, "")
      if $1.nil?
        $game_message.message_speed = [$game_message.message_speed + s.to_i, -1].max
      else
        $game_message.message_speed = [s.to_i, -1].max
      end

Change it to:

Code: [Select]
    when "\x08"                       # Speed Change
      @text.sub!(/<([\+-]?\d+)>/, "")
      s = $1.to_s
      s.sub! (/([\+-])/, "")
      if $1.nil?
        $game_message.message_speed = [s.to_i, -1].max
      else
        $game_message.message_speed = [$game_message.message_speed + s.to_i, -1].max
      end

What that would do is make it so \s[a] directly sets it to a, while \s[-a] subtracts a from the number of frames it would wait, and \s[+a] adds a to the number of frames. The disadvantage is you will no longer be able to directly set it to -1 (instant), so if you wanted that, you would have to do \s[0]\>

Keep in mind that once I release the bug fixed version, you will need to change this again.


In terms of the current documentation, it is:

Code: [Select]
# \S[x]  - Change the speed the text draws by adding x to the current time
#         between drawing letters. Thus, \s[2] is the equivalent of \<\< and
#         \s[-3] is the equivalent of \>\>\>. You can also directly set the
#         speed by putting an equal sign, so \s[=0] would set the time to one
#         frame between drawing letters, and \s[=-1] would set it to instant.

How would you suggest I make it clearer?
Title: Re: Advanced Text System 3.0c
Post by: Adrien on December 08, 2011, 03:18:27 AM
Sorry I didn't see the documentation >_>. What you could do is make it backwards compatible so make the new way s[6]bla\s[0] the standard way but still support those using this way...Kind of like jquery how they add and take away features but also make things backwards compatible. Just a thought.
Title: Re: Advanced Text System 3.0c
Post by: Croogix on December 14, 2011, 01:50:21 AM
OK, I've been using this script mostly just for the end credits of my game (scrolling text, easy centre text commands along with text effects, etc.), but getting back to the REST of the game, I find that I no longer want scrolling text. So I turned the feature off... made sure that the appending feature was off so that similar text boxes wouldn't be lumped into one, etc. What happens? All 8 faces of a faceset appear in the text box instead of 1. Like, I can get a face under the "Monster" heading to appear normally (just one face, not all 8 Monster faces), but when I use an imported faceset (e.g. $nathanface, attempt to use image 0 from the faceset), all 8 show up (0,1,2,3, then 4,5,6,7 underneath the first four). I KNOW that this script is the cause of the problem since it was working fine before I turned off the scrolling and append functions. Do I HAVE to have scrolling text and append on in order for facesets to display properly? Cause that kinda bugs me... I like having chopped up text sometimes. :/

Thanks in advance to anyone who can help resolve the problem...  :)
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 14, 2011, 02:55:33 AM
No, but this script has a feature that allows you to use single face graphics if you name it with an $ at the front, which is what you are doing. Just rename the file and take out the $
Title: Re: Advanced Text System 3.0c
Post by: Croogix on December 14, 2011, 04:56:30 AM
Hey it worked! Thanks so much, I guess after I installed the script it began reading it as a single face... I actually wonder how the program didn't do that before, since it should have, but oh well, derp I guess. :P

Thanks again! And thanks for the script too, my credits are looking great  ;)
Title: Re: Advanced Text System 3.0c
Post by: rofl1337 on December 19, 2011, 03:42:33 PM
This does not create a choice window, but a regular box of choices. Am I doing something wrong?

(http://s7.directupload.net/images/111219/pmdnxr5u.png) (http://www.directupload.net)
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on December 19, 2011, 05:29:13 PM
Err, lose the plural.

:choice_window, not :choice_windows
Title: Re: Advanced Text System 3.0c
Post by: rofl1337 on December 20, 2011, 10:19:15 PM
I have tried capitalizing, losing the ":", and changing between plural and singular. Nothing, but changing the default option, has allowed me to bring up a choice window.

This doesn't work either.
(http://s7.directupload.net/images/111220/q73iyrjx.png) (http://www.directupload.net)

Sincerely
Title: Re: Advanced Text System 3.0c
Post by: Aurelia on December 24, 2011, 03:09:25 AM
Hi, can anyone help me with this?
As you can see, this is how normal message with Dim background look:
(http://i192.photobucket.com/albums/z113/rain_and_a_gentle_love/Blog/position1.png)
However, when I change the Message_Width in the script to a number smaller than 544, the text display with dim background looks something like this
(http://i192.photobucket.com/albums/z113/rain_and_a_gentle_love/Blog/position2.png)
Which, is a pain to the eyes.


So, is there anyway to keep the Message_width at a smaller number, but not altering the size of the Dim Background? The text can still display at the position it is supposed to be when you shrink the message width, something like this.
(http://i192.photobucket.com/albums/z113/rain_and_a_gentle_love/Blog/position3.png)


If you can help me with it, I would be very grateful. Thank you very much/
Title: Re: Advanced Text System 3.0c
Post by: Adrien on December 28, 2011, 12:37:16 AM
I dont think so, how ever MA may be able to shed light on that.
Title: Re: Advanced Text System 3.0c
Post by: Aurelia on December 29, 2011, 02:43:08 AM
Actually what I tried to achieve is what would happen if you adjust message_width in Window_Message instead of the script.
But either way, I guess I would just keep using dimmed picture as background and display text without window OvO
Title: Re: Advanced Text System 3.0c
Post by: nemrog on January 10, 2012, 11:58:49 AM
Hello when I use:

ats_all (:fit_window_to_text, true)
ats_all (:scroll_speed, 3)
ats_all (:scroll_autopause, true)

That I took from the Opening Part of the Demo [cause it had Text that fit inside the Ginormous Window]. But it constantly will either cut of Text [even if only "Do you want to Fish here?"], or will make the VX Bank Event System go completely Ape5h17. And by that I mean the other problem where It will enlarge the Window by a ton, and Hide the words to everything. Or make the Actor face in the Game go into hiding.

Cause all I want honestly is to type what I want and have it fit in the window. Regardless of how much I type. Or what's on Screen. Oh and how do I add the Portraits of a Character up properly?

Pics in Order:

VX Bank System [and yes 99% 0f all my heads get chopped off] [1 and 2]

Here's what I mean by Ape 5h17 [3]

This is it acting Normal [4]

This is what Number 3 was supposed to look like I think [It usually goes to normal after you make a choice. Or Re-Read something] [5]

----------------

This is supposed to be a small Intro to Maps [Partially Cut off Face] [6]

This is Again Ape 5h17 Screen where my Face and most of the words get Thrown off. Even though I have fit_window_to_text. [7]

This what I mean by only a short sentence is even affected [8].

----------------

Can I get help please? Cause honestly I love the idea of it and what it shows on the Demo. but I'm getting Messed up Everything when I use it.
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 11, 2012, 02:11:53 AM
OK, well :fit_window_to_text is not the option you seem to want. What that option means is that if you have only short lines, the window will shrink to accomodate. In other words, it changes the window size.

The option it sounds like you are looking for is :paragraph_format, which will fit the text to the window - ie. if the text goes over, it will go to the next line.

For faces, you just need to change the :face_width and :face_height options. If you change them both to 0, then it will always show the whole face. Otherwise, it will cut the image out of the centre of the picture to the values specified.

Have you played through the demo? The guy with purple hair talks about faces, and the guy with red hair explains paragraph formatting.
Title: Re: Advanced Text System 3.0c
Post by: nemrog on January 13, 2012, 04:35:58 AM
I have the VX BAnking Evented System from the Site with ATS 3.0 Attached. With the edits [true / false / numbers changed.] That I've done. When you go to the banker and he shows his List of things [Account Details, Deposit, Withdrawl, etc.] Shows the problem. Where the face and window magically expand [or in my game sometimes shrink. Wich I believe now to be fit_text_to_widow] and not show a face / chunks of entire text.

As for Face Height and Width being 0 to show everything regardless of size. Thank you. That will be a godsend for personalizing NPC's and showing Emotions.

Hopefully the Window problem as demonstrated by the Banking Event + ATS 3 is an easy fix. Thank you very much for your time and your wonderful scripts.
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on January 22, 2012, 09:00:21 PM
MA,

I ran across this error today while playtesting my project:

I have just installed this little snippet, written by GuyvnerBane, which is supposed to play a SE when a critcal strike takes place.  The error happens only when this script is active.

Code: [Select]
class Scene_Battle < Scene_Base
def display_critical(target, obj = nil)
    if target.critical
      if target.actor?
        text = "\c[5]A DEVASTATING STRIKE!\c[0]"
        Audio.se_play('AUDIO/SE/IMPACT13', 80, 50)
      else
        text = "\c[7]A CRITICAL IMPACT!\c[0]"
        Audio.se_play('AUDIO/SE/IMPACT13', 80, 50)
      end
      @message_window.add_instant_text(text)
      wait(5)
    end
  end
 
end

Here's the part of the script which has the error in your script:

   
Code: [Select]
when "\x1b"                        # Play SE
      @text.sub! (/<(.+?),([MS]E)>/, "")
      $game_message.play_se ((RPG.const_get ($2.to_s)).new ($1.to_s))
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on January 22, 2012, 10:59:18 PM
Well, you have to use \\ (not just \) when message codes are set inside double quotations " ".

My guess is that if you change:

Code: [Select]
        text = "\c[5]A DEVASTATING STRIKE!\c[0]"

to:

Code: [Select]
        text = "\\c[5]A DEVASTATING STRIKE!\\c[0]"

in both places that line appears, then that error will go away.
Title: Re: Advanced Text System 3.0c
Post by: IXFURU on January 23, 2012, 03:31:09 AM
Okay MA.  Thanks for the help.  It no longer causes the error at the point of attack.  Rather, it now causes one at the end of the battle,(This time in one of the default scripts (Message_Window)).

I know this means that it's no longer an error with your script.  I appreciate it.
Title: Re: Advanced Text System 3.0c
Post by: Ramia73 on March 26, 2012, 09:01:30 AM
I wanted to add a small feature for myself that can take face_name and face_index as a parameter to show a other faces in the text window and I got that working fine.

Then I started to add feature that could check the current event page if there is suitable information which face to draw.


Nevermind, got it work. But I found a feature. If I draw a NameBox before Face (ie: "\nb[\n[1]]\af[1]Hello!"),
the textwindow doesn't care about the face, but draws the text under it. How do I can fix it?

It's not the big problem, just draw the face before NameBox, but just in case that forgot which one was right order...
Title: Re: Advanced Text System 3.0c
Post by: unknownuser on September 06, 2012, 08:18:34 AM
when I copy the script and add it in the script windwo above main but below materials like you said and then try and play test my game I get this error message, I am using RPGVX ace, I have not even modified or added any events that use choice boxes

(http://img515.imageshack.us/img515/6760/brokenscript.png)
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on September 06, 2012, 10:37:41 AM
This script is for RMVX, not RMVX Ace.

I have written two scripts so far that simulate some of the features in this script, with more planned. You can find them here: http://rmrk.net/index.php/topic,44525.0.html
Title: Re: Advanced Text System 3.0c
Post by: Kaimi on February 21, 2013, 09:21:21 AM
I was customising your script to my liking and achieved the following results:
(http://fc09.deviantart.net/fs70/f/2013/052/8/6/mockup_for_a_request_by_fanffx_2-d5vov7f.png)
The point is that the script now mysteriously 'eats' some of the space at the beginning of the line and I'm not actually sure where in the script should I use (The "Tester" should say "This is an example text.", but the letter "T" mysteriously disappeared). I was looking for some kind of message_offset setting to move the text a bit to the right, but I have not seen anything like that. Could you help me, please? If you need my current setup, then please let me know.

Edit: Actually, I changed FACE_Z parameter to -1 and the display now works correctly. Case closed.
Title: Re: Advanced Text System 3.0c
Post by: ShinGamix on October 31, 2013, 03:02:00 AM
Is there an ace version of this planned?
Title: Re: Advanced Text System 3.0c
Post by: digdarkevil on June 13, 2014, 10:33:35 PM
Hey I have been using this script for months and I've realised something weird that I don't know how to fix..
I wanted to change my game's font, but I'm using the \nb command in my texts and when I change my game font the namebox window won't fix the text..  :( *see attached*
I also attached my 'main' script since it's where I added the 'change font' lines..
I just wonder if it's fixeable, if it's not then it's not too bad I'll just write the names directly in the text, but I kinda like tha nameboxes  :-\
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 13, 2014, 11:02:32 PM
Sorry, the problem is that the method for calculating text_size doesn't always work for some fonts.

I am not really supporting this script at the moment so I will likely not release a fix anytime soon, but one way to get around that problem is to just add a few spaces after the name. So, instead of \nb{Magma}, use \nb{Magma   }

Also, sorry for missing your post ShinGamix, but some of its features are incorporated into my ATS Series (http://rmrk.net/index.php/topic,44525.0.html) for RMVX Ace.
Title: Re: Advanced Text System 3.0c
Post by: digdarkevil on June 13, 2014, 11:17:34 PM
Oh thanks!  ;D
oh yeah and if I want to change the font in each texts do I really have to use a command in each text boxes ?
Title: Re: Advanced Text System 3.0c
Post by: modern algebra on June 14, 2014, 04:21:17 AM
Umm, no I don't think so. I don't really remember this script that well, but just find the following line in the script and change it there:

Code: [Select]
  MESSAGE_FONTNAME = ["Verdana", "Arial", "Courier New"]

Also, if you want to change it in-game, you can just use the following code in a script command:

Code: [Select]
fn = []
fn.push("Verdana")
fn.push("Times New Roman")
# etc. for each font name, with the first ones being first in priority and the others only being used if the player does not have the first fonts installed
ats_all(:message_fontname, fn)
Title: Re: Advanced Text System 3.0c
Post by: digdarkevil on June 15, 2014, 02:49:41 PM
Omg this is so much more easier than using \fn and \fs in each textboxes thank you so much!  ;D
Title: Re: Advanced Text System 3.0c
Post by: danielson on December 13, 2014, 10:21:16 PM
Nevermind..... I changed it by enabling the appending, it looks good with that too. Anyway, this script is very useful!
Title: Re: Advanced Text System 3.0c
Post by: digdarkevil on March 12, 2015, 10:42:47 PM
Hey I wonder.. is it possible to animate a large portrait faceset like we can with a normal faceset? also, is there a way to play another face animation when the text is done displaying? something like an eye animation.. I'm trying to do something that looks like Kingdom hearts chains of memories on GBA: https://www.youtube.com/watch?v=DoZsx3Iw2Qs
If it Is possible, it would be very helpful!
thanks in advance  :)
Title: Re: Advanced Text System 3.0c
Post by: Nessiah on September 09, 2015, 10:23:35 AM
Does anyone still have these? for some reason the attachments are corrupted :(