關於部落格
RPG製作大師XP腳本為主要更新

RPG製作大師VX腳本為其次更新

RPG製作大師VX_Ace目前不考慮

RPG製作大師MV腳本完全沒打算

留言完建議重新整理看看是否顯示

目前不處理本舖外腳本的相關問題

其他相關事項請觀看規定注意事項

本舖未來的經營計畫與VA的支援




var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-37462754-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

  • 305763

    累積人氣

  • 6

    今日人氣

    0

    追蹤人氣

【腳本】遊戲說明腳本

使用方法
打開腳本編輯器,對腳本「Main」按下右鍵,選擇插入,會出現1個空白腳本
在空白腳本內貼上以下腳本:

#=======================================
#★魔劍工舖 - 遊戲說明腳本
#發佈網址:http://blog.yam.com/a870053jjkj/article/16172508
#=======================================
#使用方法 :$scene = Sword_GameExplain.new(選項位置)

#選項位置從0開始為第1個選項,1為第2個選項,依此類推

#本篇就不提供使用者自定設置,這篇主要還是用於教學的使用範例而已
#基本上這個腳本都很基礎,基本上都不會太難修改和理解
#=======================================

#--------------------------------------------------------------
#☆ 內容顯示窗口
#--------------------------------------------------------------
class Sword_Dutiescontents < Window_Base
  def initialize
    super(160, 64, 480, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    # 條件:依據變量$sword_hmain的數值決定執行的內容
    case $sword_hmain
    #當變量數值為0時(表示選項第1個)
    when 0
      self.contents.draw_text(0, 0, 448, 32, "就是無意義內容", 0)
    #當變量數值為1時(表示選項第2個),以下依此類推
    when 1
      self.contents.draw_text(0, 0, 448, 32, "歡迎來參觀魔劍工舖?!", 0)
    when 2
      self.contents.draw_text(0, 0, 448, 32, "魔劍工舖的網址以下:", 0)
      self.contents.draw_text(0, 32, 448, 32, "http://blog.yam.com/a870053jjkj/", 0)
    when 3
      self.contents.draw_text(0, 0, 448, 32, "這裡1行基本上適合5個字", 0)
      self.contents.draw_text(0, 32, 448, 32, "如果6個字含以上會自動被壓縮", 0)
      self.contents.draw_text(0, 64, 448, 32, "壓縮後的字最多可顯示10個字", 0)
      self.contents.draw_text(0, 96, 448, 32, "第11個字不會顯示到", 0)
    when 4
      self.contents.draw_text(0, 0, 448, 32, "第1行", 0)
      self.contents.draw_text(0, 32, 448, 32, "第2行", 0)
      self.contents.draw_text(0, 64, 448, 32, "第3行", 0)
      self.contents.draw_text(0, 96, 448, 32, "第4行", 0)
      self.contents.draw_text(0, 128, 448, 32, "第5行", 0)
      self.contents.draw_text(0, 160, 448, 32, "第6行", 0)
      self.contents.draw_text(0, 192, 448, 32, "第7行", 0)
      self.contents.draw_text(0, 224, 448, 32, "第8行", 0)
      self.contents.draw_text(0, 256, 448, 32, "第9行", 0)
      self.contents.draw_text(0, 288, 448, 32, "第10行", 0)
      self.contents.draw_text(0, 320, 448, 32, "第11行,看來最多為12行", 0)
      self.contents.draw_text(0, 352, 448, 32, "第12行,第13行的字會被切", 0)
    when 5
      self.contents.draw_text(0, 0, 448, 32, "這裡1行基本上適合20個字", 0)
      self.contents.draw_text(0, 32, 448, 32, "如果21個字含以上會自動被壓縮", 0)
      self.contents.draw_text(0, 64, 448, 32, "壓縮後的字最多可顯示27個字", 0)
      self.contents.draw_text(0, 96, 448, 32, "第28個字雖然會顯示到,但會被切", 0)
    when 6
      self.contents.draw_text(0, 0, 448, 32, "這是第1行", 0)
      self.contents.draw_text(0, 64, 448, 32, "這是第3行,其實是在改Y座標..", 0)
      self.contents.draw_text(0, 352, 448, 32, "這是第12行", 0)
    when 7
      self.contents.draw_text(0, 0, 448, 32, "好天氣", 0)
      self.contents.draw_text(0, 0, 448, 32, "不容易", 0)
    when 8
      self.contents.font.color = text_color(1)
      self.contents.draw_text(0, 0, 448, 32, "這裡的顏色同對話框輸入\c[1]", 0)
      self.contents.font.color = text_color(2)
      self.contents.draw_text(0, 32, 448, 32, "這裡的顏色同對話框輸入\c[2]", 0)
      self.contents.draw_text(0, 64, 448, 32, "如果沒在改顏色,下行也是該顏色", 0)
      self.contents.font.color = text_color(3)
      self.contents.draw_text(0, 96, 448, 32, "顏色可以在Window_Base腳本修改", 0)
      self.contents.font.color = text_color(4)
      self.contents.draw_text(0, 128, 448, 32, "附註:第39行的位置!!", 0)
      self.contents.font.color = text_color(0)
      self.contents.draw_text(0, 160, 448, 32, "同一行內", 0)
      self.contents.font.color = text_color(6)
      self.contents.draw_text(88, 160, 448, 32, "可以用不同顏色", 0)
      self.contents.font.color = text_color(0)
      self.contents.draw_text(242, 160, 448, 32, "來表示", 0)
      self.contents.font.color = text_color(2)
      self.contents.draw_text(0, 192, 448, 32, "主要是更改X座標,而Y座標不變", 0)
      self.contents.font.color = text_color(4)
      self.contents.draw_text(0, 224, 448, 32, "平均1個中文字寬度為22", 0)
    when 9
      self.contents.font.bold = true
      self.contents.draw_text(0, 0, 448, 32, "文字變厚了,", 0)
      self.contents.font.bold = false #記得最後要使用,不然會影響到其他內容
      self.contents.draw_text(132, 0, 448, 32, "變回來了!!", 0)
    when 10
      self.contents.font.italic = true
      self.contents.draw_text(0, 0, 448, 32, "文字往右倒了,", 0)
      self.contents.font.italic = false #記得最後要使用,不然會影響到其他內容
      self.contents.draw_text(154, 0, 448, 32, "變回來了", 0)
    when 11
      self.contents.font.size = 30
      self.contents.draw_text(0, 0, 448, 32, "好大的字", 0)
      self.contents.font.size = 22
      self.contents.draw_text(0, 32, 448, 32, "一般大的字", 0)
      self.contents.font.size = 14
      self.contents.draw_text(0, 64, 448, 32, "好小的字", 0)
      self.contents.font.size = 70
      self.contents.draw_text(0, 96, 448, 72, "巨大的字", 0)
      self.contents.font.size = 22 #記得最後要使用,不然會影響到其他內容
    when 12
      self.contents.font.name = ["新細明體", "細明體"]
      self.contents.draw_text(0, 0, 448, 32, "這個是細明體喔!!", 0)
      self.contents.font.name = ["標楷體"] #記得最後要使用,不然會影響到其他內容
    when 13
      $game_variables[1] += 1
      self.contents.draw_text(0, 0, 448, 32, "變數1為:" + $game_variables[1].to_s, 0)
      self.contents.draw_text(0, 32, 448, 32, "每顯示這框框1次變數就+1喔!!", 0)
      self.contents.draw_text(0, 64, 448, 32, "要顯示變數時,後面要加.to_s喔", 0)
    when 14
      self.contents.blt(0, 0, RPG::Cache.icon("036-Item05"), Rect.new(0, 0, 640, 448), 255)
      self.contents.draw_text(24, 0, 448, 32, "顯示圖片成功", 0)
      self.contents.draw_text(0, 32, 448, 32, "圖片路徑為:", 0)
      self.contents.draw_text(0, 64, 448, 32, "你的遊戲資料夾\Graphics\Icons\", 1)
      self.contents.draw_text(0, 96, 448, 32, "文字中必須輸入2個斜線才會顯示斜線", 0)
      self.contents.draw_text(0, 128, 448, 32, "圖片透明化:", 0)
      self.contents.blt(136, 128, RPG::Cache.icon("036-Item05"), Rect.new(0, 0, 640, 448), 100)
    when 15
      self.contents.draw_text(0, 0, 448, 32, "文字靠左", 0)
      self.contents.draw_text(0, 32, 448, 32, "文字置中", 1)
      self.contents.draw_text(0, 64, 448, 32, "文字靠右", 2)
    when 16
      self.contents.fill_rect(0, 0, 44, 32, Color.new(255, 0, 0))
      self.contents.fill_rect(220, 0, 44, 32, Color.new(0, 255, 0))
      self.contents.draw_text(0, 0, 448, 32, "填充內容,可用於製作血條喔!!", 0)
    when 17
      self.contents.draw_text(0, 0, 448, 32, "以上各種窗口文字效果範例", 0)
      self.contents.draw_text(0, 32, 448, 32, "如還有問題歡迎來發問!!", 0)
      self.contents.draw_text(0, 64, 448, 32, "http://blog.yam.com/a870053jjkj/", 0)
    end
  end
end

#--------------------------------------------------------------
#☆ 遊戲說明畫面
#--------------------------------------------------------------

class Sword_GameExplain
  # 該方法用來取得呼叫腳本時指定的選項位置,並存在menu_index之中
  # 如果沒指定,則視為0

  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def main
    # 初始選項位置之用
    $sword_hmain = @menu_index
    # []包你來的內容為數組,如沒用]符號表示數組結束,下行也算該數組內容
    hmain = ["沒意義內容", "打廣告", "換行", "左框能多少字", "右框能多少行",
    "右框能多少字", "換多行", "文字合體", "文字顏色", "文字粗體",
    "文字斜體", "文字大小", "改變字體", "顯示變數", "顯示圖片",
    "文字位置", "文字背景色", "結語"]
    @commanda_window = Window_Command.new(160, hmain)
    @commanda_window.index = @menu_index
    @commanda_window.y = 64
    @commanda_window.height = 416
    @contents_window = Sword_Dutiescontents.new
    @help_window = Window_Help.new
    @help_window.set_text("說明窗口範例")
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      # 呼叫方法update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    # 釋放窗口(將所有此畫面的窗口關閉,防止留在畫面上)
    @commanda_window.dispose
    @contents_window.dispose
    @help_window.dispose
  end
  def update
    # 更新窗口(主要是更新選項指標的效果)
    @commanda_window.update
    @contents_window.update
    @help_window.update
    # 條件:取消鍵被按下時回到地圖畫面
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    # 條件:確定鍵被按下時回到地圖畫面
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    # 當上或下按下(含按住)時,執行update_cgty方法
    if Input.repeat?(Input::UP)
      update_cgty
      return
    end
    if Input.repeat?(Input::DOWN)
      update_cgty
      return
    end
  end
  #用於更新窗口內容的方法
  def update_cgty
    #獲取選項位置代入變量$sword_hmain
    $sword_hmain = @commanda_window.index
    #呼叫變量@contents_window中的類的refresh方法來更新窗口
    @contents_window.refresh
  end
end

 

呼叫方法

可以使用事件中的 [腳本] 事件貼上以下腳本來進行呼叫
$scene = Sword_GameExplain.new(選項位置)
選項位置如果輸入0,則呼叫遊戲說明腳本時,選項指標位置出現在第1個
選項位置如果輸入1,則呼叫遊戲說明腳本時,選項指標位置出現在第2個
如果不輸入(含括號也要刪除),則視同為輸入0
 

 
修改說明
新增選項
腳本152行發現以下腳本:
hmain = ["沒意義內容", "打廣告", "換行", "左框能多少字", "右框能多少行", 
"右框能多少字", "換多行", "文字合體", "文字顏色", "文字粗體", 
"文字斜體", "文字大小", "改變字體", "顯示變數", "顯示圖片", 
"文字位置", "文字背景色", "結語"]
這裡是設定選項的文字之用,文字必須被"符號包圍住
每個選項必須用小逗號(,)來分開,在[ ]裡面的內容才算成立
比如說,你要在「文字合體」選項下面添加「遊戲說明」時
可在【"文字合體", 】右邊插入【"遊戲說明", 】,如下:
hmain = ["沒意義內容", "打廣告", "換行", "左框能多少字", "右框能多少行", 
"右框能多少字", "換多行", "文字合體", "遊戲說明", "文字顏色", "文字粗體", 
"文字斜體", "文字大小", "改變字體", "顯示變數", "顯示圖片", 
"文字位置", "文字背景色", "結語"]
 
新增選項內容
如果只新增選項沒設定內容的話,其顯示的內容會錯亂,所以必須新增內容
假設已經新增了「遊戲說明」在「文字合體」下面之時
腳本63行發現以下腳本:
when 7
  self.contents.draw_text(0, 0, 448, 32, "好天氣", 0)
  self.contents.draw_text(0, 0, 448, 32, "不容易", 0)
這個是當選項在第8個位置時(啥?為什麼是第8個?請看27行和30行的註釋...)
也就是設定選項第8個的顯示內容(選項第8個為文字合體)
由於你已經新增了「遊戲說明」的選項了,則「文字顏色」的內容就會被取代
我這樣說可能說不清處,看以下的解說範例吧
插入選項之前插入選項之後
選項一顯示【when 0】的內容
選項二顯示【when 1】的內容
選項三 → 顯示【when 2】的內容
選項四 → 顯示【when 3】的內容
選項五 → 顯示【when 4】的內容
選項一顯示【when 0】的內容
選項二顯示【when 1】的內容
新選項 → 顯示【when 2】的內容
選項三 → 顯示【when 3】的內容
選項四 → 顯示【when 4】的內容
選項五
以上範例中可以看出來「新選項」取代了「選項三」的內容
然後又惡性循環的讓「選項三」取代了「選項四」的內容
依此類推直到最後的選項,「選項五」的內容會變成未設定,而為無內容
回歸正題,在不刪掉其他的內容下新增選項時,可以在下方插入腳本
when 8
 
#★這裡設置「遊戲說明」選項的顯示內容
然後再將這個腳本下面的【when 8】、【when 9】、【when 10】...(省略)
的數值都加1即可
 
一開始不顯示內容
腳本150行發現腳本【$sword_hmain = @menu_index
把這行改成【$sword_hmain = nil
主要是再生窗口以前設置要顯示的內容,然後再產生窗口時進行判定
@menu_index為呼叫腳本時指定的選項開始位置,nil就當成是空就好了
 
將自動更新內容改成按鍵更新內容
腳本190行發現以下腳本:
    # 條件:確定鍵被按下時回到地圖畫面
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    # 當上或下按下(含按住)時,執行update_cgty方法
    if Input.repeat?(Input::UP)
      update_cgty
      return
    end
    if Input.repeat?(Input::DOWN)
      update_cgty
      return
    end
  end
只要把按「上」或按「下」的場合移到按下「確定鍵」的場合即可
必刪掉沒有必要的部份...如返回地圖畫面【$scene = Scene_Map.new
還有「上」、「下」的場合全部刪除即可
    # 條件:確定鍵被按下時回到地圖畫面
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.cancel_se)
      update_cgty
      return
    end
    # 當上或下按下(含按住)時,執行update_cgty方法(已經刪除
 

相簿設定
標籤設定
相簿狀態