創作內容

3 GP

【腳本】遊戲介面變更

作者:幻滅o空│2012-07-01 18:54:50│贊助:6│人氣:686
今天發布的腳本,是這篇的內容,
由於符合原文作者的的意思,
而沒有將技能數量設成自行設置。


#==============================================================================
#----------------------------------------------------------------------------
# ○ OSD - 腳本討論社
# Originality RGSS Discuss
# └http://guild.gamer.com.tw/guild.php?sn=4707
#----------------------------------------------------------------------------
#==============================================================================
#--------------------------------------------------------------------------
# ● 腳本名稱:簡單介面改造
#--------------------------------------------------------------------------
# ● 腳本效果:
# 改造:頭像、能力值條、10 個技能圖片
#--------------------------------------------------------------------------
# ● 腳本版本:V1.00版
#--------------------------------------------------------------------------
# ● 腳本更新區塊:
# (None)
#--------------------------------------------------------------------------
#==============================================================================

module Map_GUI

#==================自行定義區==================#
# 頭像是 Face 資料夾內的 JPG 圖檔,請以角色編號來命名。
# (Face 資料夾要自己在 Graphics 資料夾內創建)
# 設定血條的檔案路徑
HP_pict = "Graphics/Pictures/HP.jpg"
# 設定精力條的檔案路徑
SP_pict = "Graphics/Pictures/MP.jpg"
# 設定頭像在血條與精力條的左方(left),或者右方(right)
Head_position = "left"
# 設定技能的變數(第一項設定第一個技能的編號,以此類推)
# 只要變數值為 0,就不會顯示圖片
Skill_variables = [11, 12, 13, 14,15,16,17,18,19,20]
# 設定技能圖的 Y 軸偏移,若為 0,
# 技能下方靠齊畫面下方,若值越大,
# 技能圖示就越往畫面上方靠齊。
Dift = 6
# 設定顯示在技能圖上的按鍵名稱──這只有顯示的效果,
# 請額外搭配 ARPG 腳本。
# 另外,技能圖示上顯示的按鍵名稱,是小的白色字體。
Skill_inputs = ["A","S","D","F","G","H","J","K","L",";"]
# 設定開關的編號,當這開關關起來時不顯示
Switch = 50
#==================自定義結束==================#

end
#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
# 處理系統附屬資料的類別。也可執行諸如 BGM 管理類別的功能。
# 本類別的實例請參考 $game_system 。
#==============================================================================

class Game_System
attr_accessor :skill
attr_accessor :skill_inputs
attr_accessor :skill_changed
alias :original_initialize :initialize
def initialize
@skill = [1,1,1,1,1,1,1,1,1,1]
@skill_inputs = Map_GUI::Skill_inputs
@skill_changed = false
original_initialize
end
end

#==============================================================================
# ■ Game_Variables
#------------------------------------------------------------------------------
# 處理變數的類別。編入的是 Array 類別的外觀。
# 本類別的實例請參考 $game_variables。
#==============================================================================

class Game_Variables
#--------------------------------------------------------------------------
# ● 設定變數
# variable_id : 變數 ID
# value : 變數的值
#--------------------------------------------------------------------------
def []=(variable_id, value)
var = Map_GUI::Skill_variables
if variable_id == var[0] or variable_id == var[1] or variable_id == var[2] or
variable_id == var[3] or variable_id == var[4] or variable_id == var[5] or
variable_id == var[6] or variable_id == var[7] or variable_id == var[8] or
variable_id == var[9]
@data[variable_id] = value
case variable_id
when var[0]
$game_system.skill[0] = value
when var[1]
$game_system.skill[1] = value
when var[2]
$game_system.skill[2] = value
when var[3]
$game_system.skill[3] = value
when var[4]
$game_system.skill[4] = value
when var[5]
$game_system.skill[5] = value
when var[6]
$game_system.skill[6] = value
when var[7]
$game_system.skill[7] = value
when var[8]
$game_system.skill[8] = value
when var[9]
$game_system.skill[9] = value
end
$game_system.skill_changed = true
elsif variable_id <= 5000
@data[variable_id] = value
end
end
end

#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 處理地圖畫面的類別。
#==============================================================================
# 在UPDATE中增加SKILL_CHANGED的判斷
class Scene_Map
def main
# 建立 Sprite Array
@pictures = [nil]
(1..13).each {|i|
# 增加 Sprite 實例到 @pictures
@pictures.push(Sprite.new)
@pictures[i].z = 6000
@pictures[i].opacity = 150 if i <= 3
}
@pictures[1].bitmap = Bitmap.new("Graphics/Faces/#{$game_party.actors[0].id}.jpg") if File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[2].bitmap = Bitmap.new(Map_GUI::HP_pict) if Map_GUI::HP_pict.size != 0
@pictures[3].bitmap = Bitmap.new(Map_GUI::SP_pict) if Map_GUI::SP_pict.size != 0
@pictures[4].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[0]].icon_name}") if $game_system.skill[0] != 0
@pictures[5].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[1]].icon_name}") if $game_system.skill[1] != 0
@pictures[6].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[2]].icon_name}") if $game_system.skill[2] != 0
@pictures[7].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[3]].icon_name}") if $game_system.skill[3] != 0
@pictures[8].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[4]].icon_name}") if $game_system.skill[4] != 0
@pictures[9].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[5]].icon_name}") if $game_system.skill[5] != 0
@pictures[10].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[6]].icon_name}") if $game_system.skill[6] != 0
@pictures[11].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[7]].icon_name}") if $game_system.skill[7] != 0
@pictures[12].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[8]].icon_name}") if $game_system.skill[8] != 0
@pictures[13].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[9]].icon_name}") if $game_system.skill[9] != 0
# 若頭像在能力值介面左邊
if Map_GUI::Head_position == "left"# && File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[2].x = @pictures[1].bitmap.width if Map_GUI::HP_pict.size != 0 && File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[3].x = @pictures[1].bitmap.width if Map_GUI::SP_pict.size != 0 && File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[3].y = @pictures[2].bitmap.height if Map_GUI::SP_pict.size != 0
# 若非
elsif Map_GUI::Head_position == "right"# && File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[1].x = @pictures[2].bitmap.width if File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[3].y = @pictures[2].bitmap.height if Map_GUI::SP_pict.size != 0
end
# 更變 Y 軸位置
(4..13).each {|i|
@pictures[i].y = 480 - 24 - Map_GUI::Dift if $game_system.skill[i-4] != 0
}
# 更變 X 軸位置
@pictures[4].x = 320 - 5*24 if $game_system.skill[0] != 0
@pictures[5].x = 320 - 4*24 if $game_system.skill[1] != 0
@pictures[6].x = 320 - 3*24 if $game_system.skill[2] != 0
@pictures[7].x = 320 - 2*24 if $game_system.skill[3] != 0
@pictures[8].x = 320 - 1*24 if $game_system.skill[3] != 0
@pictures[9].x = 320 - 0*24 if $game_system.skill[3] != 0
@pictures[10].x = 320 + 1*24 if $game_system.skill[3] != 0
@pictures[11].x = 320 + 2*24 if $game_system.skill[3] != 0
@pictures[12].x = 320 + 3*24 if $game_system.skill[3] != 0
@pictures[13].x = 320 + 4*24 if $game_system.skill[3] != 0
# Draw Text.
(4..13).each {|i|
@pictures[i].bitmap.draw_text(1,1,@pictures[i].bitmap.width,@pictures[i].bitmap.height,"#{$game_system.skill_inputs[i-4]}") if $game_system.skill[i-4] != 0
}
# 製作活動區塊
@spriteset = Spriteset_Map.new
# 製作訊息窗口
@message_window = Window_Message.new
# 執行過渡
Graphics.transition
# 主循環
loop do
# 更新遊戲畫面
Graphics.update
# 更新輸入訊息
Input.update
# 更新畫面
update
# 如果畫面切換的話就中斷循環
if $scene != self
break
end
end
# 準備過渡
Graphics.freeze
# 釋放所有介面圖片
(1..13).each{|i|
@pictures[i].dispose
}
# 釋放活動區塊所佔的記憶體空間
@spriteset.dispose
# 釋放訊息窗口所佔的記憶體空間
@message_window.dispose
# 標題畫面切換中的情況下
if $scene.is_a?(Scene_Title)
# 淡入淡出畫面
Graphics.transition
Graphics.freeze
end
end
#--------------------------------------------------------------------------
# ● 更新畫面
#--------------------------------------------------------------------------
alias :original_update :update
def update
if $game_switches[Map_GUI::Switch] or $game_party.actors.size > 0
for i in @pictures
i.visible = true if i != nil
end
# 若主角遭更換,且無他的頭像時
unless File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[2].x = 0
@pictures[3].x = 0
else
# 若頭像在能力值介面左邊
if Map_GUI::Head_position == "left" && File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[2].x = @pictures[1].bitmap.width if Map_GUI::HP_pict.size != 0
@pictures[3].x = @pictures[1].bitmap.width if Map_GUI::SP_pict.size != 0
@pictures[3].y = @pictures[2].bitmap.height if Map_GUI::SP_pict.size != 0
# 若非
elsif Map_GUI::Head_position == "right" && File.exist?("Graphics/Faces/#{$game_party.actors[0].id}.jpg")
@pictures[1].x = @pictures[2].bitmap.width
@pictures[3].x = @pictures[1].bitmap.width if Map_GUI::SP_pict.size != 0
@pictures[3].y = @pictures[2].bitmap.height if Map_GUI::SP_pict.size != 0
end
end
@pictures[2].zoom_x = ( $game_party.actors[0].hp * 1.0 / $game_party.actors[0].maxhp * 1.0 ) if Map_GUI::HP_pict.size != 0
@pictures[3].zoom_x = ( $game_party.actors[0].sp * 1.0 / $game_party.actors[0].maxsp * 1.0 ) if Map_GUI::SP_pict.size != 0
# 若編號遭更變
if $game_system.skill_changed
# 重新載入位圖
@pictures[4].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[0]].icon_name}") if $game_system.skill[0] != 0
@pictures[5].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[1]].icon_name}") if $game_system.skill[1] != 0
@pictures[6].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[2]].icon_name}") if $game_system.skill[2] != 0
@pictures[7].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[3]].icon_name}") if $game_system.skill[3] != 0
@pictures[8].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[4]].icon_name}") if $game_system.skill[4] != 0
@pictures[9].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[5]].icon_name}") if $game_system.skill[5] != 0
@pictures[10].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[6]].icon_name}") if $game_system.skill[6] != 0
@pictures[11].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[7]].icon_name}") if $game_system.skill[7] != 0
@pictures[12].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[8]].icon_name}") if $game_system.skill[8] != 0
@pictures[13].bitmap = Bitmap.new("Graphics/Icons/#{$data_skills[$game_system.skill[9]].icon_name}") if $game_system.skill[9] != 0
# 重新 Draw Text.
(4..13).each {|i|
@pictures[i].bitmap.draw_text(1,1,@pictures[i].bitmap.width,@pictures[i].bitmap.height,"#{$game_system.skill_inputs[i-4]}") if $game_system.skill[i-4] != 0
}
$game_system.skill_changed = false
end
original_update
end
else
for i in @pictures
i.visible = false if i != nil
end
original_update
end
end
#==============================================================================
#----------------------------------------------------------------------------
# ○ OSD - 腳本討論社
# Originality RGSS Discuss
# └http://guild.gamer.com.tw/guild.php?sn=4707
#----------------------------------------------------------------------------
#==============================================================================

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1648192
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 1 篇留言

先行者
可以放個畫面看看嗎?[e12]

07-01 19:56

幻滅o空
OK囉,不過圖片是臨時做的。07-01 21:55
我要留言提醒:您尚未登入,請先登入再留言

3喜歡★soweich8 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【XP遊戲】落石,小心!... 後一篇:夢──游移於真實與虛假之...

追蹤私訊

作品資料夾

cindy8611324大家
BOOKWALKER店長投票開始囉~ 編號:091(第四頁) 歡迎大家支持下>< 有空也可以逛逛小屋喔~看更多我要大聲說昨天20:18


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】