Project1

标题: 希忆豪华型技能加点的问题求教 [打印本页]

作者: 踢腿水上飘    时间: 2020-10-13 16:50
标题: 希忆豪华型技能加点的问题求教
脚本在这里
https://rpg.blue/forum.php?mod=v ... id%3D368&page=1
这里只能用洗点道具来初始化一个角色的SP和技能等级
求教我想要在事件脚本里恢复一个角色的SP和技能等级要怎么做呀?
作者: 魔法丶小肉包    时间: 2020-10-13 16:50
本帖最后由 魔法丶小肉包 于 2020-10-24 14:29 编辑

RUBY 代码复制
  1. class Game_Actor
  2.   attr_accessor :sp
  3.   def s_l
  4.     @skill_level
  5.   end
  6.   def learn_skill(skill_id,sk_level=0)
  7.     unless skill_learn?($data_skills[skill_id])
  8.       @skills.push(skill_id)
  9.       @skills.sort!
  10.       @skill_level[skill_id]=sk_level
  11.     end
  12.   end
  13. end
  14. class Game_Interpreter
  15.   def reset_skill(actor_id)
  16.     a = $game_actors[actor_id]
  17.     b = a.s_l.dup
  18.     $game_variables[1][actor_id] = [a.sp,a.skills,b]
  19.     if a.reset_skill
  20.       a.hp = [a.hp,a.mhp].min
  21.       a.mp = [a.mp,a.mmp].min
  22.     end
  23.   end
  24.   def recover_skill(actor_id)
  25.     $game_actors[actor_id].sp = $game_variables[1][actor_id][0]
  26.     b = $game_variables[1][actor_id][2]
  27.     $game_variables[1][actor_id][1].each do |s|
  28.       $game_actors[actor_id].learn_skill(s.id,b[s.id])
  29.     end
  30.   end
  31. end


使用之前请在事件中设置一下$game_variables[1] = []
设置一次就好,推荐在开始新游戏的时候就设置好


事件脚本
reset_skill(actor_id)可以重置actor_id角色的技能和SP
recover_skill(actor_id)可以恢复最近一次重置之前的技能和SP

如果使用洗点水的话,暂时没写恢复功能,如有需要添加进去行了

作者: 魔法丶小肉包    时间: 2020-11-17 13:28
test0.zip (1.44 MB, 下载次数: 92)
那测试一下这个工程,读取存档→跟最右边的npc按一下确定键,然后再到中间那个npc去对话选择重置和恢复(设置的是领队的那个角色)
作者: 踢腿水上飘    时间: 2020-11-17 20:46
魔法丶小肉包 发表于 2020-11-17 13:28
那测试一下这个工程,读取存档→跟最右边的npc按一下确定键,然后再到中间那个npc去对话选择重置和恢复( ...

我明白了,问题出在技能的位置上,如果是在角色栏的特性里面添加技能,这个技能的等级就不会被重置
如果是在职业那一栏设定的等级和技能,那么这个技能就可以被重置
这是什么原因呀,能不能让从角色特性那里增加的技能也可以被重置呀




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1