Main Menu
  • Welcome to The RPG Maker Resource Kit.

Advanced Text System 3.0c

Started by modern algebra, March 18, 2008, 09:32:30 AM

0 Members and 5 Guests are viewing this topic.

modern algebra

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:


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * 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:


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * 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:


  def close
    super
    # Dispose of faces
    @face_window.clear
    # Dispose of name window
    @name_window.dispose unless @name_window == nil
    @name_window = nil
  end


Aindra

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.

modern algebra

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.

Aindra

Yes, it is only with the modification. So don't worry about it. :)

noian

#104
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
>Current Project: Time Killer 2<
Description: Random, plotless project designed to kill spare time. No storyline, just a building to explore.

Status: Fascinated by how appalling the default database is balance wise.

modern algebra

I will look into it as soon as I can.

Grafikal

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.

modern algebra

Do you have WinRAR? If not, maybe the extraction program you are using is incompatible.

Countdown

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][/spoiler]

modern algebra

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.

Countdown

Here's a little bit of what is going on inside my little not-working-thing.

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.

Countdown

Scratch that, it just worked!  Thank you so much for the help.

Rethalgamon

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.

modern algebra

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.

Rethalgamon

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.

modern algebra

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.

SouthWall

So, uh, any news on the choice bug yet?  :-[

modern algebra

Sorry, I forgot about it. Remind me after July 20 and my schedule should be free to fix that. Sorry for the neglect.

joy

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
  • in the instance, but it also makes the next event-called text to be white. It can all be remedied with a \c
  • , 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
  • .

    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:


    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.

modern algebra

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


#==============================================================================
#  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:

    contents.font.color = normal_color

so it looks like this:


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * 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

joy

Works like a charm man. Thanks so much!

sanb2036

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:

Raukue

#122
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?

modern algebra

#123
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:


   # 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:


   # 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 InstructionsOne 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.

Raukue

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.