注册会员 登录
Project1 返回首页

j433463的个人空间 https://rpg.blue/?312267 [收藏] [复制] [分享] [RSS]

日志

修改小筆記 part.2

已有 494 次阅读2013-1-11 21:07 |个人分类:腳本修改筆記

這是記錄自己修改心得的筆記,以防忘記,非我本人不可以私自轉貼,但在非商業性質下請隨便用在您的游戲中。

1. 雙行地圖名美化

 直接使用默認地圖名顯示 Window_Map 腳本做的美化版,改成置中顯示,並且使備註欄可以顯示雙行地圖名,字體放大,以水平線分隔。

 先在 Game_Map 腳本中,加上一段:

  #--------------------------------------------------------------------------
  # ● 取得地圖備註欄
  #--------------------------------------------------------------------------
  def note
    @map.note
  end

 用來調取地圖的備註欄內容。

 接下來,開啟 Window_MapName 腳本,把:

  super(0, 0, window_width, fitting_height(1))

 改成

  super(Graphics.width - window_width / 2, Graphics.height - fitting_height(4) / 2, window_width, fitting_height(4))

 增行它的顯示高度,並且把地圖名顯示位置放在畫面置中。

 然後改變視窗寬度和加上視窗高度:

def window_width
    return 480 # 240 <-原預設值
end

  #--------------------------------------------------------------------------
  # ● 取得視窗的高度
  #--------------------------------------------------------------------------
  def window_height
    return fitting_height(4)
  end

 再找到重新整理的 def refresh 方法,把

  draw_text(contents.rect, $game_map.display_name, 1)

 註解,其下另外加入幾行:

      #取得地圖備註欄中的地圖名
      $game_map.note.sub!(/<s_mapname:(.*?)>/i, "")
      s_mapname = $1.to_s
      make_font_bigger #字體大小 + 8
      line_font_height = 1.3
      if s_mapname != ""
        rect = Rect.new(0, line_height * 0.3,contents.width,line_height * line_font_height) #定義第一行的位置
        draw_text(rect, $game_map.display_name, 1) #在第一行畫出地圖的顯示名稱
        contents.fill_rect(0, line_height * 2, contents_width - 12 , 2, normal_color) #描繪水平線
        rect = Rect.new(0,line_height * 2.3,contents.width,line_height * line_font_height) #定義第二行的位置,為第一行往下一行
        draw_text(rect, s_mapname, 1) #$game_map.note, 1) #在第二行畫出地圖的備註名稱
      else
        rect = Rect.new(0, line_height * 1.3,contents.width,line_height * line_font_height) #定義第一行的位置
        draw_text(rect, $game_map.display_name, 1) #在第一行畫出地圖的顯示名稱
      end
      reset_font_settings #重置字體

 這樣,只要在地圖設置中的備註欄,使用 <s_mapname:XXXXXXXX> 的方式設置第二行的地圖名 XXXXXXXX 即可。

 備註欄有第二行地圖名時:


 無備註欄地圖名時:


 水平線可以改成用

  contents.gradient_fill_rect(32, line_height * 2, contents_width - 64 , 2, normal_color, system_color)

 來描畫,這是 VA 畫 HP, MP 血槽的方法,多了一個顏色設定,兩種顏色會從左到右漸變,此例是由白色到藍色,即 VA 默認 windowskin 顏色盤設置的第 0 色白色往第 16 色藍色漸變。

2. 在對話中途更改肖像和發出音效

 打开 Widnow_Base 默认脚本,找到:

  def process_escape_character(code, text, pos)
    case code.upcase
    when 'C'
      change_color(text_color(obtain_escape_param(text)))
    when 'I'
      process_draw_icon(obtain_escape_param(text), pos)
    when '{'
      make_font_bigger
    when '}'
      make_font_smaller
    end
  end

在最后的 make_font_smaller 下加上:

    when 'FC'
      change_message_face(text)

然后,上述最后 end 下加上一段:

  def change_message_face(text)
    draw_face($game_message.face_name, obtain_escape_param(text), 0, 0)
  end

好了,现在您可以在 \! 后面加上 \FC[n] 来换肖像了,n 是指那一张肖像图中的第 n 个肖像,第三个是 2,第一排最右边是 3,FC 大小写都可以。




 同樣的步驟,在 when 'FC' 的下方再加一個判斷
  when 'SE'
    play_message_se(text)

 在 def change_message_face(text) 之前再加上一段

  def play_message_se(text)
    text.slice!(/\[(.*?)\]|/i)
    Audio.se_play("Audio/SE/#{$1}", 80,100)
  end

 這樣就可以在 \FC[n] 後面再加上 \SE[聲效檔名] 控制符,達到在更換肖像的同時播放聲效了。

评论 (0 个评论)

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

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

GMT+8, 2024-4-26 04:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部