Add Fade In effect to Yanfly's Event Window script

Argami

Veteran
Veteran
Joined
Jun 22, 2012
Messages
130
Reaction score
10
First Language
Spanish
Primarily Uses
Hello!

I'm using Yanfly's Event Window script and I was wondering if it's possible to add a fade in effect when the item notification appears. The script have already a fade out effect, I was looking for the same effect but when the text appears.

Here's the script:

#==============================================================================



# ▼ Yanfly Engine Ace - Event Window v1.01

# -- Last Updated: 2011.12.27

# -- Level: Easy, Normal

# -- Requires: n/a



#==============================================================================

 

$imported = {} if $imported.nil?

$imported["YEA-EventWindow"] = true

 

#==============================================================================

# ▼ Updates

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# 2011.12.27 - Bug Fixed: Used the wrong script to hide event window.

# 2011.12.26 - Started Script and Finished.



#==============================================================================

# ▼ Introduction

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# The Event Window is a new feature added through this script that appears in

# the lower left corner of the screen. Whenever the player gains or loses gold

# and items, the Event Window is updated to show the changes. In addition to

# showing item gains and losses, you may even add in your own text to update

# through a Script Call.



#==============================================================================

# ▼ Instructions

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# To install this script, open up your script editor and copy/paste this script

# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.



# -----------------------------------------------------------------------------

# Script Calls - These commands are used with script calls.

# -----------------------------------------------------------------------------

# event_window_add_text(string)

# This inserts "string" text into the Event Window. Use \n to designate

# linebreaks in the string. If you wish to use text codes, write them in the

# strings as \\n[2] or \\c[3] to make them work properly.



# event_window_clear_text

# This causes the Event Window to clear all of the stored text. You can choose

# whether or not to clear the stored Event Window text every time the player

# enters a new map.



#==============================================================================

# ▼ Compatibility

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that

# it will run with RPG Maker VX without adjusting.



#==============================================================================

 

module YEA

  module EVENT_WINDOW

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - Event Window Switch -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # This is the switch used for hiding the event window. When this switch is

    # ON, the event window will be hidden from view. If it is OFF, the event

    # window will maintain normal visibility.

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    HIDE_SWITCH = 24       # If switch is ON, event window will not appear.

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - General Event Window Settings -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # This section adjusts the event window. These settings adjust the overall

    # appearance of the event window from the width to the number of lines

    # shown and the window fade rate.

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    NEW_MAP_CLEAR = true    # Clear text when entering a new map?

    WINDOW_WIDTH  = 280     # Event Window width.

    VISIBLE_TIME  = 120     # Frames the window is visible before fading.

    MAX_LINES     = 4       # Maximum number of lines shown.

    WINDOW_FADE   = 8       # Fade rate for the Event Window.

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - Event Window Text Settings -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # This section adjusts the text that appears in the event window. The text

    # that appears when an item is found and the text that appears when an item

    # is lost will always appear before the item found. If there is more than

    # one item found, the amount text will be added on after followed by the

    # closing text. When gold is found, no icons will be used.

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    HEADER_TEXT = "\e}⋅ "                # Text that's always used at the head.

    FOUND_TEXT  = "\ec[6]Found\ec[0] "   # Text used when an item is found.

    LOST_TEXT   = "\ec[4]Lost\ec[0] "    # Text used when an item is lost.

    AMOUNT_TEXT = "×%s"                  # Text used to display an amount.

    CLOSER_TEXT = " ⋅"                   # Text that's always used at the end.

    

  end # EVENT_WINDOW

end # YEA

 

#==============================================================================

# ▼ Editting anything past this point may potentially result in causing

# computer damage, incontinence, explosion of user's head, coma, death, and/or

# halitosis so edit at your own risk.

#==============================================================================

 

#==============================================================================

# ■ Switch

#==============================================================================

 

module Switch

  

  #--------------------------------------------------------------------------

  # self.hide_event_window

  #--------------------------------------------------------------------------

  def self.hide_event_window

    return false if YEA::EVENT_WINDOW::HIDE_SWITCH <= 0

    return $game_switches[YEA::EVENT_WINDOW::HIDE_SWITCH]

  end

    

end # Switch

 

#==============================================================================

# ■ Numeric

#==============================================================================

 

class Numeric

  

  #--------------------------------------------------------------------------

  # new method: group_digits

  #--------------------------------------------------------------------------

  unless $imported["YEA-CoreEngine"]

  def group; return self.to_s; end

  end # $imported["YEA-CoreEngine"]

    

end # Numeric

 

#==============================================================================

# ■ Game_Temp

#==============================================================================

 

class Game_Temp

  

  #--------------------------------------------------------------------------

  # public instance variables

  #--------------------------------------------------------------------------

  attr_accessor :event_window_data

  

  #--------------------------------------------------------------------------

  # new method: add_event_window_data

  #--------------------------------------------------------------------------

  def add_event_window_data(text)

    @event_window_data = [] if @event_window_data.nil?

    return if text == ""

    @event_window_data.push(text)

  end

  

  #--------------------------------------------------------------------------

  # new method: clear_event_window_data

  #--------------------------------------------------------------------------

  def clear_event_window_data

    @event_window_data = []

  end

  

end # Game_Temp

 

#==============================================================================

# ■ Game_Interpreter

#==============================================================================

 

class Game_Interpreter

  

  #--------------------------------------------------------------------------

  # alias method: command_126

  #--------------------------------------------------------------------------

  alias game_interpreter_command_125_ew command_125

  def command_125

    game_interpreter_command_125_ew

    value = operate_value(@params[0], @params[1], @params[2])

    event_window_make_gold_text(value)

  end

  

  #--------------------------------------------------------------------------

  # alias method: command_126

  #--------------------------------------------------------------------------

  alias game_interpreter_command_126_ew command_126

  def command_126

    game_interpreter_command_126_ew

    value = operate_value(@params[1], @params[2], @params[3])

    event_window_make_item_text($data_items[@params[0]], value)

  end

  

  #--------------------------------------------------------------------------

  # alias method: command_127

  #--------------------------------------------------------------------------

  alias game_interpreter_command_127_ew command_127

  def command_127

    game_interpreter_command_127_ew

    value = operate_value(@params[1], @params[2], @params[3])

    event_window_make_item_text($data_weapons[@params[0]], value)

  end

  

  #--------------------------------------------------------------------------

  # alias method: command_128

  #--------------------------------------------------------------------------

  alias game_interpreter_command_128_ew command_128

  def command_128

    game_interpreter_command_128_ew

    value = operate_value(@params[1], @params[2], @params[3])

    event_window_make_item_text($data_armors[@params[0]], value)

  end

  

  #--------------------------------------------------------------------------

  # new method: event_window_make_gold_text

  #--------------------------------------------------------------------------

  def event_window_make_gold_text(value)

    return unless SceneManager.scene_is?(Scene_Map)

    return if Switch.hide_event_window

    if value > 0

      text = YEA::EVENT_WINDOW::FOUND_TEXT

    elsif value < 0

      text = YEA::EVENT_WINDOW::LOST_TEXT

    else; return

    end

    text += sprintf("%s%s", value.abs.group, Vocab::currency_unit)

    event_window_add_text(text)

  end

  

  #--------------------------------------------------------------------------

  # new method: event_window_make_item_text

  #--------------------------------------------------------------------------

  def event_window_make_item_text(item, value)

    return unless SceneManager.scene_is?(Scene_Map)

    return if Switch.hide_event_window

    if value > 0

      text = YEA::EVENT_WINDOW::FOUND_TEXT

    elsif value < 0

      text = YEA::EVENT_WINDOW::LOST_TEXT

    else; return

    end

    text += sprintf("\ei[%d]%s", item.icon_index, item.name)

    if value.abs > 1

      fmt = YEA::EVENT_WINDOW::AMOUNT_TEXT

      text += sprintf(fmt, value.abs.group)

    end

    event_window_add_text(text)

  end

  

  #--------------------------------------------------------------------------

  # new method: event_window_add_text

  #--------------------------------------------------------------------------

  def event_window_add_text(text)

    return unless SceneManager.scene_is?(Scene_Map)

    return if Switch.hide_event_window

    text = YEA::EVENT_WINDOW::HEADER_TEXT + text

    text += YEA::EVENT_WINDOW::CLOSER_TEXT

    SceneManager.scene.event_window_add_text(text)

  end

  

  #--------------------------------------------------------------------------

  # new method: event_window_clear_text

  #--------------------------------------------------------------------------

  def event_window_clear_text

    $game_temp.clear_event_window_data

  end

  

end # Game_Interpreter

 

#==============================================================================

# ■ Window_EventWindow

#==============================================================================

 

class Window_EventWindow < Window_Selectable

  

  #--------------------------------------------------------------------------

  # initialize

  #--------------------------------------------------------------------------

  def initialize

    dw = YEA::EVENT_WINDOW::WINDOW_WIDTH

    super(0, 0, dw, fitting_height(YEA::EVENT_WINDOW::MAX_LINES))

    self.x -= 12

    self.opacity = 0

    self.contents_opacity = 0

    @visible_counter = 0

    modify_skin

    deactivate

  end

  

  #--------------------------------------------------------------------------

  # modify_skin

  #--------------------------------------------------------------------------

  def modify_skin

    dup_skin = self.windowskin.dup

    dup_skin.clear_rect(64,  0, 64, 64)

    dup_skin.clear_rect(64, 64, 32, 32)

    self.windowskin = dup_skin

  end

  

  #--------------------------------------------------------------------------

  # item_max

  #--------------------------------------------------------------------------

  def item_max

    return $game_temp.event_window_data ? $game_temp.event_window_data.size : 1

  end

  

  #--------------------------------------------------------------------------

  # update

  #--------------------------------------------------------------------------

  def update

    super

    self.visible = show_window?

    update_visible_counter

    update_contents_opacity

  end

  

  #--------------------------------------------------------------------------

  # show_window?

  #--------------------------------------------------------------------------

  def show_window?

    return false if $game_message.visible

    return true

  end

  

  #--------------------------------------------------------------------------

  # update_visible_counter

  #--------------------------------------------------------------------------

  def update_visible_counter

    return if @visible_counter <= 0

    @visible_counter -= 1

  end

  

  #--------------------------------------------------------------------------

  # update_contents_opacity

  #--------------------------------------------------------------------------

  def update_contents_opacity

    return if @visible_counter > 0

    return if self.contents_opacity <= 0

    self.contents_opacity -= YEA::EVENT_WINDOW::WINDOW_FADE

  end

  

  #--------------------------------------------------------------------------

  # instant_hide

  #--------------------------------------------------------------------------

  def instant_hide

    @visible_counter = 0

    self.contents_opacity = 0

  end

  

  #--------------------------------------------------------------------------

  # add_text

  #--------------------------------------------------------------------------

  def add_text(text)

    $game_temp.add_event_window_data(text)

    refresh

    self.contents_opacity = 255

    @visible_counter = YEA::EVENT_WINDOW::VISIBLE_TIME

    change_y_position

    select(item_max - 1)

  end

  

  #--------------------------------------------------------------------------

  # change_y_position

  #--------------------------------------------------------------------------

  def change_y_position

    maximum = [item_max, YEA::EVENT_WINDOW::MAX_LINES].min

    self.y = Graphics.height - fitting_height(maximum) - 12

  end

  

  #--------------------------------------------------------------------------

  # refresh

  #--------------------------------------------------------------------------

  def refresh

    create_contents

    draw_all_items

  end

  

  #--------------------------------------------------------------------------

  # draw_item

  #--------------------------------------------------------------------------

  def draw_item(index)

    $game_temp.clear_event_window_data if $game_temp.event_window_data.nil?

    item = $game_temp.event_window_data[index]

    return if item.nil?

    rect = item_rect(index)

    draw_background(rect)

    rect.x += 4

    rect.width -= 8

    draw_text_ex(rect.x, rect.y, item)

  end

  

  #--------------------------------------------------------------------------

  # draw_background

  #--------------------------------------------------------------------------

  def draw_background(rect)

    back_colour1 = Color.new(0, 0, 0, 96)

    back_colour2 = Color.new(0, 0, 0, 0)

    contents.gradient_fill_rect(rect, back_colour1, back_colour2)

  end

  

end # Window_EventWindow

 

#==============================================================================

# ■ Scene_Map

#==============================================================================

 

class Scene_Map < Scene_Base

  

  #--------------------------------------------------------------------------

  # alias method: create_all_windows

  #--------------------------------------------------------------------------

  alias scene_map_create_all_windows_event_window create_all_windows

  def create_all_windows

    scene_map_create_all_windows_event_window

    create_event_window

  end

  

  #--------------------------------------------------------------------------

  # new method: create_event_window

  #--------------------------------------------------------------------------

  def create_event_window

    @event_window = Window_EventWindow.new

  end

  

  #--------------------------------------------------------------------------

  # new method: event_window_add_text

  #--------------------------------------------------------------------------

  def event_window_add_text(text)

    @event_window.add_text(text)

  end

  

  #--------------------------------------------------------------------------

  # alias method: post_transfer

  #--------------------------------------------------------------------------

  alias scene_map_post_transfer_ew post_transfer

  def post_transfer

    $game_temp.clear_event_window_data if YEA::EVENT_WINDOW::NEW_MAP_CLEAR

    @event_window.instant_hide

    scene_map_post_transfer_ew

  end

  

end # Scene_Map

 

#==============================================================================



# ▼ End of File



#==============================================================================
And here's a link to Yanfly's post:
https://yanflychannel.wordpress.com/rmvxa/field-scripts/event-window/

Thanks in advance! :)
 
Last edited by a moderator:

Argami

Veteran
Veteran
Joined
Jun 22, 2012
Messages
130
Reaction score
10
First Language
Spanish
Primarily Uses
Little bump!
 

Argami

Veteran
Veteran
Joined
Jun 22, 2012
Messages
130
Reaction score
10
First Language
Spanish
Primarily Uses
Ups! Wild "Bump" appeared!
 

Argami

Veteran
Veteran
Joined
Jun 22, 2012
Messages
130
Reaction score
10
First Language
Spanish
Primarily Uses
-Hello Mr.Bump, how are you?

-Well... Little sad because nobody answers my post.

-Hope someone can help you soon.

​-BUMP!
 

Argami

Veteran
Veteran
Joined
Jun 22, 2012
Messages
130
Reaction score
10
First Language
Spanish
Primarily Uses
The quest of Mr.Bump continues!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
The biggest debate we need to complete on which is better, Waffles or Pancakes?
rux
How is it going? :D
Day 9 of giveaways! 8 prizes today :D

Forum statistics

Threads
106,051
Messages
1,018,549
Members
137,837
Latest member
Dabi
Top