Project1

标题: 事件更改职业问题! [打印本页]

作者: jiushiainilip19    时间: 2017-8-18 20:03
标题: 事件更改职业问题!
改变当前角色职业的同时也改变相对应职业的技能!

事件里面改变职业并没有遗忘掉该职业的技能且也不会自动学会新职业的技能。

这里的技能指的是数据库职业设置的初始技能的变更!


作者: 0nepeop1e    时间: 2017-8-18 20:45
这脚本应该会实现你要的效果
  1. Game_Actor = Class.new(Game_Actor) do
  2.   superclass.constants.each{|c|const_set(c, superclass.const_get(c))}
  3.   def class_id=(class_id)
  4.     for j in $data_classes[@class_id].learnings
  5.       break if j.level > @level
  6.       forget_skill(j.skill_id)
  7.     end
  8.     super(class_id)
  9.     for j in $data_classes[@class_id].learnings
  10.       break if j.level > @level
  11.       learn_skill(j.skill_id)
  12.     end
  13.   end
  14.   const_set(:CLASS_SKILL_FIXED, true)
  15. end unless defined?(Game_Actor::CLASS_SKILL_FIXED)
复制代码

作者: jiushiainilip19    时间: 2017-8-19 11:04
RUBY 代码复制
  1. alias mohuaiyuan201676_setup setup
  2.   def setup(actor_id)
  3.     mohuaiyuan201676_setup(actor_id)
  4.     @actor_id = actor_id


插在前面就这个冲突

插在后面就是第一章图

QQ截图20170819105809.png (7.69 KB, 下载次数: 16)

QQ截图20170819105809.png

QQ截图20170819110305.png (7.25 KB, 下载次数: 13)

QQ截图20170819110305.png

作者: cinderelmini    时间: 2017-8-21 19:57
本帖最后由 cinderelmini 于 2017-8-22 23:28 编辑
  1. class Game_Actor < Game_Battler
  2.   alias sny46_170821_class_id class_id=
  3.   def class_id=(class_id)
  4.     sny46_170821_class_id(class_id)
  5.     @skills = []
  6.     for i in 1..@level
  7.       for j in $data_classes[@class_id].learnings
  8.         learn_skill(j.skill_id) if j.level == i
  9.       end
  10.     end
  11.   end
  12. end
复制代码

嗯……大概就这么干……放在Main前或者Game_Actor下方生效。




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