设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 15314|回复: 12
打印 上一主题 下一主题

[RMVA发布] 地图名显示美化

[复制链接]

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21661
在线时间
9417 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

跳转到指定楼层
发表于 2013-9-26 11:35:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 喵呜喵5 于 2015-6-8 22:20 编辑

用法和说明请看脚本开头的注释,

点击这个地址获取脚本的最新版本

https://rpg.blue/home.php?mod=sp ... o=blog&id=12016

效果图:


如果你只是想要测试这个脚本的效果的话,脚本所需的素材图片可以使用这个


这个脚本搭配我的基础脚本共同使用能够拥有更强大的功能:https://rpg.blue/home.php?mod=sp ... o=blog&id=13513
  1. =begin
  2. ===============================================================================
  3.   地图名显示美化 By喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6.   修改了默认的地图名显示方式

  7.   地图名的显示支持基本的转义字符,因此可以做出类似:
  8.     地图名:“\i[4]这里是\n[1]的家”
  9.     显示效果:【图标4】这里是艾里克的家
  10.   这样的效果

  11.   使用脚本需要将地图名的背景命名为“mapname”放在 Graphics\System 下

  12.   如果插入了我的基础脚本,可以通过给地图添加备注

  13.     <地图名 地图背景图片的文件名>

  14.   来为某张地图单独设置特定的背景图片(文件同样放在 Graphics\System 下)

  15. =end
  16. $m5script ||= {}; $m5script[:M5MN20150508] = 20150517
  17. module M5MN20150508
  18. #==============================================================================
  19. #  设定部分
  20. #==============================================================================

  21.   DEAFUT = 3
  22.   # 在这里设置地图名的显示模式
  23.   # 1:不显示地图名,2:地图名始终显示,3:一段时间内显示地图名

  24.     TIME = 120
  25.     #这里设置地图名显示模式为3时,地图名停留的时间

  26.   OPTION = 1
  27.   # 在这里设置控制地图名的变量ID
  28.   # 当变量的值分别为1、2、3时地图名显示模式将切换到对应的模式
  29.   # 不需要的话,填写0就好了

  30.   FADE = 40
  31.   # 这里设置地图名进入和离开的时间

  32.   FONT = ["黑体"]
  33.   # 地图名所使用的字体

  34.   SIZE = 20
  35.   # 地图名字体的大小

  36.   COLOR = Color.new(0,0,0, 210)
  37.   # 地图名的颜色,四个数值分别是R、G、B以及透明度

  38.   BOLD = false
  39.   # 地图名是否加粗

  40.   ITALIC = false
  41.   # 地图名是否斜体

  42.   SHADOW = false
  43.   # 地图名是否有阴影

  44.   OUT = true
  45.   # 地图名是否加边框

  46.   OUT_COLOR = Color.new(255, 255, 255, 100)
  47.   # 地图名边框的颜色,四个数值分别是R、G、B以及透明度

  48.   X = 87
  49.   # 这里调整地图名的X坐标

  50.   Y = 12
  51.   # 这里调整地图名的Y坐标

  52.   Z = 200
  53.   # 如果地图名被其他东西遮住或遮住其他东西了,请调整这个数值

  54. #==============================================================================
  55. #  设定结束
  56. #==============================================================================
  57. #--------------------------------------------------------------------------
  58. # ● 新的显示地图窗口类
  59. #--------------------------------------------------------------------------
  60. class Window_MapName < Window_Base
  61.   #--------------------------------------------------------------------------
  62.   # ● 类实例变量
  63.   #--------------------------------------------------------------------------
  64.   class << self; attr_accessor :show_end; end
  65.   #--------------------------------------------------------------------------
  66.   # ● 载入
  67.   #--------------------------------------------------------------------------
  68.   def initialize
  69.     super(Graphics.width, Y, Graphics.width, Graphics.height)
  70.     self.z = Z
  71.     self.opacity = 0
  72.     creat_background_sprite
  73.     update_mode_setting
  74.     clear_all_flag
  75.     if self.class.show_end
  76.       show_final
  77.     else
  78.       open unless @mode == 1
  79.     end
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 生成背景
  83.   #--------------------------------------------------------------------------
  84.   def creat_background_sprite
  85.     file = get_background_bitmap
  86.     if @background_file != file
  87.       @background_file = file
  88.       @background.dispose if @background
  89.       @background = Sprite.new
  90.       @background.bitmap = Cache.system(file)
  91.       @background.opacity = 0
  92.       @background.z = self.z - 1
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 获取背景图片文件名
  97.   #--------------------------------------------------------------------------
  98.   def get_background_bitmap
  99.     if $m5script[:M5Base] && $m5script[:M5Base] >= 20150224
  100.       file = M5script.read_map_note($game_map.map_id, "地图名", nil)
  101.     end
  102.     file ||= "Mapname"
  103.     return file
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 显示效果遭到意外中断时,直接显示最终画面
  107.   #--------------------------------------------------------------------------
  108.   def show_final
  109.     if @mode == 2
  110.       refresh
  111.       @background.opacity = self.contents_opacity = 255
  112.       self.x = X
  113.       @state = :showing
  114.     else
  115.       close
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 更新
  120.   #--------------------------------------------------------------------------
  121.   def update
  122.     super
  123.     return if $game_map.display_name == ""
  124.     update_mode_setting
  125.     return update_disappear if @state == :disappear
  126.     update_coming if @state == :coming
  127.     @next_time -= 1 if @next_time > 0
  128.     return if @next_time > 0
  129.     update_leaving if @state == :showing
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 更新显示模式
  133.   #--------------------------------------------------------------------------
  134.   def update_mode_setting
  135.     if !$game_map.name_display then mode = 1
  136.     else
  137.       if OPTION != 0
  138.         mode = $game_variables[OPTION]
  139.         mode = nil unless mode.between?(1,3)
  140.       end
  141.       mode ||= DEAFUT
  142.     end
  143.     if @mode != mode
  144.       @state = :disappear if mode == 1
  145.       refresh if @state == :ready
  146.       @state = :coming if mode != 1
  147.       @mode = mode
  148.     end
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ● 更新窗口的消失效果
  152.   #--------------------------------------------------------------------------
  153.   def update_disappear
  154.     @background.opacity -= (255 / FADE) * 2
  155.     self.contents_opacity = @background.opacity
  156.     close if @background.opacity == 0
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 更新窗口的进入效果
  160.   #--------------------------------------------------------------------------
  161.   def update_coming
  162.     @background.opacity += 255/FADE
  163.     return unless @background.opacity > 170
  164.     @background.opacity += 255/FADE
  165.     self.contents_opacity += 255/FADE
  166.     self.x = [self.x - Graphics.width/FADE, X].max
  167.     return unless self.x == X && @background.opacity ==255 &&
  168.       self.contents_opacity == 255
  169.     @next_time = TIME
  170.     @state = :showing
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 更新窗口的离开效果
  174.   #--------------------------------------------------------------------------
  175.   def update_leaving
  176.     return unless @mode == 3
  177.     @background.opacity -= ( 255 / FADE )/2
  178.     self.contents_opacity -= 255 / FADE
  179.     self.x = [self.x + Graphics.width/FADE , Graphics.width].min
  180.     @state = :ready if @background.opacity <= 0
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 描绘窗口内容
  184.   #--------------------------------------------------------------------------
  185.   def refresh
  186.     contents.clear
  187.     return if $game_map.display_name == ""
  188.     creat_background_sprite
  189.     contents.font.name = FONT
  190.     contents.font.size = SIZE
  191.     contents.font.bold = BOLD
  192.     contents.font.italic = ITALIC
  193.     contents.font.outline = OUT
  194.     contents.font.shadow = SHADOW
  195.     contents.font.color = COLOR
  196.     contents.font.out_color = OUT_COLOR
  197.     draw_text_ex(0,0, $game_map.display_name)
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 打开窗口
  201.   #--------------------------------------------------------------------------
  202.   def open
  203.     refresh
  204.     self.x = Graphics.width
  205.     self.class.show_end = false
  206.     @mode = nil
  207.     self
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ● 关闭窗口
  211.   #--------------------------------------------------------------------------
  212.   def close
  213.     clear_all_flag
  214.     self
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 清除窗口的设置
  218.   #--------------------------------------------------------------------------
  219.   def clear_all_flag
  220.     self.x = Graphics.width
  221.     @state = :ready
  222.     @next_time = 0
  223.     self.contents_opacity = @background.opacity = 0
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● 释放
  227.   #--------------------------------------------------------------------------
  228.   def dispose
  229.     super
  230.     @background.dispose
  231.   end
  232. end
  233. end # M5MN20150508
  234. class Scene_Map
  235.   #--------------------------------------------------------------------------
  236.   # ● 生成地图窗口(※覆盖了原生窗口)
  237.   #--------------------------------------------------------------------------
  238.   alias m5_20150508_create_location_window create_location_window
  239.   def create_location_window
  240.     m5_20150508_create_location_window
  241.     @map_name_window.dispose
  242.     @map_name_window = M5MN20150508::Window_MapName.new
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● 窗口意外中断时的处理
  246.   #--------------------------------------------------------------------------
  247.   alias m5_20131130_terminate terminate
  248.   def terminate
  249.     m5_20131130_terminate
  250.     M5MN20150508::Window_MapName.show_end = true
  251.   end
  252. end
  253. class << DataManager
  254.   #--------------------------------------------------------------------------
  255.   # ● 关闭窗口意外中断的标志
  256.   #--------------------------------------------------------------------------
  257.   alias m5_20131130_setup_new_game setup_new_game
  258.   def setup_new_game
  259.     m5_20131130_setup_new_game
  260.     M5MN20150508::Window_MapName.show_end = false
  261.   end
  262.   alias m5_20131130_load_game load_game
  263.   def load_game(index)
  264.     result = m5_20131130_load_game(index)
  265.     M5MN20150508::Window_MapName.show_end = false
  266.     return result
  267.   end
  268. end
复制代码

评分

参与人数 2星屑 +225 收起 理由
feizhaodan + 180 奖赏条例
晴兰 + 45 精品文章

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
489 小时
注册时间
2014-8-14
帖子
102
12
发表于 2016-5-9 19:07:08 | 只看该作者
已下载!十分感谢!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
685
在线时间
661 小时
注册时间
2012-10-21
帖子
350
11
发表于 2014-1-11 18:11:15 | 只看该作者
喵呜喵5 发表于 2014-1-11 17:00
好的,我等下去看看

喵喵!
加咱QQ好么?
好想改脚本QAQ!
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21661
在线时间
9417 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

10
 楼主| 发表于 2014-1-11 17:00:40 | 只看该作者
bloodyliao 发表于 2014-1-11 14:42
为什么每次进入游戏没问题,但是载入存档就会出错……

好的,我等下去看看
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
685
在线时间
661 小时
注册时间
2012-10-21
帖子
350
9
发表于 2014-1-11 14:42:04 | 只看该作者
为什么每次进入游戏没问题,但是载入存档就会出错……

点评

是新存档  发表于 2014-1-11 18:10
脚本已修正,你看看现在BUG是否还会出现  发表于 2014-1-11 17:55
不是,是新档,新开档能正常运行,此时存档,会标题画面再载入也正常 但是,关闭游戏,在工程里面重新运行,载入就报错……  发表于 2014-1-11 16:55
载入的存档是没加入这个脚本前的旧存档么?  发表于 2014-1-11 16:47
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
68
在线时间
208 小时
注册时间
2013-8-8
帖子
1296
8
发表于 2013-9-28 21:40:01 | 只看该作者
本帖最后由 我在孤岛等你 于 2013-9-28 21:41 编辑

好吧我想说艾里克的家好奇葩!
还有能不能小一点?太大看上去怪那啥……

点评

已經沒在用了.... 你不要看一兩篇文章就這樣下定論......  发表于 2013-9-29 00:57
从字体到大小到颜色到阴影……在脚本开头那么多行的字体设置不要当摆设啊…  发表于 2013-9-28 22:52
我已经没有兴趣认真做游戏了……只能胡扯
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

7
发表于 2013-9-28 20:24:21 | 只看该作者

RE: 地图名显示美化

76213585 发表于 2013-9-27 06:27
換了个头像就不認得我了.....  昨天只是輸入法傲嬌......
是指在36行的说明內  你說"地图名的颜色,四个 ...

不,其实就是透明度(alpha)和opacity相反

点评

是不透明度 无论是alpha还是opacity都是指不透明度 怕混淆的话可以记为「存在感」  发表于 2013-9-29 12:26
恩... 我為了實驗調成了0 是透明了 所以應該是不透明度吧 在RUBY中好像沒有透明度的表示...?  发表于 2013-9-29 00:58

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
367
在线时间
1292 小时
注册时间
2013-1-12
帖子
3590

贵宾

6
发表于 2013-9-27 06:27:54 | 只看该作者
喵呜喵5 发表于 2013-9-26 02:33
Thanks : )
谢谢:)

換了个头像就不認得我了.....  昨天只是輸入法傲嬌......
是指在36行的说明內  你說"地图名的颜色,四个数值分别是R、G、B以及透明度"
其中的透明度應該是指不透明度.....

点评

对我来说这两个概念没区别…  发表于 2013-9-27 09:05

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
5
发表于 2013-9-26 23:59:06 手机端发表。 | 只看该作者
喵呜喵5 发表于 2013-9-26 17:33
Thanks : )
谢谢:)


他是剪刀手。85结尾的,就是他,错不了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

4
发表于 2013-9-26 22:09:20 | 只看该作者
本来这个小脚本没什么
重点是lz的回复太流弊了
(there's nothing difficult about the spirit but the comment LZ made, which is NB!)

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

3
发表于 2013-9-26 19:04:52 | 只看该作者
关于time神马的,@一下person应该可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-21 23:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表