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

Project1

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

[RMVA发布] VX移植VA地图名显示脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2012-7-23
帖子
23
跳转到指定楼层
1
 楼主| 发表于 2013-2-21 11:59:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 白灵卿 于 2013-2-24 13:31 编辑

原日站的一个VX脚本,目前被我移植到了VA上。下面的RGSS2说明是作者的注释,里面有说这
个脚本的功能。脚本行那边的注释也很有用。各位若懂日语可以看一下。我这里简单说一下,
首先是可以自行更改显示位置以及显示字体,可以到中间显示,可以显示为斜体等等,要更
改的话可以直接参考下注释,机翻的话也应该能看懂,十分方便(・ω・)っ另外,还可以达到脚
本中添加注释的功能。地图名里写了“#”的话“#”的后面都不会显示。更多具体的功能,还是
看一下作者的注释吧w
适合解谜游戏中房间多的游戏,当玩家不知道这是什么房间的时候只要停下来就可以看房间名
了。
  1. #==============================================================================
  2. # ★RGSS3
  3. # VA移植说明
  4. =begin
  5.   本脚本是在RGSS2的基础上改编完成的
  6.     会达到不走动时显示地图名的效果
  7.       ID白灵卿 (Yo)完成
  8.   转载或使用请注明改编者和出处
  9.   
  10. =end
  11. #==============================================================================

  12. #==============================================================================
  13. # ★RGSS2
  14. # STR04_マップネーム表示 v1.1 09/03/17
  15. #
  16. # ・マップ画面にマップ名を表示します。
  17. # ・文字を縦グラデーション描画可能。
  18. # ☆マップ名のコメントアウト(?)機能付き。
  19. #  マップ名の"#"以降の文字をカットして表示します。
  20. #  (例) 炎の洞窟/二階#小部屋その1 → 炎の洞窟/二階
  21. # ・イベント中、歩行中に非表示にすることが出来ます。
  22. #------------------------------------------------------------------------------
  23. #
  24. # 更新履歴
  25. # ◇1.0→1.1
  26. # 入手インフォの下に表示される不具合を修正
  27. # デフォルトの設定を変更
  28. #
  29. #==============================================================================
  30. # ■ Sprite_Strmapname
  31. #==============================================================================
  32. class Sprite_Strmapname < Sprite
  33.   # マップネーム表示位置
  34.   TEXT_RECT = Rect.new(20, 16, 240, 20)           # 左揃い
  35.   #TEXT_RECT = Rect.new(272-160, 16, 320, 24)     # 中央揃い
  36.   #TEXT_RECT = Rect.new(544-336, 416-40, 320, 24  # 右揃い
  37.   # フォントネーム
  38.   TEXT_FONT = ["UmePlus Gothic", "MS Pゴシック"] # UmePlus優先
  39.   #TEXT_FONT = ["MS Pゴシック", "UmePlus Gothic"]  # MSPゴシック優先
  40.   # テキストサイズ
  41.   TEXT_SIZE = 17
  42.   # 文字装飾 [マップネーム前の文字,マップネーム後ろの文字]
  43.   TEXT_TEXT = [" ", ""]
  44.   # 文字揃え 0:左揃い 1:中央揃い 2:右揃い
  45.   TEXT_ALIGN =0
  46.   # テキスト縁取り true = 有効 false = 無効
  47.   TEXT_FRAME = true
  48.   # テキストグラデーション(縦) true = 有効 false = 無効
  49.   TEXT_GRADIENT = true
  50.   # テキストカラー [グラデーション↑,グラデーション↓,縁取り]
  51.   TEXT_COLOR = [Color.new(255,255,255), Color.new(160,224,255), Color.new(32,32,32)]
  52.   # 斜体・太字 true = 有効 false = 無効
  53.   TEXT_ITAL = false
  54.   TEXT_BOLD = false
  55.   # 簡易背景表示 true = 有効 false = 無効
  56.   TEXT_BACK = true
  57.   # 背景色 [グラデーション濃,グラデーション薄]
  58.   TEXT_B_COLOR = [Color.new(0,0,0,160), Color.new(0,0,0,0)]
  59.   # イベント中は非表示にする true = 有効 false = 無効
  60.   TEXT_EVENT_V = true
  61.   # プレイヤー移動中は非表示にする true = 有効 false = 無効
  62.   TEXT_PMOVE_V = true
  63.   # マップネームのコメントアウト文字 デフォルトは "#"
  64.   TEXT_C_OUT = "#"
  65.   #--------------------------------------------------------------------------
  66.   # ● オブジェクト初期化
  67.   #--------------------------------------------------------------------------
  68.   def initialize(viewport)
  69.     super(viewport)
  70.     t = TEXT_TEXT[0] + map_name(TEXT_C_OUT) + TEXT_TEXT[1]
  71.     self.visible = false if map_name(TEXT_C_OUT) == ""
  72.     r = TEXT_RECT
  73.     h = TEXT_SIZE + 2
  74.     bitmap = Bitmap.new(r.width, r.height)
  75.     # 背景描画
  76.     if TEXT_BACK
  77.       case TEXT_ALIGN
  78.       when 0
  79.         bitmap.gradient_fill_rect(16, 0, r.width-32, r.height, TEXT_B_COLOR[0], TEXT_B_COLOR[1])
  80.         bitmap.gradient_fill_rect(0, 0, 16, r.height, TEXT_B_COLOR[1], TEXT_B_COLOR[0])
  81.       when 1
  82.         bitmap.gradient_fill_rect(r.width/2, 0, r.width/2, r.height, TEXT_B_COLOR[0], TEXT_B_COLOR[1])
  83.         bitmap.gradient_fill_rect(0, 0, r.width/2, r.height, TEXT_B_COLOR[1], TEXT_B_COLOR[0])
  84.       when 2
  85.         bitmap.gradient_fill_rect(r.width-16, 0, 16, r.height, TEXT_B_COLOR[0], TEXT_B_COLOR[1])
  86.         bitmap.gradient_fill_rect(32, 0, r.width-48, r.height, TEXT_B_COLOR[1], TEXT_B_COLOR[0])
  87.       end
  88.     end
  89.     # フォント設定
  90.     bitmap.font.name = TEXT_FONT
  91.     bitmap.font.size = TEXT_SIZE
  92.     bitmap.font.italic = TEXT_ITAL
  93.     bitmap.font.bold = TEXT_BOLD
  94.     # 縁取り
  95.     bitmap.font.shadow = false
  96.     if TEXT_FRAME
  97.       bitmap.font.color = TEXT_COLOR[2]
  98.       bitmap.draw_text(-1, 0, r.width, h, t, TEXT_ALIGN)
  99.       bitmap.draw_text(1, 0, r.width, h, t, TEXT_ALIGN)
  100.       bitmap.draw_text(0, 1, r.width, h, t, TEXT_ALIGN)
  101.       bitmap.draw_text(0, -1, r.width, h, t, TEXT_ALIGN)
  102.       bitmap.draw_text(+1, +1, r.width, h, t, TEXT_ALIGN)
  103.     else
  104.       bitmap.font.shadow = true
  105.     end
  106.     # 文字A
  107.     b1 = Bitmap.new(r.width, r.height)
  108.     # フォント設定
  109.     b1.font.name = TEXT_FONT
  110.     b1.font.size = TEXT_SIZE
  111.     b1.font.italic = TEXT_ITAL
  112.     b1.font.bold = TEXT_BOLD
  113.     b1.font.color = TEXT_COLOR[0]
  114.     b1.draw_text(0, 0, r.width, h, t, TEXT_ALIGN)
  115.     bitmap.font.shadow = false
  116.     src = Rect.new(0, 0, r.width, r.height)
  117.     d = Rect.new(0, 0, r.width, r.height)
  118.     bitmap.stretch_blt(d, b1, src)
  119.     # 文字B
  120.     if TEXT_GRADIENT
  121.       b2 = Bitmap.new(r.width, r.height)
  122.       # フォント設定
  123.       b2.font.name = TEXT_FONT
  124.       b2.font.size = TEXT_SIZE
  125.       b2.font.italic = TEXT_ITAL
  126.       b2.font.bold = TEXT_BOLD
  127.       b2.font.color = TEXT_COLOR[1]
  128.       b2.draw_text(0, 0, r.width, h, t, TEXT_ALIGN)
  129.       y = TEXT_SIZE + 4
  130.       src.height = 1
  131.       d.height = 1
  132.       # グラデーション
  133.       for yy in 1..y
  134.         op = 260 * (yy/(y*1.0))
  135.         src.y = yy
  136.         d.y = yy
  137.         bitmap.stretch_blt(d, b2, src, op)
  138.       end
  139.     end
  140.     self.bitmap = bitmap
  141.     self.x = r.x
  142.     self.y = r.y
  143.     self.z = 240
  144.     [url=home.php?mod=space&uid=316553]@opacity[/url] = 0
  145.     self.opacity = @opacity
  146.     update
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 解放
  150.   #--------------------------------------------------------------------------
  151.   def dispose
  152.     if self.bitmap != nil
  153.       self.bitmap.dispose
  154.     end
  155.     super
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● フレーム更新
  159.   #--------------------------------------------------------------------------
  160.   def update
  161.     if ($game_map.interpreter.running? and TEXT_EVENT_V) or (moving? and TEXT_PMOVE_V)
  162.       @opacity = [[@opacity - 32, -64].max, 256].min
  163.     else
  164.       @opacity = [[@opacity + 32, -64].max, 256].min
  165.     end
  166.     self.opacity = @opacity
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● 移動判定
  170.   #--------------------------------------------------------------------------
  171.   def moving?
  172.     return (not $game_player.stopping?)
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● マップネーム取得
  176.   #--------------------------------------------------------------------------
  177.   def map_name(out)
  178.     n = $game_map.map_name.split('')
  179.     t = ""
  180.     for i in 0...n.size
  181.       break if n[i] == out
  182.       t += n[i]
  183.     end
  184.     return t
  185.   end
  186. end
  187. #==============================================================================
  188. # ■ Spriteset_Map
  189. #==============================================================================
  190. class Spriteset_Map
  191.   #--------------------------------------------------------------------------
  192.   # ★ 追加
  193.   #--------------------------------------------------------------------------
  194.   def create_strmapname
  195.     @str_mapname = Sprite_Strmapname.new(@viewport2)
  196.   end
  197.   def dispose_strmapname
  198.     @str_mapname.dispose
  199.   end
  200.   def update_strmapname
  201.     @str_mapname.update
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ★ エイリアス
  205.   #--------------------------------------------------------------------------
  206.   alias initialize_str04 initialize
  207.   def initialize
  208.     create_strmapname
  209.     initialize_str04
  210.   end
  211.   alias dispose_str04 dispose
  212.   def dispose
  213.     dispose_str04
  214.     dispose_strmapname
  215.   end
  216.   alias update_str04 update
  217.   def update
  218.     update_str04
  219.     update_strmapname
  220.   end
  221. end
  222. #==============================================================================
  223. # ■ Game_Map
  224. #==============================================================================
  225. class Game_Map
  226.   #--------------------------------------------------------------------------
  227.   # ★ 追加
  228.   #--------------------------------------------------------------------------
  229.   def map_name
  230.     map = load_data("Data/MapInfos.rvdata2")
  231.     return map[@map_id].name
  232.   end
  233. end
复制代码
下面一张浏览图:


附增一个范例工程:
百度网盘:http://pan.baidu.com/share/link?shareid=360870&uk=2953481629
脚本如果有什么问题请回复……

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2013-2-1
帖子
108
2
发表于 2013-2-23 17:30:07 | 只看该作者
231行报错,我去

点评

没有错啊……VA的地图属性就是rvdata2,你不会用到VX上了吧?  发表于 2013-2-24 13:11
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

卑微的梦

梦石
0
星屑
523
在线时间
820 小时
注册时间
2013-2-23
帖子
1185

短篇九勇士组季军

3
发表于 2013-2-23 19:44:53 | 只看该作者
怎么用?

点评

复制全部脚本内容,然后粘帖到VA的脚本库里,注意不要放到Main下……  发表于 2013-2-24 13:12
直接插入就行了啊  发表于 2013-2-24 13:10
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2013-2-1
帖子
108
4
发表于 2013-2-24 13:41:41 | 只看该作者
不可能我连VX都没下载就是报错?

点评

哦  发表于 2013-2-24 15:32
你把范例工程下载吧,反正我那是没有问题的。你再看看你的231行有没有加了别的东西。  发表于 2013-2-24 15:30
家里电脑抽,无图  发表于 2013-2-24 14:55
脚本“地图名称”第231行:发生SyntaxError unknown regexp options - MapIf  发表于 2013-2-24 14:53
它报错什么了?可以截个图吗?  发表于 2013-2-24 14:07
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2013-2-1
帖子
108
5
发表于 2013-3-8 21:10:51 | 只看该作者
话说楼主这脚本显示的是备注名称啊
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
45
在线时间
138 小时
注册时间
2011-11-15
帖子
216
6
发表于 2013-3-16 13:33:32 | 只看该作者
显示的名字,备注里的,弄了半天,还是范例里找到的答案
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
7
发表于 2013-3-16 16:47:13 | 只看该作者
本帖最后由 j433463 于 2013-3-16 16:49 编辑

拜托,VX 不像 VA 有两个填地图名称的栏,它只有一个地图名栏,当然改过来的是用第一个备注名称了,自己去把脚本中 def map_name 的

    n = $game_map.map_name.split('')

改成

    n = $game_map.display_name.split('')

这样就能取显示名称栏内的地图名了,很正常的情况,有必要这样嫌吗?楼主移植也是辛苦一把的,给点鼓励吧。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 06:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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