本帖最后由 魔法丶小肉包 于 2020-10-24 14:29 编辑
class Game_Actor attr_accessor :sp def s_l @skill_level end def learn_skill(skill_id,sk_level=0) unless skill_learn?($data_skills[skill_id]) @skills.push(skill_id) @skills.sort! @skill_level[skill_id]=sk_level end end end class Game_Interpreter def reset_skill(actor_id) a = $game_actors[actor_id] b = a.s_l.dup $game_variables[1][actor_id] = [a.sp,a.skills,b] if a.reset_skill a.hp = [a.hp,a.mhp].min a.mp = [a.mp,a.mmp].min end end def recover_skill(actor_id) $game_actors[actor_id].sp = $game_variables[1][actor_id][0] b = $game_variables[1][actor_id][2] $game_variables[1][actor_id][1].each do |s| $game_actors[actor_id].learn_skill(s.id,b[s.id]) end end end
class Game_Actor
attr_accessor :sp
def s_l
@skill_level
end
def learn_skill(skill_id,sk_level=0)
unless skill_learn?($data_skills[skill_id])
@skills.push(skill_id)
@skills.sort!
@skill_level[skill_id]=sk_level
end
end
end
class Game_Interpreter
def reset_skill(actor_id)
a = $game_actors[actor_id]
b = a.s_l.dup
$game_variables[1][actor_id] = [a.sp,a.skills,b]
if a.reset_skill
a.hp = [a.hp,a.mhp].min
a.mp = [a.mp,a.mmp].min
end
end
def recover_skill(actor_id)
$game_actors[actor_id].sp = $game_variables[1][actor_id][0]
b = $game_variables[1][actor_id][2]
$game_variables[1][actor_id][1].each do |s|
$game_actors[actor_id].learn_skill(s.id,b[s.id])
end
end
end
使用之前请在事件中设置一下$game_variables[1] = []
设置一次就好,推荐在开始新游戏的时候就设置好
事件脚本
reset_skill(actor_id)可以重置actor_id角色的技能和SP
recover_skill(actor_id)可以恢复最近一次重置之前的技能和SP
如果使用洗点水的话,暂时没写恢复功能,如有需要添加进去行了
|