OX論壇
Would you like to react to this message? Create an account in a few clicks or log in to continue.

內建選單的介面修改問題~

2 posters

向下

內建選單的介面修改問題~ Empty 內建選單的介面修改問題~

發表  萌八老師 周五 8月 22, 2008 2:25 am

個人最近在玩RGSS,不過內建選單有個選項是「步數」的計算,個人覺得那實在是太多餘了0_0,遊戲中給玩家觀看走了幾步根本完全沒意義.....

不過我修改內建的東西老是導致整個遊戲開不了||||
麻煩愚大幫我解決,不好意思^^"

內建的選單
內建選單的介面修改問題~ 1231-2



我想要把「步數」欄給拿掉,改成
內建選單的介面修改問題~ 1232



※想問一個小問題,RMXP的臉圖顯示各位都是用內建的「顯示圖片」來用的嗎0w0?


---------------------------------------------------------


另外RGSS的衝突,有些是在遊戲過程中才會發生,個人的RGSS都是拿6R的去玩,如果遊戲作到中途或快完成卻發生衝突的話,那麼就會整個白費了|||||

感覺用RMXP作遊戲,有時候會不經意的埋了顆定時炸彈Q口Q
萌八老師
萌八老師
運送彩色內褲的貨車司機
運送彩色內褲的貨車司機

文章數 : 82
注冊日期 : 2008-05-18

回頂端 向下

內建選單的介面修改問題~ Empty 回復: 內建選單的介面修改問題~

發表  愚零鬥武多 周五 8月 22, 2008 10:38 am

萌八老師 寫到:個人最近在玩RGSS,不過內建選單有個選項是「步數」的計算,個人覺得那實在是太多餘了0_0,遊戲中給玩家觀看走了幾步根本完全沒意義.....

不過我修改內建的東西老是導致整個遊戲開不了||||
麻煩愚大幫我解決,不好意思^^"

內建的選單
https://2img.net/h/i233.photobucket.com/albums/ee282/33322157/1231-2.png



我想要把「步數」欄給拿掉,改成
https://2img.net/h/i233.photobucket.com/albums/ee282/33322157/1232.png



※想問一個小問題,RMXP的臉圖顯示各位都是用內建的「顯示圖片」來用的嗎0w0?


---------------------------------------------------------


另外RGSS的衝突,有些是在遊戲過程中才會發生,個人的RGSS都是拿6R的去玩,如果遊戲作到中途或快完成卻發生衝突的話,那麼就會整個白費了|||||

感覺用RMXP作遊戲,有時候會不經意的埋了顆定時炸彈Q口Q

你要的效果(請在Main之前以新增腳本的方式將下列腳本貼上)
代碼:

#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
# 顯示金錢的視窗。
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化視窗
  #--------------------------------------------------------------------------
  def initialize
    if $scene.is_a?(Scene_Menu)
      super(0, 0, 160, 128)
    else
      super(0, 0, 160, 64)
    end
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if $scene.is_a?(Scene_Menu)
      self.contents.font.color = system_color
      self.contents.draw_text(4, 10, 128, 32, "金幣", 0) 
    end
    gy = $scene.is_a?(Scene_Menu) ? 50 : 0
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, gy, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, gy, cx, 32, $data_system.words.gold, 2)
  end
end
#==============================================================================
# ■ Window_PlayTime
#------------------------------------------------------------------------------
# 選單畫面顯示遊戲時間的視窗。
#==============================================================================

class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化目標
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 10, 120, 32, "遊戲時間")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 50, 120, 32, text, 2)
  end
end
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
# 處理選單畫面的類別。
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # ● 初始化目標
  #    menu_index : 命令游標的初期位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ● 主處理
  #--------------------------------------------------------------------------
  def main
    # 製作命令視窗
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "狀態"
    s5 = "存檔"
    s6 = "結束遊戲"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    # 同伴人數為 0 的情況下
    if $game_party.actors.size == 0
      # 物品、特技、裝備、狀態無效化
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # 禁止存檔的情況下
    if $game_system.save_disabled
      # 存檔無效
      @command_window.disable_item(4)
    end
    # 製作遊戲時間視窗
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    # 製作金錢視窗
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 352
    # 製作狀態視窗
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # 執行過渡
    Graphics.transition
    # 主循環
    loop do
      # 更新遊戲畫面
      Graphics.update
      # 更新輸入訊息
      Input.update
      # 更新畫面
      update
      # 如果切換畫面就中斷循環
      if $scene != self
        break
      end
    end
    # 準備過渡
    Graphics.freeze
    # 釋放視窗所佔的記憶體空間
    @command_window.dispose
    @playtime_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 更新畫面
  #--------------------------------------------------------------------------
  def update
    # 更新視窗
    @command_window.update
    @playtime_window.update
    @gold_window.update
    @status_window.update
    # 命令視窗被啟動的情況下: 取用 update_command
    if @command_window.active
      update_command
      return
    end
    # 狀態視窗被啟動的情況下: 取用 update_status
    if @status_window.active
      update_status
      return
    end
  end
end

RMXP的臉圖,因為顯示圖片是對話框會壓在臉圖上,所以一般使用者都是用RGSS搞....
我也覺得很納悶,把臉圖跟自製對話框都做成圖片,然後對話框不顯示一樣可以達到效果....
但不知為何大家還是喜歡用腳本,可能這樣對文字的一些特效功能較齊全吧

另外提到RMXP像是炸彈怕最後衝突毀了全部遊戲企劃的問題....這點我是覺得安啦免驚啦!
像以往RM2003看不爽選單?抱歉你要自己弄自創選單,而且還無法完全脫離按出內建選單
RMXP或RMVX只要花極短的時間就能橋好選單位置
設計成讓使用者直接去編輯RGSS CODE就等於開放進入遊戲核心修改,優勢就是開發速度與效率

所有就算出現衝突她會很明顯的指出是哪裡哪一段CODE衝突,不像2003必須自己在茫茫的變數與開關海中找尋出錯的地方
我反而覺得2003一開始如果設計方向錯後來要Debug工程比較浩大囧....
所以RMXP就算發生衝突也不會導致你的遊戲全盤泡湯,只要找個懂的人幫你查一下很快就能修復
除非你用到功能重疊的腳本衝突,例如你放了即時戰鬥和非即時戰鬥,兩種都是戰鬥腳本才有可能無解
遇到這種情形只能擇一放棄其中一種就能解決....除此之外一般性的腳本衝突幾乎沒遇過不能解決的
愚零鬥武多
愚零鬥武多
不正常人類研究中心自慰隊員
不正常人類研究中心自慰隊員

文章數 : 421
注冊日期 : 2008-04-06

回頂端 向下

內建選單的介面修改問題~ Empty 回復: 內建選單的介面修改問題~

發表  萌八老師 周五 8月 22, 2008 7:17 pm

謝謝愚大的幫忙,我以為只是修改內建選單RGSS就可以達到,沒想到反而麻煩到愚大寫RGSS

雖然跟我之前用的選單RGSS有衝突到,不過在下研究了一番應該是解決了吧 囧!?


另外臉圖顯示也是要用RGSS?
如果連對話框也要用圖片顯示,到時候對話完要整個消除掉,或著中間劇情人物會有遲疑的舉動或要用表情符號也要先消除掉,感到有點麻煩.....


不過RMXP的內建素材怎麼都是英文阿=口=,每次都要一個一個慢慢找才能找到要的素材......
話說 我回文看到後面時 你的簽名圖嚇到我了......
萌八老師
萌八老師
運送彩色內褲的貨車司機
運送彩色內褲的貨車司機

文章數 : 82
注冊日期 : 2008-05-18

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章