因为论坛回档,以前的帖子没了,连大佬的脚本都丢了一个
#==============================================================================
# ■ RPG::UsableItem
#==============================================================================
class RPG::UsableItem
#--------------------------------------------------------------------------
# ● 偷窃技能的技能かどうかを返す
#--------------------------------------------------------------------------
def steal_skill?
[66].include?(@id)
end
end
#==============================================================================
# ■ RPG::Item
#==============================================================================
class RPG::Item
#--------------------------------------------------------------------------
# ● 盗めるスキルかどうかを返す
#--------------------------------------------------------------------------
def can_steal?
false
end
end
#==============================================================================
# ■ Game_ActionResult
#==============================================================================
class Game_ActionResult
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :steal_skills
#--------------------------------------------------------------------------
# ● クリア
#--------------------------------------------------------------------------
alias tmsksteal_game_actionresult_clear clear
def clear
tmsksteal_game_actionresult_clear
@steal_skills = []
end
#--------------------------------------------------------------------------
# ● 何らかのステータス(能力値かステート)が影響を受けたかの判定
#--------------------------------------------------------------------------
alias tmsksteal_game_actionresult_status_affected? status_affected?
def status_affected?
tmsksteal_game_actionresult_status_affected? || !@steal_skills.empty?
end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● スキル/アイテムの効果適用
#--------------------------------------------------------------------------
alias tmsksteal_game_battler_item_apply item_apply
def item_apply(user, item)
tmsksteal_game_battler_item_apply(user, item)
return if user.enemy?
if item.steal_skill? && @result.hit?
if enemy?
enemy.actions.each do |action|
skill = $data_skills[action.skill_id]
next if user.skill_learn?(skill)
@result.steal_skills.push(skill.id)
user.learn_steal_skill(skill.id)
end
else
skills.each do |skill|
next if user.skill_learn?(skill)
@result.steal_skills.push(skill.id)
user.learn_steal_skill(skill.id)
end
end
end
end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● スキルの初期化
#--------------------------------------------------------------------------
alias tmsksteal_game_actor_init_skills init_skills
def init_skills
@steal_skills = []
tmsksteal_game_actor_init_skills
end
#--------------------------------------------------------------------------
# ● 追加スキルの取得
#--------------------------------------------------------------------------
alias tmsksteal_game_actor_added_skills added_skills
def added_skills
result = tmsksteal_game_actor_added_skills
@steal_skills.each {|id| result.push(id) }
result
end
#--------------------------------------------------------------------------
# ● スキルの習得済み判定
#--------------------------------------------------------------------------
alias tmsksteal_game_actor_skill_learn? skill_learn?
def skill_learn?(skill)
return true if tmsksteal_game_actor_skill_learn?(skill)
skill.is_a?(RPG::Skill) && @steal_skills.include?(skill.id)
end
#--------------------------------------------------------------------------
# ● 盗んだスキルの習得
#--------------------------------------------------------------------------
def learn_steal_skill(skill_id)
@steal_skills.push(skill_id)
end
end
#==============================================================================
# ■ Window_BattleLog
#==============================================================================
class Window_BattleLog < Window_Selectable
#--------------------------------------------------------------------------
# ● 能力強化/弱体の表示
#--------------------------------------------------------------------------
alias tmsksteal_window_battlelog_display_changed_buffs display_changed_buffs
def display_changed_buffs(target)
tmsksteal_window_battlelog_display_changed_buffs(target)
display_steal_skill(target)
end
#--------------------------------------------------------------------------
# ● 盗んだスキルの表示
#--------------------------------------------------------------------------
def display_steal_skill(target)
target.result.steal_skills.each do |id|
replace_text(sprintf("%sを盗んだ!", $data_skills[id].name))
wait
end
end
end
本帖来自P1论坛作者间桐樱,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=496638 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。