| 赞 | 2 |
| VIP | 0 |
| 好人卡 | 0 |
| 积分 | 6 |
| 经验 | 0 |
| 最后登录 | 2026-5-9 |
| 在线时间 | 113 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 643
- 在线时间
- 113 小时
- 注册时间
- 2024-4-13
- 帖子
- 29
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 chen12311 于 2026-1-26 14:24 编辑
类似于地图名显示,但加了一些功能,字体修改之类的,还加了各种地图风格的外观修改(?)
以下是代码#传送到目的地时目的地名显示并维持一段时间再消失 #另外内容:地图特有的风格显示(?) #图片大小可以设置,但对应的图片也要设置成一样的大小 #图片名为:map_border+号数 #示例:地图名显示:测试地图(主要的地图名显示),2(需要的图片名的号数),测试中.....(下面的小标题) module Show_Map_Set Note=/地图名显示[::](\S+)/ Text_Font_Size=90 #地图名未设置不会显示 Text_Font_Name="kaiti"#地图名字体 Title_Font_Name=""#地图描述字体名 Title_Font_Size=20 Map_Border=90 Time_Set=125#保留的帧数 end class Game_Map def map_set_note @map.note=~ Show_Map_Set::Note ? note=$1 : note= nil return nil unless !note.nil? note_l=note.split(/\s*,\s*/) end end class Window_Base < Window def draw_mapborder_set(name,index, x, y, enabled = true) bitmap = Cache.system("map_border"+name) size=Show_Map_Set::Map_Border rect = Rect.new(index % 2 * size, index / 2 * size, size, size) contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha) end end class Window_Mapset_Show < Window_Base def initialize super(0,80, Graphics.width, Graphics.height/2) self.opacity = 0 self.contents_opacity = 0 @show_count = 0 refresh end def close @show_count = 0 self end def open refresh @show_count = Show_Map_Set::Time_Set self.contents_opacity = 0 self end def update super if @show_count > 0 && $game_map.name_display update_fadein @show_count -= 1 else update_fadeout end end #-------------------------------------------------------------------------- # ● 更新淡入 #-------------------------------------------------------------------------- def update_fadein self.contents_opacity += 16 end #-------------------------------------------------------------------------- # ● 更新淡出 #-------------------------------------------------------------------------- def update_fadeout self.contents_opacity -= 16 end def map_text_font contents.font.name=Show_Map_Set::Text_Font_Name contents.font.size=Show_Map_Set::Text_Font_Size end def title_text_font contents.font.name=Show_Map_Set::Title_Font_Name if !Show_Map_Set::Title_Font_Name.empty? contents.font.size=Show_Map_Set::Title_Font_Size end def refresh contents.clear map_text_font note=$game_map.map_set_note unless note[0].empty? if note.size>1 size=note[0].size rect_1=text_size(note[0]) rect_2=contents.rect draw_mapborder_set(note[1],0, rect_1.width-(note[0].size-1)*90, rect_1.height-30, enabled = true) draw_mapborder_set(note[1],1, rect_1.width+90, rect_1.height-30, enabled = true) if !note[2].nil? || !note[2].empty? title_rect=Rect.new(rect_2.x,rect_2.y+50,rect_2.width,rect_2.height) draw_text(rect_2, note[0], 1) p rect_1 title_text_font draw_text(title_rect, note[2], 1) else draw_text(rect, note[0], 1) end else draw_text(rect, note[0], 1) end end end end class Scene_Map < Scene_Base alias create_all_windows_mapset create_all_windows def create_all_windows create_all_windows_mapset create_mapset_show_window end def create_mapset_show_window @mapset_show_window = Window_Mapset_Show.new end alias post_transfer_mapset post_transfer def post_transfer post_transfer_mapset @mapset_show_window.open end alias pre_transfer_mapset pre_transfer def pre_transfer @mapset_show_window.close pre_transfer_mapset end end
#传送到目的地时目的地名显示并维持一段时间再消失
#另外内容:地图特有的风格显示(?)
#图片大小可以设置,但对应的图片也要设置成一样的大小
#图片名为:map_border+号数
#示例:地图名显示:测试地图(主要的地图名显示),2(需要的图片名的号数),测试中.....(下面的小标题)
module Show_Map_Set
Note=/地图名显示[::](\S+)/
Text_Font_Size=90
#地图名未设置不会显示
Text_Font_Name="kaiti"#地图名字体
Title_Font_Name=""#地图描述字体名
Title_Font_Size=20
Map_Border=90
Time_Set=125#保留的帧数
end
class Game_Map
def map_set_note
@map.note=~ Show_Map_Set::Note ? note=$1 : note= nil
return nil unless !note.nil?
note_l=note.split(/\s*,\s*/)
end
end
class Window_Base < Window
def draw_mapborder_set(name,index, x, y, enabled = true)
bitmap = Cache.system("map_border"+name)
size=Show_Map_Set::Map_Border
rect = Rect.new(index % 2 * size, index / 2 * size, size, size)
contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
end
end
class Window_Mapset_Show < Window_Base
def initialize
super(0,80, Graphics.width, Graphics.height/2)
self.opacity = 0
self.contents_opacity = 0
@show_count = 0
refresh
end
def close
@show_count = 0
self
end
def open
refresh
@show_count = Show_Map_Set::Time_Set
self.contents_opacity = 0
self
end
def update
super
if @show_count > 0 && $game_map.name_display
update_fadein
@show_count -= 1
else
update_fadeout
end
end
#--------------------------------------------------------------------------
# ● 更新淡入
#--------------------------------------------------------------------------
def update_fadein
self.contents_opacity += 16
end
#--------------------------------------------------------------------------
# ● 更新淡出
#--------------------------------------------------------------------------
def update_fadeout
self.contents_opacity -= 16
end
def map_text_font
contents.font.name=Show_Map_Set::Text_Font_Name
contents.font.size=Show_Map_Set::Text_Font_Size
end
def title_text_font
contents.font.name=Show_Map_Set::Title_Font_Name if !Show_Map_Set::Title_Font_Name.empty?
contents.font.size=Show_Map_Set::Title_Font_Size
end
def refresh
contents.clear
map_text_font
note=$game_map.map_set_note
unless note[0].empty?
if note.size>1
size=note[0].size
rect_1=text_size(note[0])
rect_2=contents.rect
draw_mapborder_set(note[1],0, rect_1.width-(note[0].size-1)*90, rect_1.height-30, enabled = true)
draw_mapborder_set(note[1],1, rect_1.width+90, rect_1.height-30, enabled = true)
if !note[2].nil? || !note[2].empty?
title_rect=Rect.new(rect_2.x,rect_2.y+50,rect_2.width,rect_2.height)
draw_text(rect_2, note[0], 1)
p rect_1
title_text_font
draw_text(title_rect, note[2], 1)
else
draw_text(rect, note[0], 1)
end
else
draw_text(rect, note[0], 1)
end
end
end
end
class Scene_Map < Scene_Base
alias create_all_windows_mapset create_all_windows
def create_all_windows
create_all_windows_mapset
create_mapset_show_window
end
def create_mapset_show_window
@mapset_show_window = Window_Mapset_Show.new
end
alias post_transfer_mapset post_transfer
def post_transfer
post_transfer_mapset
@mapset_show_window.open
end
alias pre_transfer_mapset pre_transfer
def pre_transfer
@mapset_show_window.close
pre_transfer_mapset
end
end
然后用鼠标抽象的画了个图() |
评分
-
查看全部评分
|