- 注册时间
- 2004-9-16
- 最后登录
- 2006-10-8
④见习
- 积分
- 360
|

楼主 |
发表于 2004-11-30 19:38:51
|
显示全部楼层
# ▼▲▼ XRXS21. 特殊効果詰め合わせ ElseEX ver..03a ▼▲▼
# by 桜雅 在土
#------------------------------------------------------------------------------
#
#
# 「キャラクター変化」「バトラー変化」「クラス変化」
#
#
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● セットアップ
#--------------------------------------------------------------------------
alias xrxs21_setup setup
def setup(actor_id)
xrxs21_setup(actor_id)
# オリジナルデータを保存
@character_name_original = @character_name
@battler_name_original = @battler_name
@class_id_original = @class_id
end
#--------------------------------------------------------------------------
# ● 装備の変更
#--------------------------------------------------------------------------
alias xrxs21_equip equip
def equip(equip_type, id)
# 防具の場合
if equip_type >= 1
if id == 0 or $game_party.armor_number(id) > 0
# 既存装備の判定
case equip_type
when 1
armor_id = @armor1_id
when 2
armor_id = @armor2_id
when 3
armor_id = @armor3_id
when 4
armor_id = @armor4_id
end
# \"キャラクター変化\"がある防具を外した場合、元に戻す。
file_name = armor_id_element_suftext(armor_id, \"キャラクター変化\")
if file_name != nil
@character_name = @character_name_original
end
# \"バトラー変化\"がある防具を外した場合、元に戻す。
file_name = armor_id_element_suftext(armor_id, \"バトラー変化\")
if file_name != nil
@battler_name = @battler_name_original
end
# \"クラス変化\"がある防具を外した場合、元に戻す。
returnar = armor_id_element_include?(armor_id, \"クラス変化\")
if returnar[1] > 0
@class_id = @class_id_original
end
# 新規装備の判定
# \"キャラクター変化\"がある防具を装備した場合、変化。
file_name = armor_id_element_suftext(id, \"キャラクター変化\")
if file_name != nil
@character_name = file_name
end
# \"バトラー変化\"がある防具を装備した場合、変化。
file_name = armor_id_element_suftext(id, \"バトラー変化\")
if file_name != nil
@battler_name = file_name
end
# \"クラス変化\"がある防具を装備した場合、変化。
returnar = armor_id_element_include?(id, \"クラス変化\")
if returnar[1] > 0
@class_id = returnar[1]
end
# プレイヤーをリフレッシュ
$game_player.refresh
end
end
# 戻す
xrxs21_equip(equip_type, id)
end
#--------------------------------------------------------------------------
# ● クラス ID の変更
#--------------------------------------------------------------------------
alias xrxs21_class_id= class_id=
def class_id=(class_id)
# 呼び戻す
xrxs21_class_id=(class_id)
# オリジナルデータの変更
@class_id_original = @class_id
end
#--------------------------------------------------------------------------
# ● グラフィックの変更
#--------------------------------------------------------------------------
alias xrxs21_set_graphic set_graphic
def set_graphic(character_name, character_hue, battler_name, battler_hue)
# 呼び戻す
xrxs21_set_graphic(character_name, character_hue, battler_name, battler_hue)
# オリジナルデータを変更
@character_name_original = @character_name
@battler_name_original = @battler_name
end
end
#------------------------------------------------------------------------------
#
#
# 「装備戦技」「ATK」~「EVA」
#
#
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 属性補正値の取得
#--------------------------------------------------------------------------
alias xrxs21_element_rate element_rate
def element_rate(element_id)
rate = xrxs21_element_rate(element_id)
element_name = $data_system.elements[element_id]
# 属性防御を持つ\"装備戦技\"をもつ場合は半減
for i in @skills
skill = $data_skills
next if skill == nil
if skill_element_include?(skill, \"装備戦技\")[0]
for j in skill.element_set
if $data_system.elements[j] != nil
if $data_system.elements[j] =~ /^#{element_name}属性([+-]?[0-9]+)(%|%)/
rate += $1.to_i
end
if $data_system.elements[j] =~ /^全属性([+-]?[0-9]+)(%|%)/
rate += $1.to_i
end
end
end
end
end
return rate
end
#--------------------------------------------------------------------------
# ● ステート有効度の取得
#--------------------------------------------------------------------------
def state_percent(state_id)
effect_percent = [0,100,80,60,40,20,0][self.state_ranks[state_id]]
state_name = $data_states[state_id].name
return effect_percent if self.is_a?(Game_Enemy)
# 防具にステート%防御が設定されている場合は確率減少
for k in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
armor = $data_armors[k]
next if armor == nil
for j in armor.guard_state_set
if $data_states[j] != nil
if $data_states[j].name =~ /^#{state_name}確率([0-9]+)(%|%)/
effect_percent -= $1.to_i
end
end
end
end
# ステートのステート変化を参照
for k in @states
# マイナスステートにステート%防御が設定されている場合は確率減少
for j in $data_states[k].minus_state_set
if $data_states[j] != nil
if $data_states[j].name =~ /^#{state_name}確率([0-9]+)(%|%)/
effect_percent -= $1.to_i
end
end
end
# プラスステートにステート%防御が設定されている場合は確率上昇
for j in $data_states[k].plus_state_set
if $data_states[j] != nil
if $data_states[j].name =~ /^#{state_name}確率([0-9]+)(%|%)/
effect_percent += $1.to_i
end
end
end
end
# ステート防御を持つ\"装備戦技\"をもつ場合は確率計算
for i in @skills
skill = $data_skills
next if skill == nil
if skill_element_include?(skill, \"装備戦技\")[0]
for j in skill.plus_state_set
if $data_states[j] != nil
if $data_states[j] =~ /^#{state_name}確率([0-9]+)(%|%)/
effect_percent += $1.to_i
end
end
end
for j in skill.minus_state_set
if $data_states[j] != nil
if $data_states[j] =~ /^#{state_name}確率([0-9]+)(%|%)/
effect_percent -= $1.to_i
end
end
end
end
end
return effect_percent
end
#--------------------------------------------------------------------------
# ● 基本腕力の取得
#--------------------------------------------------------------------------
alias xrxs21_base_str base_str
def base_str
b_str = xrxs21_base_str
percentage = 100
# 特殊効果:STR(±数字)[%]
returnar = equip_weapon_element_include?(self, \"STR\")
if returnar[0]
percentage += returnar[2]
b_str+= returnar[1]
end
# 特殊効果:装備戦技
for i in @skills
skill = $data_skills
if skill_element_include?(skill, \"装備戦技\")[0]
percentage += (skill.str_f*10 - 100)
end
end
# ----------------
return b_str * percentage / 100
end
#--------------------------------------------------------------------------
# ● 基本器用さの取得
#--------------------------------------------------------------------------
alias xrxs21_base_dex base_dex
def base_dex
b_dex = xrxs21_base_dex
percentage = 100
# 特殊効果:DEX(±数字)[%]
returnar = equip_weapon_element_include?(self, \"DEX\")
if returnar[0]
percentage += returnar[2]
b_dex+= returnar[1]
end
# 特殊効果:装備戦技
for i in @skills
skill = $data_skills
if skill_element_include?(skill, \"装備戦技\")[0]
percentage += (skill.dex_f*10 - 100)
end
end
# ----------------
return b_dex * percentage / 100
end
#--------------------------------------------------------------------------
# ● 基本素早さの取得
#--------------------------------------------------------------------------
alias xrxs21_base_agi base_agi
def base_agi
b_agi = xrxs21_base_agi
percentage = 100
# 特殊効果:AGI(±数字)[%]
returnar = equip_weapon_element_include?(self, \"AGI\")
if returnar[0]
percentage += returnar[2]
b_agi+= returnar[1]
end
# 特殊効果:装備戦技
for i in @skills
skill = $data_skills
if skill_element_include?(skill, \"装備戦技\")[0]
percentage += (skill.agi_f*10 - 100)
end
end
# ----------------
return b_agi * percentage / 100
end
#--------------------------------------------------------------------------
# ● 基本魔力の取得
#--------------------------------------------------------------------------
alias xrxs21_base_int base_int
def base_int
b_int = xrxs21_base_int
percentage = 100
# 特殊効果:INT(±数字)[%]
returnar = equip_weapon_element_include?(self, \"INT\")
if returnar[0]
percentage += returnar[2]
b_int+= returnar[1]
end
# 特殊効果:装備戦技
for i in @skills
skill = $data_skills
if skill_element_include?(skill, \"装備戦技\")[0]
percentage += (skill.int_f*10 - 100)
end
end
# ----------------
return b_int * percentage / 100
end
#--------------------------------------------------------------------------
# ● 基本攻撃力の取得
#--------------------------------------------------------------------------
alias xrxs21_base_atk base_atk
def base_atk
b_atk = xrxs21_base_atk
percentage = 100
# 特殊効果:ATK(±数字)[%]
returnar = equip_weapon_element_include?(self, \"ATK\")
if returnar[0]
percentage += returnar[2]
b_atk+= returnar[1]
end
# 特殊効果:装備戦技
for i in @skills
skill = $data_skills
if skill_element_include?(skill, \"装備戦技\")[0]
percentage += (skill.atk_f*10 - 100)
end
end
# ----------------
return b_atk * percentage / 100
end
#--------------------------------------------------------------------------
# ● 基本物理防御の取得
#--------------------------------------------------------------------------
alias xrxs21_base_pdef base_pdef
def base_pdef
b_pdef = xrxs21_base_pdef
percentage = 100
# 特殊効果:PDEF(±数字)[%]
returnar = equip_weapon_element_include?(self, \" DEF\")
if returnar[0]
percentage += returnar[2]
b_pdef+= returnar[1]
end
# 特殊効果:装備戦技
for i in @skills
skill = $data_skills
if skill_element_include?(skill, \"装備戦技\")[0]
percentage += (skill.pdef_f*10 - 100)
end
end
# ----------------
return b_pdef * percentage / 100
end
#--------------------------------------------------------------------------
# ● 基本魔法防御の取得
#--------------------------------------------------------------------------
alias xrxs21_base_mdef base_mdef
def base_mdef
b_mdef = xrxs21_base_mdef
percentage = 100
# 特殊効果:MDEF(±数字)[%]
returnar = equip_weapon_element_include?(self, \"MDEF\")
if returnar[0]
percentage += returnar[2]
b_mdef+= returnar[1]
end
# 特殊効果:装備戦技
for i in @skills
skill = $data_skills
if skill_element_include?(skill, \"装備戦技\")[0]
percentage += (skill.mdef_f*10 - 100)
end
end
# ----------------
return b_mdef * percentage / 100
end
|
|