设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3648|回复: 10

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1971
在线时间
926 小时
注册时间
2015-10-26
帖子
356

开拓者

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

最佳答案

查看完整内容

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. ...

Lv3.寻梦者

梦石
0
星屑
4674
在线时间
1319 小时
注册时间
2015-7-25
帖子
530

开拓者

发表于 2020-10-13 16:50:07 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 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

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

点评

我就是用事件脚的呀,比方我用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
目前的坑 幽灵契约外传:歌莉娅
回归持续更新中~

看!是肉包!
只能看!不能吃!
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4674
在线时间
1319 小时
注册时间
2015-7-25
帖子
530

开拓者

发表于 2020-11-17 13:28:01 | 显示全部楼层
test0.zip (1.44 MB, 下载次数: 92)
目前的坑 幽灵契约外传:歌莉娅
回归持续更新中~

看!是肉包!
只能看!不能吃!
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1971
在线时间
926 小时
注册时间
2015-10-26
帖子
356

开拓者

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

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

点评

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 03:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表