Save-Point
Map Credit - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+---- Forum: RPGMaker VX/VXAce (RGSS2/3) Engines (https://www.save-point.org/forum-117.html)
+---- Thread: Map Credit (/thread-2343.html)



Map Credit - woratana - 01-22-2009

Map Credit
Version 1.0
by Woratana
Release Date: 10/05/2008 *Prom Night~*


Introduction
Same as old XP credit script that I have no idea who is originally
scripted that. :P

Anyway, this script has same way to setup the credit, but the different
is CREDIT WILL SHOW IN MAP!!  :D

Why the credit in map is better?
Because you can move event, show picture, do other thing else while
credit text is scrolling. :)

And you can also decorate text in credit the way you like with tag, like
< b > for bold text, or < i > for italic text.

You can set the background image you want to show when credit is
scrolling too~

Features
Version 1.0
- You can use background image
- You can decorate text with special tags
- You can setup default decoration for header text (text that include
<h>) and normal text
- Credit will run in map, so you can use your eventing skill to make
credit scene more interesting. :)


Screenshots
[Image: 2r7pzpx.jpg]


Script
Place it above main
Code:
#===============================================================
# ? [VX] ? Map Credit ? ?
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 09/05/2008
# ? Version: 1.0
#----------------------------------------------------
# ? How to use:
# ** To start Credit, call script:
# $scene.credit.start
#
# ** To Stop and Clear Credit, call script:
# $scene.credit.terminate
#----------------------------------------------------
# ? Special Tags for Decorate Text:
# There are special tags that you can put in text to decorate that line
#
# You can also set default text decoration for all text in:
  #-------------------------------------
  # SETUP HEADER TEXT HERE
  #-------------------------------------
# for Header line (line that has tag <h>)
# &
  #-------------------------------------
  # SETUP CONTENT TEXT HERE
  #-------------------------------------
# for Normal line~
#-----------------------------------------------------
# ? >= Tag List <= ?
# * These tags will only apply to the line it is in~
# * You cannot use opposite tags in same line. (e.g. <b> and </b>)
#
# <b> :Bold Text
# </b> :No Bold Text

# <i> :Italic Text
# </i> :No Italic Text

# <center> :Align text to Center
# <left> :Align text to left
# <right> :Align text to right

# <h> :Make that line become Header line
#===========================================================================

#----------------------------------------
# Map Credit Main Script \('w' )
#----------------------------------------
class Wora_Map_Credit

  BG_Image = 'credit_bg' # Background Image file name, image must be in
folder 'Picture'
  # leave '' for no background
  BG_Image_Opacity = 255 # Background Opacity (0 - 255)

  Text_Begin_y = 416 # Use 0 - 416: Text will start in the screen
  # Use 416+: Text will start below the screen

  Text_Scroll_Speed = 1 # Higher this number = Faster
  Text_Scroll_Delay = 0 # Delay between each text move (0 for no delay)
  Text_Opacity = 220 # Text Opacity
  Text_Blend_Type = 0 # 0: Normal, 1: Add, 2: Subtraction

  Test_Text = 'I' # Text for test height,
  # Change to taller alphabet if height is not right~

#--------------------------
# Start Credit
#--------------------------
Credit= <<_MAP_CREDIT_

<h>Story
Name Here

<h>Graphics
Name Here

<h>Mapping
Name Here

<h>Scripting
Name Here
Name Here

<h>Special Thanks
Name Here
Name Here
Name Here

_MAP_CREDIT_
#--------------------------
# End Credit
#--------------------------
  #-------------------------------------
  # SETUP HEADER TEXT HERE
  #-------------------------------------
  def header_properties(bitmap)
    bitmap.font.name = 'Tahoma' # Text Font
    bitmap.font.color = Color.new(0, 0, 255, 255) # (Red, Green, Blue,
Opacity)
    bitmap.font.size = 30 # Text size
    bitmap.font.bold = true # Bold Text? (true/false)
    bitmap.font.italic = false # Italic Text? (true/false)
    bitmap.font.shadow = true # Shadowed Text? (true/false)
    @text_outline = Color.new(0,0,0) # nil for no outline,
Color.new(r,g,b) for outline
    @text_align = 1 # 0: Left, 1: Center, 2: Right
  end

  #-------------------------------------
  # SETUP CONTENT TEXT HERE
  #-------------------------------------
  def content_properties(bitmap)
    bitmap.font.name = 'Tahoma'
    bitmap.font.color = Color.new(255, 255, 255, 255)
    bitmap.font.size = 22
    bitmap.font.bold = true
    bitmap.font.italic = false
    bitmap.font.shadow = true
    @text_outline = nil
    @text_align = 1
  end
#-----------------------------------------------------------------------
# -END- MAP CREDIT SCRIPT SETUP PART
#===========================================================================

  def initialize
    @started = false
  end

  # Delete credit if credit started
  def terminate
    if @started
      if @bg != nil
        @bg.bitmap.dispose
        @bg.dispose
      end
      @sprite.bitmap.dispose
      @sprite.dispose
      @started = false
    end
  end

  # Start Credit
  def start(text = Credit, bg = BG_Image)
    # Create Background Sprite
    if BG_Image != ''
      @bg = Sprite.new
      @bg.bitmap = Cache.picture(bg)
      @bg.opacity = BG_Image_Opacity
      @bg.z = 10000
    end
    # Create Text Sprite
    @sprite = Sprite.new
    @sprite.x = 0
    @sprite.y = 0
    @sprite.z = 10001
    @sprite.opacity = Text_Opacity
    @sprite.blend_type = Text_Blend_Type
    # Calculate Credit Height
    header_line = 0
    content_line = 0
    height = 0
    text = text.split(/\n/)
    text.each do |i|
      if i.include?('<h>'); header_line += 1
      else; content_line += 1
      end
    end
    @sprite.bitmap = Bitmap.new(1,1)
    # Test Header Properties
    header_properties(@sprite.bitmap)
    header_height = @sprite.bitmap.text_size(Test_Text).height
    height += ( header_line * ( header_height ) )
    # Test Content Properties
    content_properties(@sprite.bitmap)
    content_height = @sprite.bitmap.text_size(Test_Text).height
    height += ( content_line * ( content_height ) )
    @sprite.bitmap.dispose
    # Finished Test, Draw Text
    @sprite.bitmap = Bitmap.new(Graphics.width, Text_Begin_y + height + 32)
    content_x = 0
    content_y = Text_Begin_y
    text.each do |i|
     
      # Determine Special Tags
      if i.include?('<h>')
        i.sub!('<h>', '')
        header_properties(@sprite.bitmap)
        bitmap_height = header_height
      else
        content_properties(@sprite.bitmap)
        bitmap_height = content_height
      end
      # Bold Text
      if i.include?('<b>')
        i.sub!('<b>', ''); @sprite.font.bold = true
      elsif i.include?('</b>')
        i.sub!('</b>', ''); @sprite.font.bold = false
      end
      # Italic Text
      if i.include?('<i>')
        i.sub!('<i>', ''); @sprite.font.italic = true
      elsif i.include?('</i>')
        i.sub!('</i>', ''); @sprite.font.italic = false
      end
      # Align Text
      if i.include?('<center>')
        i.sub!('<center>', ''); @text_align = 1
      elsif i.include?('<left>')
        i.sub!('<left>', ''); @text_align = 0
      elsif i.include?('<right>')
        i.sub!('<right>', ''); @text_align = 2
      end
      if !@text_outline.nil? # Text Outline
        ori_color = @sprite.bitmap.font.color.clone
        @sprite.bitmap.font.color = @text_outline
        @sprite.bitmap.draw_text(content_x-1, content_y,
@sprite.bitmap.width,
bitmap_height, i, @text_align)
        @sprite.bitmap.draw_text(content_x, content_y-1,
@sprite.bitmap.width,
bitmap_height, i, @text_align)
        @sprite.bitmap.draw_text(content_x, content_y+1,
@sprite.bitmap.width,
bitmap_height, i, @text_align)
        @sprite.bitmap.draw_text(content_x+1, content_y,
@sprite.bitmap.width,
bitmap_height, i, @text_align)
        @sprite.bitmap.font.color = ori_color
      end
     
      # Draw Text
      @sprite.bitmap.draw_text(content_x, content_y, @sprite.bitmap.width,
bitmap_height, i, @text_align)
      content_y += bitmap_height
    end
    @delay = 0
    @started = true
  end

  # Update credit if credit started~
  def update
    if @started
      if @delay > 0
        @delay -= 1
        return
      else
        @sprite.oy += Text_Scroll_Speed
        @delay += Text_Scroll_Delay
      end
    end
  end
end

#----------------------------------------
# Plug Credit to Map >_> <_<~
#----------------------------------------
class Scene_Map < Scene_Base
  attr_reader :credit
  alias wor_mapcre_scemap_str start
  alias wor_mapcre_scemap_upd update
  alias wor_mapcre_scemap_ter terminate

  def start
    @credit = Wora_Map_Credit.new # Create Credit
    wor_mapcre_scemap_str
  end

  def update
    @credit.update # Update Credit
    wor_mapcre_scemap_upd
  end

  def terminate
    @credit.terminate # Dispose Credit
    wor_mapcre_scemap_ter
  end
end


Instruction
- Setup credit in the script

- Start credit by call script:
Code:
$scene.credit.start

- Stop and Clear credit by call script:
Code:
$scene.credit.terminate


Author's Notes
Free for use in your work if credit is included.

Please do not redistribute this script without permission. If you want
to post it on any forum, please link to this topic.


Bug Report?
Please give me these informations:
Quote:- What is it says in error window?
- When is it get error? (Right after run game, when you choose
something, etc.)
- What have you changed in setting part?
- Do you have any other scripts running in your game that may crash with
this script?



Map Credit - Sporky - 01-26-2009

I still think this is a fantastic script wora. Surprised more games don't use it :)


Map Credit - woratana - 01-28-2009

Thanks ^^/

I'm glad some people use it though. It's at least better than no one using this script. >_>/