查看: 4683|回复: 10

[已经解决] 希忆豪华型技能加点的问题求教

[复制链接]
梦石
0
星屑
2019
在线时间
940 小时
注册时间
2015-10-26
回帖
293

开拓者

发表于 2020-10-13 16:50:06 | 显示全部楼层 |阅读模式
悬赏50星屑已解决
脚本在这里
https://rpg.blue/forum.php?mod=v ... id%3D368&page=1
这里只能用洗点道具来初始化一个角色的SP和技能等级
求教我想要在事件脚本里恢复一个角色的SP和技能等级要怎么做呀?

最佳答案

查看完整内容

[pre lang="ruby"]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 ...
梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2020-10-13 16:50:07 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 2020-10-24 14:29 编辑

[pre lang="ruby"]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[/pre]

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


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

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

点评

我就是用事件脚的呀,比方我用10SP把1号角色的技能A升到了2级,然后事件脚本reset_skill(1)重置,结果是10SP洗回来了,但技能A还是2级,而不是恢复到0级  发表于 2020-11-17 12:27
你测试一下用事件脚本reset_skill(actor_id)去重置,看看是不是想要的效果  发表于 2020-11-17 11:05
需要使用事件脚本reset_skill(actor_id)进行重置的才可以恢复,洗点水进行重置的还没写  发表于 2020-11-17 11:04
不行呀大佬,这样SP点是重置了 但是技能等级没有重置,等于点数还回去了,但是技能等级都还在  发表于 2020-11-17 10:49
谢谢,这一段时间没上,不好意思额  发表于 2020-11-17 09:49
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2020-11-17 13:28:01 | 显示全部楼层
test0.zip (1.44 MB, 下载次数: 92)
那测试一下这个工程,读取存档→跟最右边的npc按一下确定键,然后再到中间那个npc去对话选择重置和恢复(设置的是领队的那个角色)
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
2019
在线时间
940 小时
注册时间
2015-10-26
回帖
293

开拓者

 楼主| 发表于 2020-11-17 20:46:22 | 显示全部楼层
魔法丶小肉包 发表于 2020-11-17 13:28
那测试一下这个工程,读取存档→跟最右边的npc按一下确定键,然后再到中间那个npc去对话选择重置和恢复( ...

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

点评

好吧,我懂了,谢谢大佬- -  发表于 2020-11-17 22:38
我测试了一下范例工程,角色栏里添加的技能学了之后一直显示LV0,说明原脚本就没考虑到这个问题  发表于 2020-11-17 22:24
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部