Анимированное название карты (локации)
Страница 1 из 1
Анимированное название карты (локации)
- Код:
=begin =========================================================================
Dekita's v1.7
★ Animatéd Map Namé™ ★
================================================================================
Script Information:
====================
This script creates a highly dynamic and customisable map name "window"
and gives the ability to remove the old (shit) one.
Features :~
Each map can have its own unique map name display features,
such as... Location, Icon, Font, Color, Outline Color , Size,
Effect, Position, Background.
Each Individual letter can also now have its own unique effects, color, size,
ect..
================================================================================
★☆★☆★☆★☆★☆★☆★☆★ TERMS AND CONDITIONS: ☆★☆★☆★☆★☆★☆★☆★☆★☆
================================================================================
1. You must give credit to "Dekita"
2. You are NOT allowed to repost this script.(or modified versions)
3. You are NOT allowed to convert this script.(into other game engines e.g RGSS2)
4. You are NOT allowed to use this script for Commercial games.
5. ENJOY!
"FINE PRINT"
By using this script you hereby agree to the above terms and conditions,
if any violation of the above terms occurs "legal action" may be taken.
Not understanding the above terms and conditions does NOT mean that
they do not apply to you.
If you wish to discuss the terms and conditions in further detail you can
contact me at http://dekitarpg.wordpress.com/ or DekitaRPG@gmail.com
================================================================================
History:
=========
D /M /Y
o6/o2/2o13 - Fixed Bug for BG when Map has no display name,
Added individual letter effects and slide,
Fixed a few typos,
o5/o2/2o13 - Added individual letter color/outline color,
Added individual letter fonts, bold, italic,
o4/o2/2o13 - Added "new-Line Letter",
Added individual letter size,
21/o1/2o13 - Added individual letter position to fix the rpg maker
"irregular letter" bug,(for map name window only obviously)
11/o1/2o13 - increased efficiency,
- added background option,
- fixed bug, (icons not doing name effect properly)
o9/o1/2o13 - added 18 effects,
o8/o1/2o13 - added 8 effects,
fixed bug, (typo)
o6/o1/2o13 - started && finished,
================================================================================
Known Bugs:
============
N/A
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
If a new bug is found please contact me at
http://dekitarpg.wordpress.com/
================================================================================
INSTRUCTIONS:
==============
Place this script UNDER "▼ Materials" and ABOVE "▼ Main" in your script editor.
================================================================================
SCRIPT CALLS:
=============
reset_map_name
^ Does what it says.(and resets the map name display trigger and shows it again)
================================================================================
NOTETAGS: (map noteboxes)
==========
Font_Name_Tags :
<FONT NAME: X>
<FN: X>
replace X with the Font_Name array index.
Font_Size_Tags :
<FONT SIZE: X>
<FS: X>
replace X with the font size.
Font_Bold_Tags :
<FONT BOLD: bool>
<FB: bool>
replace bool with true or false
Font-italic_Tags :
<FONT ITALIC: bool>
<FI: bool>
replace bool with true or false
Font_Color_Tags :
(main color tags)
<FONT COLOR: red, grn, blu, alp>
<FC: red, grn, blu, alp>
(outline color tags)
<FONT OUT COLOR: red, grn, blu, alp>
<FOC: red, grn, blu, alp>
red = the red value of the font
grn = the green value of the font
blu = the blue value of the font
alp = the alpha value of the font
Icon_id_Tags :
<NAME ICON: X>
<ICON: X>
<NI: X>
replace x with the icon id from your iconset
Icon_Position_Tags :
<ICON POS: x, y>
<IP, x, y>
x / y = the screen position.
Icon_Center_Tags :
<ICON CENTER: bool_X, bool_Y>
<ICEN: bool_X, bool_Y>
bool_X / bool_Y should be replaced with true or false e.g <ICEN: true, false>
this would center the icon's x value in the middle but not the y
Icon_Effect_Tags :
<ICON EFFECT: bool>
<IC: bool>
bool = true or false
Map_Name_Effect_Tags :
<NAME EFFECT: id>
<NAME EFF: id>
<NE: id>
id = the effect id for this map.
<NO NAME EFFECT>
<NO NAME EFF>
<NO NE>
makes this map have no name effect
Map_Name_Slide_Tags :
<NAME SLIDE: dist>
<NS DIST: dist>
<NSD: dist>
dist = the distance of the slide, eg. 180
Map_Name_Position_Tags :
<NAME POS: x, y>
<NP: x, y>
x, y = the position of the map name
<NAME CENTER: bool_X, bool_Y>
<NCEN: bool_X, bool_Y>
bool_X / bool_Y should be replaced with true or false e.g <NCEN: true, false>
this would center the name's x value in the middle but not the y
Map_Name_L_S_D_Tags :
<NAME DELAY: val>
<ND: val>
val = the delay value from one letter showing till the next.
BACKGROUND NOTETAGS :
<BACKGROUND: "IMAGE NAME">
<BG: "IMAGE NAME">
These notetags will change the maps background image name,
for use if you want t use a special image for a background box :p
<BGPOS: x, y>
<BGP: x, y>
Background box position.
<SHOW BG: bool>
<SBG: bool>
Do you want to show the background ? bool = true / false
Single Huge Notetag :
Tired of putting loads of little '<' and '>' ? use this notetag .
<MAP NAME>
# -- notes go here
<\MAP NAME>
or
<MNW>
# -- notes go here
<\MNW>
the notes for inside these notetags are the same as above without the '<' and '>'
e.g
<MNW>
FN: X
FS: X
FB: bool
FI: bool
FC: red, grn, blu, alp
FOC: red, grn, blu, alp
NI: X
IP, x, y
ICEN: bool_X, bool_Y
IC: bool
NE: id
NO NE
NSD: dist
NP: x, y
NCEN: bool_X, bool_Y
ND: val
BG: "IMAGENAME"
BGP: x, y
SBG: bool
</MNW>
<LET: id, x, y>
<letter id, x, y>
id = the id position of the letter, the first letter is 0, second = 1 ect.
x = the extra distance added to the origional x position of this letter
y = the extra distance added to the origional y position of this letter
NOTE : This notetag cannot be used within the "large notetag"
NOTE" : You can put as may of this notetag into a map's notebox as you like
e.g
<let: 0, 2, 0>
<let: 1, 2, 0>
<let: 3, 2, 0>
Use these notetags for individual letter effects, ie, size, font, color..
You must use one of these notetags for each letter you wish to modify
you cannot use these in the large notetag..
<L SIZE: letter_id, size>
<let size: letter_id, size>
<LCOL: letter_id,red,grn,blu,alpha>
<let col: letter_id,red,grn,blu,alpha>
<LOC: letter_id,red,grn,blu,alpha>
<let ocol: letter_id,red,grn,blu,alpha>
<L Fon: letter_id,font_id>
<let font: letter_id,font_id>
<L Bol: letter_id,boolean>
<let bold: letter_id,boolean>
<L Ita: letter_id,boolean>
<let italic: letter_id,boolean>
<L FX: letter_id, effect_type>
<let effect: letter_id,effect_type>
<L SLI: letter_id, slide>
<let slide: letter_id,slide>
letter_id = the id of the letter, eg. 0, 1, 2, 3
red = the red value
grn = the green value
blu = the blue value
alpha = the visibility of the color
boolean = true or false
font_id = the font array to use for this letter
effect_type = the effect type to use for this letter.
=end #=========================================================================#
module Map_Name_Window
Font_Name=[]#Do Not Delete.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# ★ GENERAL SETTINGS ★
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Remove_Default_Name_Window = true # obviously...
# Z value for the new map name "window" reccommended to be about 200
Map_Name_z = 200
# The delay from entering the map till the name begins to show. (Frames)
Delay_Timer = 30
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# ★ FONT SETTINGS ★
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This adjusts the fonts used for your maps. If the font at the start of
# the array doesn't exist on the player's computer, it'll use the next one.
# the games default font will be used if a maps font name is unspecified.
Font_Name[0] = ["VL Gothic", "Arial" ]
Font_Name[1] = ["Arial" , "Xirod" ]
Font_Name[2] = ["Xirod" , "Arial Bold"]
Font_Name[3] = ["Comic Sans MS"]
Font_Name[4] = ["Verdana" ]
Font_Name[5] = ["Arial" ]
Font_Name[6] = ["Courier" ]
Font_Size = 16
Font_Bold = true
Font_Italic = true
Font_Color = [ 255, 255, 255, 255 ] # [ red, grn, blu, alpha ]
Font_Out_Col=[ 0 , 0 , 0 , 128 ] # Font outline color, same format as above.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# ★ ICON SETTINGS ★
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#Icon= [ use? , icon id ]
Icon = [ true , 304 ] # Default iconset map icon = 231
Icon_Pos = [15, 15] # [x, y] (position of the icon)
Icon_Has_Effects = true # Icon has the same effects as letters ?
Center_Icon = [ false , false ] # format = [ center x ? , center y ? ]
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# ★ LETTER SETTINGS ★
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Map_Name_Pos = [25, 10] # [x, y] (position of the first letter in the map name)
# The delay between each letter showing, this results in a fade like effect.
L_S_D_Timer = 15
Center_Name = [ false , false ] # format = [ center x ? , center y ? ]
Slide_Distance = Graphics.width / 4 # the distance that letters slide.
Letter_Effects = true # do letters have effects ? e.g slide, spin...
L_Effect_Type = 0
# 0 = Basic Left Slide
# 1 = Basic Right Slide
# 2 = Top Drop Left Slide
# 3 = Top Drop Right Slide
# 4 = Bottoms up Left Slide
# 5 = Bottoms up Right Slide
# 6 = Basic Left Spin
# 7 = Basic Right Spin
# 8 = Basic Left Swirl Top
# 9 = Basic Left Swirl Bottom
# 10 = Basic Right Swirl Bottom
# 11 = Basic Right Swirl Top
# 12 = Slide Up
# 13 = Slide Down
# 14 = Slide Up & Left
# 15 = Slide Up & Right
# 16 = Slide Down & Left
# 17 = Slide Down & Right
# 18 = Slide Up & Left, Left Spin
# 19 = Slide Up & Left, Right Spin
# 20 = Slide Up & Right, Left Spin
# 21 = Slide Up & Right, Right Spin
# 22 = Slide Down & Left, Left Spin
# 23 = Slide Down & Left, Right Spin
# 24 = Slide Down & Right, Left Spin
# 25 = Slide Down & Right, Right Spin
# If this 'letter' is used in a map name, it will trigger a new line
# all letters afterwords will be placed on the new line.
# they can then still be repositioned ect using notetags.
# REMEMBER :~ if using the new-line symbol, it still counts as a letter
# even though it wont be visable.
NewLine_Letter = '%'
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# ★ BACKGROUND SETTINGS ★
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Basic background color , format = (red , green , blue , alpha)
BackGround_Color_1 = Color.new(0,0,0,128)
BackGround_Color_2 = Color.new(0,0,0,0)
Show_Background = true#false # self explanitory
# This is the name of the folder you want to store your map name bg images in,
# This MUST be within your games poject folder.
BG_Image_Folder = "Graphics/Map Windows/"
end # DO NOT DELETE #
module M_N_W_RegExp #
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# ★ REGEXP SETTINGS ★
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# only change these if you know what you are doing.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
F_Name = /(?:FONT NAME|font name|FN|fn):[ ](\d+)/
F_Size = /(?:FONT SIZE|FS):[ ](\d+)/i
F_Bold = /(?:FONT BOLD|FB):[ ](.*)/i
F_Ital = /(?:FONT ITALIC|FI):[ ](.*)/i
F_Col_ = /(?:FONT COLOR|FC):[ ](.*),(.*),(.*),(.*)/i
F_OCol = /(?:FONT OUT COLOR|FOC):[ ](.*),(.*),(.*),(.*)/i
Icon = /(?:NAME ICON|ICON|NI):[ ](\d+)/i
IPos = /(?:ICON POS|IP):[ ](\d+),[ ](\d+)/i
ICent = /(?:ICON CENTER|ICEN):[ ](.*),[ ](.*)/i
IEffs = /(?:ICON EFFECT|IEFF):[ ](.*)/i
Eff = /(?:NAME EFFECT|NAME EFF|NE):[ ](\d+)/i
NEff = /(?:NO NAME EFFECT|NO NAME EFF|NO NE)/i
Slide = /(?:NAME SLIDE|NS DIST|NSD):[ ](\d+)/i
Posi = /(?:NAME POS|NP):[ ](\d+),[ ](\d+)/i
Pos2 = /(?:NAME CENTER|NCEN):[ ](.*),[ ](.*)/i
LSD_ = /(?:NAME DELAY|ND):[ ](\d+)/i
Large = /<(?:MAP NAME|MNW)>([^><]*)<\/(?:MAP NAME|MNW)>/im
BG__ = /(?:BACKGROUND|BG):[ ]"(.*)"/i
BG_2 = /(?:BACKGROUND|BG):[ ]'(.*)'/i
BGpos = /(?:BGPOS|BGP):[ ](\d+),[ ](\d+)/i
BGshow = /(?:SHOW BG|SBG):[ ](.*)/i
Letter_Fixx = /<(?:LET|letter):[ ](.*),(.*),(.*)>/i
Letter_Size = /<(?:L SIZE|let size):[ ](.*),(.*)>/i
Letter_Col = /<(?:LCOL|let col):[ ](.*),(.*),(.*),(.*),(.*)>/i
Letter_OCol = /<(?:LOC|let ocol):[ ](.*),(.*),(.*),(.*),(.*)>/i
Letter_Font = /<(?:L Fon|let font):[ ](.*),(.*)>/i
Letter_Bold = /<(?:L Bol|let bold):[ ](.*),(.*)>/i
Letter_Ital = /<(?:L Ita|let italic):[ ](.*),(.*)>/i
Letter_FX = /<(?:L FX|let effect):[ ](.*),(.*)>/i
Letter_SLI = /<(?:L SLI|let slide):[ ](.*),(.*)>/i
#####################
# CUSTOMISATION END #
end #####################
#☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
# #
# http://dekitarpg.wordpress.com/ #
# #
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
#===============================================================================#
# ARE YOU MODIFYING BEYOND THIS POINT? \.\. #
# YES?\.\. #
# OMG, REALLY? \| #
# WELL SLAP MY FACE AND CALL ME A DRAGONITE.\..\.. #
# I REALLY DIDN'T THINK YOU HAD IT IN YOU.\..\.. #
#===============================================================================#
$imported = {} if $imported.nil?
$imported[:Dekita_Anim_Map_Name] = true
#===============================================================================#
class RPG::Map
#===============================================================================#
attr_reader(:map_name_font_name)
attr_reader(:map_name_font_size)
attr_reader(:map_name_font_bold)
attr_reader(:map_name_font_ital)
attr_reader(:map_name_font_col_)
attr_reader(:map_name_font_ocol)
attr_reader(:map_name_icon)
attr_reader(:map_name_icon_pos)
attr_reader(:map_name_icon_pos_centered)
attr_reader(:map_name_icon_gets_effects)
attr_reader(:map_name_effect)
attr_reader(:map_name_slide_dist)
attr_reader(:map_name_letter_show_delay)
attr_reader(:map_name_position)
attr_reader(:map_name_position_centered)
attr_reader(:map_name_bg)
attr_reader(:map_name_bg_pos)
attr_reader(:map_name_bg_show)
attr_reader(:map_name_ind_let_fixx)
attr_reader(:map_name_ind_let_font)
attr_reader(:map_name_ind_let_size)
attr_reader(:map_name_ind_let_bold)
attr_reader(:map_name_ind_let_ital)
attr_reader(:map_name_ind_let_color)
attr_reader(:map_name_ind_let_outcolor)
attr_reader(:map_name_ind_let_fx)
attr_reader(:map_name_ind_let_slide)
def get_map_name_icon_info
@map_name_font_name = Font.default_name
@map_name_font_size = Map_Name_Window::Font_Size
@map_name_font_bold = Map_Name_Window::Font_Bold
@map_name_font_ital = Map_Name_Window::Font_Italic
@map_name_font_col_ = Map_Name_Window::Font_Color
@map_name_font_ocol = Map_Name_Window::Font_Out_Col
@map_name_icon = Map_Name_Window::Icon
@map_name_icon_pos = Map_Name_Window::Icon_Pos
@map_name_icon_pos_centered = Map_Name_Window::Center_Icon
@map_name_icon_gets_effects = Map_Name_Window::Icon_Has_Effects
@map_name_effect = [Map_Name_Window::Letter_Effects,Map_Name_Window::L_Effect_Type]
@map_name_slide_dist = Map_Name_Window::Slide_Distance
@map_name_position = Map_Name_Window::Map_Name_Pos
@map_name_position_centered = Map_Name_Window::Center_Name
@map_name_letter_show_delay = Map_Name_Window::L_S_D_Timer
@map_name_bg = nil
@map_name_bg_pos = @map_name_position
@map_name_bg_show = Map_Name_Window::Show_Background
@map_name_ind_let_fixx = []
@map_name_ind_let_size = []
@map_name_ind_let_font = []
@map_name_ind_let_bold = []
@map_name_ind_let_ital = []
@map_name_ind_let_color = []
@map_name_ind_let_outcolor = []
@map_name_ind_let_fx = []
@map_name_ind_let_slide = []
self.note.split(/[\r\n]+/).each { |line| ; case line
when /<#{M_N_W_RegExp::F_Name}>/ ; @map_name_font_name = Map_Name_Window::Font_Name[$1.to_i]
when /<#{M_N_W_RegExp::F_Size}>/ ; @map_name_font_size = $1.to_i
when /<#{M_N_W_RegExp::F_Bold}>/ ; @map_name_font_bold = $1.to_s
when /<#{M_N_W_RegExp::F_Ital}>/ ; @map_name_font_ital = $1.to_s
when /<#{M_N_W_RegExp::F_Col_}>/ ; @map_name_font_col_ = [$1.to_i,$2.to_i,$3.to_i,$4.to_i]
when /<#{M_N_W_RegExp::F_OCol}>/ ; @map_name_font_ocol = [$1.to_i,$2.to_i,$3.to_i,$4.to_i,]
when /<#{M_N_W_RegExp::Icon}>/ ; @map_name_icon = [true, $1.to_i]
when /<#{M_N_W_RegExp::IPos}>/ ; @map_name_icon_pos = [$1.to_i, $2.to_i]
when /<#{M_N_W_RegExp::ICent}>/ ; @map_name_icon_pos_centered = [$1.to_s.downcase, $2.to_s.downcase]
when /<#{M_N_W_RegExp::IEffs}>/ ; @map_name_icon_gets_effects = $1.to_s.downcase
when /<#{M_N_W_RegExp::Eff}>/ ; @map_name_effect = [true, $1.to_i]
when /<#{M_N_W_RegExp::NEff}>/ ; @map_name_effect = [false, 0]
when /<#{M_N_W_RegExp::Slide}>/ ; @map_name_slide_dist = $1.to_i
when /<#{M_N_W_RegExp::Posi}>/ ; @map_name_position = [$1.to_i, $2.to_i]
when /<#{M_N_W_RegExp::Pos2}>/ ; @map_name_position_centered = [$1.to_s.downcase, $2.to_s.downcase]
when /<#{M_N_W_RegExp::LSD_}>/ ; @map_name_letter_show_delay = $1.to_i
when /<#{M_N_W_RegExp::BG__}>/ ; @map_name_bg = $1.to_s
when /<#{M_N_W_RegExp::BG_2}>/ ; @map_name_bg = $1.to_s
when /<#{M_N_W_RegExp::BGpos}>/ ; @map_name_bg_pos = [$1.to_i, $2.to_i]
when /<#{M_N_W_RegExp::BGshow}>/ ; @map_name_bg_show = $1.to_s.downcase
when M_N_W_RegExp::Letter_Fixx
@map_name_ind_let_fixx.push([$1.to_i, $2.to_i, $3.to_i])
when M_N_W_RegExp::Letter_Font
@map_name_ind_let_font.push([$1.to_i, Map_Name_Window::Font_Name[$2.to_i] ])
when M_N_W_RegExp::Letter_Size
@map_name_ind_let_size.push([$1.to_i, $2.to_i])
when M_N_W_RegExp::Letter_Bold
@map_name_ind_let_bold.push([$1.to_i, $2.to_s.downcase])
when M_N_W_RegExp::Letter_Ital
@map_name_ind_let_ital.push([$1.to_i, $2.to_s.downcase])
when M_N_W_RegExp::Letter_Col
@map_name_ind_let_color.push([$1.to_i,$2.to_i,$3.to_i,$4.to_i,$5.to_i])
when M_N_W_RegExp::Letter_OCol
@map_name_ind_let_outcolor.push([$1.to_i,$2.to_i,$3.to_i,$4.to_i,$5.to_i])
when M_N_W_RegExp::Letter_FX
@map_name_ind_let_fx.push([$1.to_i,$2.to_i])
when M_N_W_RegExp::Letter_SLI
@map_name_ind_let_slide.push([$1.to_i,$2.to_i])
end ; } # self.note.split
get_mni(self.note)
end
def get_mni(note)
note.scan(M_N_W_RegExp::Large) { setup_map_name_info($1) }
end
def setup_map_name_info(info)
@map_name_font_name = Map_Name_Window::Font_Name[$1.to_i] if info =~ M_N_W_RegExp::F_Name
@map_name_font_size = $1.to_i if info =~ M_N_W_RegExp::F_Size
@map_name_font_bold = $1.to_s.downcase if info =~ M_N_W_RegExp::F_Bold
@map_name_font_ital = $1.to_s.downcase if info =~ M_N_W_RegExp::F_Ital
@map_name_font_col_ = [$1.to_i,$2.to_i,$3.to_i,$4.to_i] if info =~ M_N_W_RegExp::F_Col_
@map_name_font_ocol = [$1.to_i,$2.to_i,$3.to_i,$4.to_i] if info =~ M_N_W_RegExp::F_OCol
@map_name_icon = [true,$1.to_i] if info =~ M_N_W_RegExp::Icon
@map_name_icon_pos = [$1.to_i, $2.to_i] if info =~ M_N_W_RegExp::IPos
@map_name_icon_pos_centered = [$1.to_s.downcase, $2.to_s.downcase] if info =~ M_N_W_RegExp::ICent
@map_name_icon_gets_effects = $1.to_s.downcase if info =~ M_N_W_RegExp::IEffs
@map_name_effect = [true,$1.to_i] if info =~ M_N_W_RegExp::Eff
@map_name_effect = [false, 0] if info =~ M_N_W_RegExp::NEff
@map_name_slide_dist = $1.to_i if info =~ M_N_W_RegExp::Slide
@map_name_position = [$1.to_i,$2.to_i] if info =~ M_N_W_RegExp::Posi
@map_name_position_centered = [$1.to_s.downcase, $2.to_s.downcase] if info =~ M_N_W_RegExp::Pos2
@map_name_letter_show_delay = $1.to_i if info =~ M_N_W_RegExp::LSD_
@map_name_bg = $1.to_s if info =~ M_N_W_RegExp::BG__
@map_name_bg = $1.to_s if info =~ M_N_W_RegExp::BG_2
@map_name_bg_pos = [$1.to_i,$2.to_i] if info =~ M_N_W_RegExp::BGpos
@map_name_bg_show = $1.to_s.downcase if info =~ M_N_W_RegExp::BGshow
end
end
#==============================================================================
module Cache
#==============================================================================
def self.mapname_im(filename)
load_bitmap(Map_Name_Window::BG_Image_Folder, filename)
end
end
#==============================================================================
class Game_Temp
#==============================================================================
attr_accessor :mapname
alias :map_name_initialize_GT :initialize
def initialize
map_name_initialize_GT
@mapname = nil
end
end
#===============================================================================#
class Game_Map
#===============================================================================#
alias :map_nameGMsetup :setup
def setup(map_id)
map_nameGMsetup(map_id)
@map.get_map_name_icon_info
end
def setup_map_name_info
end
def map_name_icon
@map.map_name_icon
end
def map_name_icon_pos_x
@map.map_name_icon_pos[0]
end
def map_name_icon_pos_y
@map.map_name_icon_pos[1]
end
def map_name_icon_pos_x_center?
@map.map_name_icon_pos_centered[0]
end
def map_name_icon_pos_y_center?
@map.map_name_icon_pos_centered[1]
end
def map_name_icon_effects?
@map.map_name_icon_gets_effects
end
def map_name_effect
@map.map_name_effect
end
def map_name_slide
@map.map_name_slide_dist
end
def map_name_font_name
@map.map_name_font_name
end
def map_name_font_size
@map.map_name_font_size
end
def map_name_font_bold
@map.map_name_font_bold
end
def map_name_font_italic
@map.map_name_font_ital
end
def map_name_position_x
@map.map_name_position[0]
end
def map_name_position_y
@map.map_name_position[1]
end
def map_name_pos_center_x?
@map.map_name_position_centered[0]
end
def map_name_pos_center_y?
@map.map_name_position_centered[1]
end
def map_name_LSD
@map.map_name_letter_show_delay
end
def map_name_font_color
c = @map.map_name_font_col_
Color.new(c[0],c[1],c[2],c[3])
end
def map_name_font_out_color
c = @map.map_name_font_ocol
Color.new(c[0],c[1],c[2],c[3])
end
def map_name_bg
@map.map_name_bg
end
def map_name_bg_x
@map.map_name_bg_pos[0]
end
def map_name_bg_y
@map.map_name_bg_pos[1]
end
def map_name_bg_showing?
@map.map_name_bg_show
end
def ind_letter_fixx
@map.map_name_ind_let_fixx
end
def ind_letter_size
@map.map_name_ind_let_size
end
def ind_letter_font
@map.map_name_ind_let_font
end
def ind_letter_bold
@map.map_name_ind_let_bold
end
def ind_letter_ital
@map.map_name_ind_let_ital
end
def ind_letter_color
@map.map_name_ind_let_color
end
def ind_letter_outcolor
@map.map_name_ind_let_outcolor
end
def ind_letter_fx
@map.map_name_ind_let_fx
end
def ind_letter_slide
@map.map_name_ind_let_slide
end
end
#==============================================================================
class Game_Interpreter
#==============================================================================
def reset_map_name
$game_temp.mapname = nil
end
end
#==============================================================================
class Sprite_MapName < Sprite
#==============================================================================
include Map_Name_Window
def initialize(letter, x = 0, y = 0, timer = 0, index = 0)
super(nil)
create_variables(timer, index, letter)
get_letter_effects if @letter_effects[0]
x = x_needs_fixed?(letter, x) if letter != nil
y = y_needs_fixed?(letter, y) if letter != nil
create_map_name(letter, x, y) if letter != nil
end
def create_variables(t, i, l)
@open = true
@slide_left = false
@slide_right = false
@slide_up = false
@slide_down = false
@timer = t
@timer_val = 0
@letter_index = i
@angle_type = nil
@letter_effects = get_let_fx(l)
@slide_distance = get_let_slide(l)
end
def get_letter_effects
case @letter_effects[1]
when 0 ; basic_left_slide
when 1 ; basic_right_slide
when 2 ; basic_left_slide ; get_angle_type(0)
when 3 ; basic_right_slide ; get_angle_type(1)
when 4 ; basic_left_slide ; get_angle_type(1)
when 5 ; basic_right_slide ; get_angle_type(0)
when 6 ; basic_left_spin ; get_angle_type(2)
when 7 ; basic_right_spin ; get_angle_type(3)
when 8 ; basic_right_slide ; get_angle_type(4)
when 9 ; basic_left_slide ; get_angle_type(4)
when 10; basic_right_slide ; get_angle_type(5)
when 11; basic_left_slide ; get_angle_type(5)
when 12; basic_up_slide
when 13; basic_down_slide
when 14; basic_up_slide ; basic_left_slide
when 15; basic_up_slide ; basic_right_slide
when 16; basic_down_slide ; basic_left_slide
when 17; basic_down_slide ; basic_right_slide
when 18; basic_up_slide ;basic_left_slide; basic_left_spin ;get_angle_type(2)
when 19; basic_up_slide ;basic_left_slide; basic_right_spin ;get_angle_type(3)
when 20; basic_up_slide ;basic_right_slide; basic_left_spin ;get_angle_type(2)
when 21; basic_up_slide ;basic_right_slide; basic_right_spin ;get_angle_type(3)
when 22; basic_down_slide ;basic_left_slide ; basic_left_spin ;get_angle_type(2)
when 23; basic_down_slide ;basic_left_slide ; basic_right_spin ;get_angle_type(3)
when 24; basic_down_slide ;basic_right_slide ; basic_left_spin ;get_angle_type(2)
when 25; basic_down_slide ;basic_right_slide ; basic_right_spin ;get_angle_type(3)
end
end
def get_let_fx(letter)
$game_map.ind_letter_fx.each {|let|
return [true, let[1]] if let[0] == @letter_index }
return $game_map.map_name_effect
end
def get_let_slide(letter)
$game_map.ind_letter_slide.each {|let|
return let[1] if let[0] == @letter_index }
return $game_map.map_name_slide
end
def x_needs_fixed?(letter, x)
$game_map.ind_letter_fixx.each {|let|
return x += let[1] if let[0] == @letter_index }
return x
end
def y_needs_fixed?(letter, y)
$game_map.ind_letter_fixx.each {|let|
return y += let[2] if let[0] == @letter_index }
return y
end
def create_map_name(letter, x, y)
size = get_let_size(letter)
self.bitmap = Bitmap.new(size,size)
self.bitmap.font.name = get_let_font(letter)
self.bitmap.font.size = size
self.bitmap.font.bold = get_let_bold(letter)
self.bitmap.font.italic = get_let_ital(letter)
self.bitmap.font.color = get_letter_color(letter)
self.bitmap.font.out_color = get_letter_outcolor(letter)
self.bitmap.draw_text(0, 0, size, size, letter.to_s)
self.x = x
self.y = y + (size / 2).to_i
self.z = Map_Name_z + 2
self.opacity = 0
end
def get_let_font(letter)
$game_map.ind_letter_font.each {|let|
return let[1] if let[0] == @letter_index }
return $game_map.map_name_font_name
end
def get_let_size(letter)
$game_map.ind_letter_size.each {|let|
return let[1] if let[0] == @letter_index }
return $game_map.map_name_font_size
end
def get_let_bold(letter)
$game_map.ind_letter_bold.each {|let|
return let[1] if let[0] == @letter_index }
return $game_map.map_name_font_bold
end
def get_let_ital(letter)
$game_map.ind_letter_ital.each {|let|
return let[1] if let[0] == @letter_index }
return $game_map.map_name_font_italic
end
def get_letter_color(letter)
$game_map.ind_letter_color.each do |let|
if let[0] == @letter_index
return Color.new(let[1],let[2],let[3],let[4])
end
end
return $game_map.map_name_font_color
end
def get_letter_outcolor(letter)
$game_map.ind_letter_outcolor.each do |let|
if let[0] == @letter_index
return Color.new(let[1],let[2],let[3],let[4])
end
end
return $game_map.map_name_font_out_color
end
def basic_left_slide
@slide_left = true
self.ox = -(@slide_distance).to_i
end
def basic_right_slide
@slide_right = true
self.ox = (@slide_distance).to_i
end
def basic_up_slide
@slide_up = true
self.oy = -(@slide_distance).to_i
end
def basic_down_slide
@slide_down = true
self.oy = (@slide_distance).to_i
end
def basic_left_spin
@move_for_spin = true
end
def basic_right_spin
@move_for_spin = true
end
def get_angle_type(angle_type)
@angle_type = angle_type
case angle_type
when 0 ; self.angle = 50
when 1 ; self.angle = -50
when 2 ; self.angle = -360
when 3 ; self.angle = 360
when 4 ; self.angle = (50 * (@timer / (@letter_index+1)))
when 5 ; self.angle = -(50 * (@timer / (@letter_index+1)))
end
end
def update
super
update_timer
update_show
update_slide if @open
update_angle if @angle_type != nil
end
def update_timer
return if @timer_val >= @timer
@timer_val += 1
self.opacity = 1
end
def update_show
self.opacity += 1 if @open
self.opacity -= 1 if !@open
@open = false if self.opacity >= 255
end
def update_slide
self.ox += 1 if self.ox < 0 && @slide_left
self.ox -= 1 if self.ox > 0 && @slide_right
self.oy += 1 if self.oy < 0 && @slide_up
self.oy -= 1 if self.oy > 0 && @slide_down
end
def update_angle
return if @angle_type == nil
return if self.angle.between?(-0.49,0.49)
case @angle_type
when 0, 1 ; self.angle < 0 ? self.angle += 0.2 : self.angle -= 0.2
when 2, 3 ; self.angle.between?(-5,5) ?
self.angle < 0 ? self.angle += 0.5 : self.angle -= 0.5 :
self.angle < 0 ? self.angle += 1.5 : self.angle -= 1.5
when 4, 5 ; self.angle.between?(-10,10) ? self.angle.between?(-4,4) ?
self.angle < 0 ? self.angle += 0.5 : self.angle -= 0.5 : # 2nd between
self.angle < 0 ? self.angle += 1.5 : self.angle -= 1.5 : # 1st between
self.angle < 0 ? self.angle += 2.5 : self.angle -= 2.5
end
end
def dispose
super
if self.bitmap != nil
self.bitmap.dispose
end
end
end
#==============================================================================
class Sprite_MapIcon < Sprite_MapName
#==============================================================================
def initialize(icon, x = 0, y = 0, timer, index)
super(nil, x, y, timer, index)
self.bitmap = Cache.system("Iconset")
rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
self.bitmap.blt(0, 0, self.bitmap, rect)
self.src_rect.set(rect.x, rect.y, 24, 24)
self.x = x
self.y = y
self.z = Map_Name_z + 1
end
def update
super
end
def dispose
super
if self.bitmap != nil
self.bitmap.dispose
end
end
end
#==============================================================================
class Sprite_MapName_BG < Sprite
#==============================================================================
include Map_Name_Window
def initialize(x, y, width, height, image = nil)
super(nil)
self.z = Map_Name_z
self.opacity = 0
@open = true
if image == nil
create_standard_bg(x, y, width, height)
else
create_background_image(x, y, image)
end
@timer = 0
update
end
def create_standard_bg(x, y, width, height)
self.bitmap = Bitmap.new(width,height)
rect = Rect.new(0, 0,width,height)
rect.width /= 2
self.bitmap.gradient_fill_rect(rect, BackGround_Color_2, BackGround_Color_1)
rect.x = rect.width
self.bitmap.gradient_fill_rect(rect, BackGround_Color_1, BackGround_Color_2)
self.x = x
self.y = y + (height / 2 )
end
def create_background_image(x, y, image)
self.bitmap = Cache.mapname_im(image)
self.x = x
self.y = y
end
def update
super
@timer += 1 if !@open
self.opacity += 1 if @open
self.opacity -= 1 if !@open
@open = false if self.opacity >= 250
end
def dispose
super
if self.bitmap != nil
self.bitmap.dispose
end
end
end
#==============================================================================
module Spriteset_Map_Name
#==============================================================================
def init_map_name_set
return if $game_temp.mapname == $game_map.display_name
$game_temp.mapname = $game_map.display_name
create_map_name
create_map_name_icon
create_map_name_BG
@delay_timer = 0
@display_mn_timer = 0
end
def create_map_name_icon
return unless $game_map.map_name_icon[0]
x = $game_map.map_name_icon_pos_x
y = $game_map.map_name_icon_pos_y
x = (Graphics.width / 2) - (12) if $game_map.map_name_icon_pos_x_center?
y = (Graphics.height / 2) - (12) if $game_map.map_name_icon_pos_y_center?
timer = $game_map.map_name_LSD
index = 0
icon = $game_map.map_name_icon[1]
@map_icon = Sprite_MapIcon.new(icon, x, y, timer, index)
end
def create_map_name
x = $game_map.map_name_position_x
y = $game_map.map_name_position_y
n = $game_map.display_name.to_s.split(//)
@map_name = []
timer = $game_map.map_name_LSD
index = 0
fbvaal = ($game_map.map_name_font_bold ? 0 : 0) + ($game_map.map_name_font_italic ? 0 : 0)
if $game_map.map_name_pos_center_x?
n_size = ($game_map.display_name.size+1) * ($game_map.map_name_font_size + fbvaal )
x = (Graphics.width / 2) - (n_size / 2)
end
if $game_map.map_name_pos_center_y?
n_size = ($game_map.map_name_font_size + fbvaal )
y = (Graphics.height / 2) - (n_size / 2)
end
for i in n
letter = i[0]
if letter == Map_Name_Window::NewLine_Letter
y += $game_map.map_name_font_size
x = $game_map.map_name_position_x - ($game_map.map_name_font_size)
letter = ''
end
@map_name.push( Sprite_MapName.new(letter, x, y, timer, index))
x += ($game_map.map_name_font_size / 4 * 3)
timer += $game_map.map_name_LSD
index += 1
end
end
def create_map_name_BG
return unless $game_map.map_name_bg_showing?
return if $game_map.display_name == ''
timer = $game_map.map_name_LSD
mbgwid = ($game_map.display_name.size) * @map_name[0].width / 4 * 3
mbghei = @map_name[0].height
mbgx = $game_map.map_name_bg_x
mbgy = $game_map.map_name_bg_y
image = $game_map.map_name_bg
@map_BG = Sprite_MapName_BG.new(mbgx, mbgy, mbgwid, mbghei, image) if @map_name != nil
end
def update_map_name_set
if $game_temp.mapname != $game_map.display_name
dispose_map_name_set
init_map_name_set
end
return if @map_name == nil
update_map_name_DPBz if @map_name != nil
update_map_name_BG if @map_BG != nil
update_map_name_icon if @map_icon != nil
@display_mn_timer += 1
if @display_mn_timer > 600
@map_name.each {|i| return if i.opacity > 0 }
return if @map_icon != nil && @map_icon.opacity > 0
return if @map_BG != nil && @map_BG.opacity > 0
dispose_map_name_set
end
end
def update_map_name_DPBz
return if @delay_timer == nil
@delay_timer += 1
return unless @delay_timer >= Map_Name_Window::Delay_Timer
@map_name.each {|sprite| sprite.update } if @map_name != nil
end
def update_map_name_BG
@map_BG.update if @map_BG != nil
end
def update_map_name_icon
@map_icon.update if @map_icon != nil
end
def dispose_map_name_set
@map_BG.dispose if @map_BG != nil
@map_icon.dispose if @map_icon != nil
@map_name.each {|sprite| sprite.dispose } if @map_name != nil
@map_BG = nil
@map_icon = nil
@map_name = nil
@delay_timer = nil
end
end
#==============================================================================
class Spriteset_Map
#==============================================================================
include Spriteset_Map_Name
alias :initialize_map_name :initialize
alias :dispose_map_name :dispose
alias :update_map_name :update
def initialize
initialize_map_name
init_map_name_set
end
def dispose
dispose_map_name
dispose_map_name_set
end
def update
update_map_name
update_map_name_set
end
end
#==============================================================================
class Window_MapName < Window_Base
#==============================================================================
if Map_Name_Window::Remove_Default_Name_Window
def refresh
contents.clear
end
end # if Map_Name_Window::Remove_Default_Name_Window
end
#==============================================================================#
# - SCRIPT END - #
#==============================================================================#
# http://dekitarpg.wordpress.com/ #
#==============================================================================#
Похожие темы
» Xenoblade Chronicles (прохождение, квесты, секреты, персонажи, карты локаций) (тема в разработке!)
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения