Project1
标题:
如何制作随人物等级成长的装备
[打印本页]
作者:
zhangjigeng
时间:
2014-8-10 22:01
标题:
如何制作随人物等级成长的装备
如何制作随人物等级成长的装备
作者:
余烬之中
时间:
2014-8-10 22:07
可能
装备养成技能
会是你想要的
作者:
tseyik
时间:
2014-8-14 17:15
本帖最后由 tseyik 于 2014-8-14 17:18 编辑
在武器/防具的備注欄依規則填下以下記号
=begin #-----------------------------------------------------------------------
●アクター成長装備【RGSS3 by Declare War】
装備した状態でレベルアップすると特定のパラメータが上昇する装備を作成
武器/防具のメモ欄に下記のどれかを書く
<成長:xxx,n> # LVUP時に xxx が n 上昇する
<固定成長:xxx,n> # LVUP時に xxx が n 上昇する( <成長:xxx,n> と同じ)
<成長:xxx,n,m> # LVUP時に xxx が n + (0 ~ m) 上昇する
<ランダム成長:n> # LVUP時に全ステが 0 ~ n 上昇する
xxx は パラメータの略称で mhp,mmp,atk,def,mat,mdf,agi,luk のどれか
【仕様】
成長装備で上昇したステは職業を変更してもそのまま
【イベントコマンド】
$game_actors[n].force_grow_equip_param_ini # 成長装備の成長分を初期化
【利用規約】
著作権明記と利用報告は不要、加工自由、転載と配布は禁止
【バージョン情報】
v1.2 - 個別パラメータのランダム成長に対応
v1.1 - ランダム成長に対応
v1.0 - 公開
=end #-------------------------------------------------------------------------
class RPG::EquipItem < RPG::BaseItem
#--------------------------------------------------------------------------
# ● 定数 / 設定 / ランダム成長で成長するパラメータ
# HPMPを除くなら ["atk","def","mat","mdf","agi","luk"]
#--------------------------------------------------------------------------
GROW_RANDOM_EFF = ["mhp","mmp","atk","def","mat","mdf","agi","luk"]
#--------------------------------------------------------------------------
# ● 定数
#--------------------------------------------------------------------------
GROW_PARAM_REG = /<(?:固定)?成長:([a-z]{3}),(\d+)(?:,(\d+))?>/
GROW_RANDOM_REG = /<ランダム成長:(\d+)>/
GROW_PARAM = { "mhp" => 0, "mmp" => 1, "atk" => 2, "def" => 3,
"mat" => 4, "mdf" => 5, "agi" => 6, "luk" => 7 }
#--------------------------------------------------------------------------
# ● 成長パラメータの取得
#--------------------------------------------------------------------------
def grow_param
make_grow_param if @grow_param == nil || !@grow_random
@grow_param
end
#--------------------------------------------------------------------------
# ● ランダム成長パラメータを取得
#--------------------------------------------------------------------------
def calc_grow_param
array = []
8.times{|i| array[i] = @grow_param[i] + rand(@grow_random[i] + 1)}
array
end
#--------------------------------------------------------------------------
# ● 成長パラメータの作成
#--------------------------------------------------------------------------
def make_grow_param
@grow_param = Array.new(8,0)
@grow_per_rand = Array.new(8,0)
note.each_line{|line| set_grow_param($~) if GROW_PARAM_REG =~ line}
make_grow_random
if @grow_param.count(0) == @grow_param.count &&
@grow_random.count(0) == @grow_random.count
@grow_param = false
end
end
#--------------------------------------------------------------------------
# ● ランダム成長パラメータの作成
#--------------------------------------------------------------------------
def make_grow_random
@grow_random = Array.new(8,0)
num = GROW_RANDOM_REG =~ note ? $1.to_i : 0
GROW_RANDOM_EFF.each{|i| @grow_random[GROW_PARAM[i]] = num}
8.times{|i| @grow_random[i] += @grow_per_rand[i]}
end
#--------------------------------------------------------------------------
# ● 成長パラメータのセット
#--------------------------------------------------------------------------
def set_grow_param(data)
return if !GROW_PARAM[data[1]]
@grow_param[GROW_PARAM[data[1]]] += data[2].to_i
@grow_per_rand[GROW_PARAM[data[1]]] += data[3].to_i
end
end
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 成長装備による能力の加算値を初期化
#--------------------------------------------------------------------------
def grow_equip_param_ini
@grow_param_plus = Array.new(8, 0) if !@grow_param_plus
end
#--------------------------------------------------------------------------
# ● 通常能力値の加算値取得(エイリアス)
#--------------------------------------------------------------------------
alias grow_equip_param_plus param_plus
def param_plus(param_id)
grow_equip_param_plus(param_id) + grow_equip_param(param_id)
end
#--------------------------------------------------------------------------
# ● 成長装備による能力の加算値を取得
#--------------------------------------------------------------------------
def grow_equip_param(param_id)
grow_equip_param_ini
@grow_param_plus[param_id]
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● オブジェクト初期化(エイリアス)
#--------------------------------------------------------------------------
alias grow_equip_initialize initialize
def initialize(actor_id)
grow_equip_initialize(actor_id)
force_grow_equip_param_ini
end
#--------------------------------------------------------------------------
# ● 成長装備による能力の加算値を強制的に初期化
#--------------------------------------------------------------------------
def force_grow_equip_param_ini
@grow_param_plus = Array.new(8, 0)
end
#--------------------------------------------------------------------------
# ● レベルアップ(エイリアス)
#--------------------------------------------------------------------------
alias grow_equip_level_up level_up
def level_up
grow_equip_level_up
get_grow_equip_bonus
end
#--------------------------------------------------------------------------
# ● 成長装備のボーナスを入手
#--------------------------------------------------------------------------
def get_grow_equip_bonus
grow_equip_param_ini
grow_equips.each{|item| add_grow_equip_bonus(item.calc_grow_param)}
refresh
end
#--------------------------------------------------------------------------
# ● 成長装備を取得
#--------------------------------------------------------------------------
def grow_equips
equips.compact.select{|item| item.grow_param}
end
#--------------------------------------------------------------------------
# ● 成長装備のボーナスを付加
#--------------------------------------------------------------------------
def add_grow_equip_bonus(grow_param)
grow_param.each_with_index{|value,index| grow_equip_add_param(index, value)}
end
#--------------------------------------------------------------------------
# ● 能力値の加算
#--------------------------------------------------------------------------
def grow_equip_add_param(param_id, value)
@grow_param_plus[param_id] += value
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1