Project1

标题: 转职时技能保持不变问题 [打印本页]

作者: kapoleo    时间: 2012-5-21 18:05
标题: 转职时技能保持不变问题
本帖最后由 kapoleo 于 2012-5-22 19:17 编辑

我的设置是先让人物附加一个状态
再在公共事件写入"若人物处于这个状态时便转职"
这个设置使人物成功转职......各项能力值也随着而转变了
但是人物的技能却保持不变............=.=
假设我要做一个剑士转魔法师
但转职后却没有加入魔法师的技能
也没有移除本来剑士的技能
请问应该怎样做才能使人物转职后技能也跟着改变呢?
谢谢~~~

ps:已确定技能类型已启用
    已确定与转职后等级无关
作者: tommay    时间: 2012-5-21 18:29
本帖最后由 tommay 于 2012-5-21 18:46 编辑

Main前插入脚本:
  1. class Game_Actor
  2.   def change_class(class_id, keep_exp = false)
  3.     @exp[class_id] = exp if keep_exp
  4.     @class_id = class_id
  5.     change_exp(@exp[@class_id] || 0, false)
  6.     init_skills
  7.     refresh
  8.   end
  9. end
复制代码

作者: kapoleo    时间: 2012-5-21 18:59
谢谢帮忙但是还是不行
我猜与脚本无关?
应该是我某些设置出了问题才出现这种类似bug的囧况.............=.=
已检查状态已附加
人物亦成功转职
但就是技能不变

例如我为角色添加一个状态
然后公共事件这状态下角色将学会一个新技能
当状态成功加上时
却没有学到新技能.............=.=
作者: tommay    时间: 2012-5-21 19:08
本帖最后由 tommay 于 2012-5-21 19:09 编辑
kapoleo 发表于 2012-5-21 18:59
谢谢帮忙但是还是不行
我猜与脚本无关?
应该是我某些设置出了问题才出现这种类似bug的囧况.............=.= ...


你试一下直接在地图上新建一个事件,执行内容为转职试试
ps:你不会想在战斗中转职吧?
作者: kapoleo    时间: 2012-5-21 19:15
tommay 发表于 2012-5-21 19:08
你试一下直接在地图上新建一个事件,执行内容为转职试试
ps:你不会想在战斗中转职吧? ...

嗯.....的确是....我想在战斗中转职.......所以才不得不这个委婉转折的设置......=.=
如果有一些更简化的方法的话请告诉我.....
我目前的方法是类似剑士喝下魔法药水......短暂时间内转职成为可以使用魔法的魔法使......
战斗结束后(药力退去)便变回剑士..............
这做法会不会很古怪?..........=.=
作者: tommay    时间: 2012-5-21 19:21
kapoleo 发表于 2012-5-21 19:15
嗯.....的确是....我想在战斗中转职.......所以才不得不这个委婉转折的设置......=.=
如果有一些更简化的 ...

很奇怪,按照我上面修改脚本,然后在战斗中用你的方法:使用物品执行一个公共事件,公共事件中写转职,没有问题啊,成功转职了。
作者: kapoleo    时间: 2012-5-21 19:46
tommay 发表于 2012-5-21 19:21
很奇怪,按照我上面修改脚本,然后在战斗中用你的方法:使用物品执行一个公共事件,公共事件中写转职,没 ...

我刚刚开了一个新工程试结果成功了
那么一定是我旧工程那边有地方出了问题.........=.=


‘‘──kapoleo于2012-5-21 20:08补充以下内容

我想我找出问题了
之前我为了使角色在转职后仍保有本来的经验值
将Game_Actor的504行的keep_exp = false的false改成true了
这样即使角色本来是lv30......转职后也是lv30
现在我把true改回原来的false
再加上了大大的脚本
但人物就杯具的在转职后由lv30跌回lv1了..........=.=
’’
作者: feizhaodan    时间: 2012-5-22 16:28
把这部分粘贴到change_class的refresh上面试试:

  1.     self.class.learnings.each do |learning|
  2.       learn_skill(learning.skill_id) if learning.level <= @level
  3.     end
复制代码

作者: kapoleo    时间: 2012-5-22 18:59
feizhaodan 发表于 2012-5-22 16:28
把这部分粘贴到change_class的refresh上面试试:

啊...
谢谢帮忙~~~
转职后的新技能自动学到了
等级经验也没有改变
不过却没有忘掉旧职业的技能.........=.=


‘‘──kapoleo于2012-5-22 19:17补充以下内容

成功了~~~{:4_108:}
好感动啊~~~
来到6R的我真是太幸福了
能遇到仁慈又强大的大大的我真是太幸福了
谢谢了~~~
’’




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