http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/frame.html
이미 아시는 분은 아실 아이템으로 스킬을 습득하게 하는 스크립트입니다. 스킬습득 아이템을 위한 속성을 만들고(스크립트에 지정한 것과 동일해야 함), 아이템의 HP회복량에 습득할 스킬의 ID를 쓰면 됩니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆スキル習得アイテム - KGC_ItemLearnSkill◆
#_/----------------------------------------------------------------------------
#_/ 使用するとスキルを習得するアイテムを作成します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
$imported = {} if $imported == nil
$imported["ItemLearnSkill"] = true
if $game_special_elements == nil
$game_special_elements = {}
$data_system = load_data("Data/System.rxdata")
end
# スキル習得アイテム属性
$game_special_elements["item_learn_skill"] = $data_system.elements.index("スキル習得アイテム")
if $game_special_elements["item_learn_skill"] == nil
$game_special_elements["item_learn_skill"] = $data_system.elements.index("スキル修得アイテム")
end
#==============================================================================
# ■ Game_Battler (分割定義 3)
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● アイテムの効果適用
# item : アイテム
#--------------------------------------------------------------------------
alias item_effect_KGC_ItemLearnSkill item_effect
def item_effect(item)
# スキル修得属性を持っていない、または対象がエネミーの場合
if !item.element_set.include?($game_special_elements["item_learn_skill"]) ||
self.is_a?(Game_Enemy)
# 元の処理を実行
return item_effect_KGC_ItemLearnSkill(item)
end
# 習得済みの場合は戻る
return false if self.skill_learn?(item.recover_hp)
# クリティカルフラグをクリア
self.critical = false
# アイテムの効果範囲が HP 1 以上の味方で、自分の HP が 0、
# またはアイテムの効果範囲が HP 0 の味方で、自分の HP が 1 以上の場合
if ((item.scope == 3 || item.scope == 4) && self.hp == 0) ||
((item.scope == 5 || item.scope == 6) && self.hp >= 1)
# メソッド終了
return false
end
# 有効フラグをクリア
effective = false
# コモンイベント ID が有効の場合は有効フラグをセット
effective |= item.common_event_id > 0
# 命中判定
hit_result = (rand(100) < item.hit)
# 不確実なスキルの場合は有効フラグをセット
effective |= item.hit < 100
# 命中の場合
if hit_result == true
self.damage = nil
# "HP回復量"のスキルを修得
self.learn_skill(item.recover_hp)
return true
end
return false
end
end
이미 아시는 분은 아실 아이템으로 스킬을 습득하게 하는 스크립트입니다. 스킬습득 아이템을 위한 속성을 만들고(스크립트에 지정한 것과 동일해야 함), 아이템의 HP회복량에 습득할 스킬의 ID를 쓰면 됩니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆スキル習得アイテム - KGC_ItemLearnSkill◆
#_/----------------------------------------------------------------------------
#_/ 使用するとスキルを習得するアイテムを作成します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
$imported = {} if $imported == nil
$imported["ItemLearnSkill"] = true
if $game_special_elements == nil
$game_special_elements = {}
$data_system = load_data("Data/System.rxdata")
end
# スキル習得アイテム属性
$game_special_elements["item_learn_skill"] = $data_system.elements.index("スキル習得アイテム")
if $game_special_elements["item_learn_skill"] == nil
$game_special_elements["item_learn_skill"] = $data_system.elements.index("スキル修得アイテム")
end
#==============================================================================
# ■ Game_Battler (分割定義 3)
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● アイテムの効果適用
# item : アイテム
#--------------------------------------------------------------------------
alias item_effect_KGC_ItemLearnSkill item_effect
def item_effect(item)
# スキル修得属性を持っていない、または対象がエネミーの場合
if !item.element_set.include?($game_special_elements["item_learn_skill"]) ||
self.is_a?(Game_Enemy)
# 元の処理を実行
return item_effect_KGC_ItemLearnSkill(item)
end
# 習得済みの場合は戻る
return false if self.skill_learn?(item.recover_hp)
# クリティカルフラグをクリア
self.critical = false
# アイテムの効果範囲が HP 1 以上の味方で、自分の HP が 0、
# またはアイテムの効果範囲が HP 0 の味方で、自分の HP が 1 以上の場合
if ((item.scope == 3 || item.scope == 4) && self.hp == 0) ||
((item.scope == 5 || item.scope == 6) && self.hp >= 1)
# メソッド終了
return false
end
# 有効フラグをクリア
effective = false
# コモンイベント ID が有効の場合は有効フラグをセット
effective |= item.common_event_id > 0
# 命中判定
hit_result = (rand(100) < item.hit)
# 不確実なスキルの場合は有効フラグをセット
effective |= item.hit < 100
# 命中の場合
if hit_result == true
self.damage = nil
# "HP回復量"のスキルを修得
self.learn_skill(item.recover_hp)
return true
end
return false
end
end