Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

 
Reply to this topicStart new topic
> Munkis' Message Pop-up
munkis
post Jan 16 2012, 06:54 AM
Post #1


Woah, dude...
Group Icon

Group: Revolutionary
Posts: 197
Type: Writer
RM Skill: Intermediate




Munkis' Message Pop-up

Version: 1.1
Author: munkis
Release Date: 01/16/2012


Exclusive Script at RPG RPG Revolution


Introduction
Sorry it took me so long to make an official topic for this script, but there was one really annoying bug I wanted to squish first (and I did with a little help from modern_algebra). This script will be the only supported version.

Features
Basically anything you can think of to do to text can be done with this script, and maybe a few you can't ohmy.gif . Good for when you want to either pop a message telling the player to "Press button now!", or as a map name pop-up, or whatever you can do with it.

Script
Munkis' Message Pop-up
CODE
#------------------------------------------------------------------------------
#  * Munkis' Message pop-up V 1.1
#  * Made by munkis
#   ╔══════════╗
#   ║ FEATURES ║
#   ╚══════════╝
#  * Makes a pop-up message window appear without blocking player movement.
#    Script configuration is handled a little differently; I made all
#    changeable values into required arguments for the script call.  This way
#    you can dynamically change the window, in case you want different looking
#    windows for different events.
#  * You can call this script with:
#
#    ╔═════════════════════════════════════════════════════════════════════════╗
#    ║ $scene.show_message("text", window_x, window_y, window_width,           ║
#    ║ window_height, icon, manual_disable_switch, display_time, "font", size, ║
#    ║ bold, italic, shadow, align, color, "sound", opacity)                   ║
#    ╚═════════════════════════════════════════════════════════════════════════╝
#
#    "text":  The text to be displayed.
#    window_x: The X-coordinate of the window.
#    window_y:  The Y-coordinate of the window.
#    window_width: The wdth of the window.
#    window_height:  The height of the window.
#    icon:  The ID of the icon to be displayed.
#    manual_disable_switch:  In-game switch used to manually disable the
#                            message.  Does not disable the button press.
#    display_time:  How long (in frames) to keep the window visible.
#    "font":  The name of the font to use for the message.
#    size:  The size of the text in the message.
#    bold:  Wether or not to make the text bold.  TRUE/FALSE
#    italic:  Wether or not to make the text italic.  TRUE/FALSE
#    shadow:  Wether or not to let the text have shadows.  TRUE/FALSE
#    align:  Alignment of text. 0 = LEFT  1 = CENTER  2 = RIGHT
#    color: Window text color to be used.  Color.new(Red,Green,Blue,Alpha). 0-255
#    "sound":  The name of the SE to be played when the window pops up.  Use nil
#              for no SE.
#    opacity:  The opacity of the window displayed. 0-255
#
#    All you really need to use though is $scene.show_message("text"), the rest
#    of the settings have default values.  You also have the ability to hide the
#    window with Input::X or an in-game switch (directions above).
#
#  * V 1.0: Initial release
#  * V 1.1: Fixed a couple of text alignment bugs.
#------------------------------------------------------------------------------

class Pop_Up_Main < Window_Base
  def initialize
    super(0,((Graphics.height/2)-32),Graphics.width,64)
    self.visible = false
  end
  def show_message(text, window_x = 0, window_y=((Graphics.height/2)-32), window_width = Graphics.width, window_height = 64, icon=0, manual_disable_switch=0, display_time=240, font=Font.default_name, size=Font.default_size, bold=Font.default_bold, italic=Font.default_italic, shadow=Font.default_shadow, align=0, color=Font.default_color, sound=nil, opacity=255)
    @text = text
    @display_time = display_time
    @icon = icon
    @font = font
    @size = size
    @bold = bold
    @italic = italic
    @shadow = shadow
    @align = align
    @color = color
    if window_width > Graphics.width - window_x
      @window_width = Graphics.width - window_x
    else
      @window_width = window_width
    end
    @manual_disable_switch = manual_disable_switch
    Audio.se_play("audio/se/"+sound,100,100) unless sound.nil?
    self.opacity = opacity
    self.visible = true
    self.x = window_x
    self.y = window_y
    if window_width > Graphics.width - window_x
      self.width = Graphics.width - window_x
    else
      self.width = window_width
    end
    if window_height > Graphics.height - window_y
      self.height = Graphics.height - window_y
    else
      self.height = window_height
    end
    create_contents
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.name = @font
    self.contents.font.size = @size
    self.contents.font.bold = @bold
    self.contents.font.italic = @italic
    self.contents.font.shadow = @shadow
    self.contents.font.color = @color
    x = 0
    if @icon != 0
      draw_icon (@icon, x, 0)
      x += @window_width-55
      draw_icon (@icon, x, 0)
      x = 24
    end
    if @align == 1
      if @icon == 0
        self.contents.draw_text(x-15, 0, @window_width, WLH, @text, @align)
      else
        self.contents.draw_text(x-39, 0, @window_width, WLH, @text, @align)
      end
    elsif @align == 2
      if @icon == 0
        self.contents.draw_text(x-31, 0, @window_width, WLH, @text, @align)
      else
        self.contents.draw_text(x-79, 0, @window_width, WLH, @text, @align)
      end
    else
      self.contents.draw_text(x, 0, @window_width, WLH, @text, @align)
    end
    return
  end
  def update
    return unless self.visible
    @display_time -= 1
    if Input.trigger?(Input::X) or $game_switches[@manual_disable_switch] == true
      @display_time = 0
      $game_switches[@manual_disable_switch] = false
    end
    self.visible = (@display_time > 0)
  end
end
class Scene_Map < Scene_Base
  alias munkis_message_start start
  alias munkis_message_update update
  alias munkis_message_terminate terminate
  def start
    munkis_message_start
    @popupmain = Pop_Up_Main.new
  end
  def show_message(*args)
    @popupmain.show_message(*args)
  end
  def update
    munkis_message_update
    @popupmain.update
  end
  def terminate
    munkis_message_terminate
    @popupmain.dispose
    return
  end
end


Customization
Script configuration is handled a little differently; I made all changeable values into required arguments for the script call. This way you can dynamically change the window, in case you want different looking windows for different events.

Compatibility
No currently known issues.

Screenshot


DEMO
Shouldn't be necessary.

Installation
Place in MATERIALS, above MAIN.

FAQ
Q: ZOMG teh scripz doesn't werk!!!
A: First of all, be more specific, Second, all reports typed in chat-speak or 1337-speak will be ignored.

Terms and Conditions
I don't mind if this script is posted or linked on other RMVX sites AS LONG AS YOU GIVE CREDIT!!! Same goes for using this in your project. Contact me if you want to use this in a commercial project.

Credits
Credit goes to me for the script.

This post has been edited by munkis: Jan 17 2012, 07:31 PM


__________________________
Go to the top of the page
 
+Quote Post
   
munkis
post Jan 17 2012, 07:29 PM
Post #2


Woah, dude...
Group Icon

Group: Revolutionary
Posts: 197
Type: Writer
RM Skill: Intermediate




Update: Fixed a few more text alignment bugs.


__________________________
Go to the top of the page
 
+Quote Post
   

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 21st May 2013 - 11:48 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker