#encoding:utf-8
=begin
*******************************************************************************************
* 最大等級限制(動態版) *
for RGSS3
Ver 0.2 2013.01.03
原作者:魂(Lctseng),巴哈姆特論壇ID:play123
原文發表於:巴哈姆特RPG製作大師哈拉版
轉載請保留此標籤
個人小屋連結:[url]http://home.gamer.com.tw/homeindex.php?owner=play123[/url]
主要功能:
一、動態調整角色的最大等級
更新紀錄:
Ver 0.1 :
日期:2013.01.03
摘要:一、最初版本
【RPG製作大師】RGSS3腳本 - 動態式最高等級限制
作者:魂│2013-08-04 13:01:21│贊助:18│人氣:783
其實最高等級限制在遊戲內的資料庫已經能夠限制每一個人的最高等級
但是這次提供一個不一樣的功能,也就是動態式的設定。
簡單說整個遊戲可以隨著劇情發展或者是進度等等,
利用簡單的事件指令限制角色的最高等級,
這個功能沒甚麼好截圖的,可能需要大家親自使用才知道效果。
這裡做一下簡單的事件指令教學:
在事件中使用腳本呼叫:set_max_level_limit(角色代號 ,新等級限制)
參數說明:
角色代號:角色在資料庫中的編號,如果編號是0或者是負數,代表所有角色
新等級限制:角色的動態等級限制,設定之後,角色將無法升級超過這個等級(若此項設定為-1,代表取消當前的動態限制,回歸內建的限制)
範例工程下載:[url]https://docs.google.com/file/d/0B0HNBL2XSIayaUdGdk9IN1lYbEU/edit[/url]
腳本原始碼檢視:[url]https://github.com/lctseng/RGSS/[/url] ... 9%99%90%E5%88%B6.rb
那麼,這次的腳本分享就到這裡,希望對任何想製作RPG的大家有幫助!
(註:若有任何使用上的問題,或者是腳本錯誤等等,非常歡迎各位的指教!)
更新紀錄:
Ver 0.2 :
日期:2013.01.03
摘要:一、修正所有遊戲紀錄檔共用最大等級限制的BUG
撰寫摘要:一、此腳本修改或重新定義以下類別:
1.Game_Actor
2.Game_Actors
3.Game_Interpreter
*******************************************************************************************
=end
#*******************************************************************************************
#
# 請勿修改從這裡以下的程式碼,除非你知道你在做什麼!
# DO NOT MODIFY UNLESS YOU KNOW WHAT TO DO !
#
#*******************************************************************************************
#--------------------------------------------------------------------------
# ★ 紀錄腳本資訊
#--------------------------------------------------------------------------
if !$lctseng_scripts
$lctseng_scripts = {}
end
$lctseng_scripts[:level_limit] = "0.2"
puts "載入腳本:Lctseng - 最大等級限制(動態版),版本:#{$lctseng_scripts[:level_limit]}"
#encoding:utf-8
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# 管理角色的類。
# 本類在 Game_Actors 類 ($game_actors) 的內部使用。
# 具體使用請查看 Game_Party 類 ($game_party) 。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 最大等級 - 重新定義
#--------------------------------------------------------------------------
alias lctseng_for_limit_max_level_Max_level max_level
#--------------------------------------------------------------------------
def max_level
$game_actors.maxLevel = {} if !$game_actors.maxLevel
if !$game_actors.maxLevel[actor.id]
lctseng_for_limit_max_level_Max_level
else
$game_actors.maxLevel[actor.id]
end
end
end
#==============================================================================
# ■ Game_Actors
#==============================================================================
class Game_Actors
#--------------------------------------------------------------------------
# ● 定義實例變數
#--------------------------------------------------------------------------
attr_accessor :maxLevel
#--------------------------------------------------------------------------
# ● 設定最大等級限制(-1為移除)
#--------------------------------------------------------------------------
def set_max_level_limit(id , limit)
@maxLevel = {} if !@maxLevel
limit = nil if limit < 0
@maxLevel[id] = limit
end
end
#encoding:utf-8
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
# 事件指令的解釋器。
# 本類在 Game_Map、Game_Troop、Game_Event 類的內部使用。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 設定最大等級限制(角色ID為負或0,則更改所有角色),等級為-1代表移除限制
#--------------------------------------------------------------------------
def set_max_level_limit(id , limit)
if id <= 0
for i in 0...$data_actors.size
$game_actors.set_max_level_limit(i+1 , limit)
end
else
$game_actors.set_max_level_limit(id , limit)
end
end
end