Project1

标题: 如何使角色在升等時學習隨機技能 [打印本页]

作者: william6k    时间: 2018-10-20 22:13
标题: 如何使角色在升等時學習隨機技能
請問一下,

有方法讓角色在升等時,習到的技能是隨機的嗎?

不透過公用事件(技能書...等等),

像是a角色在到達10等時,有機會學到a或b技能。

麻煩各位大佬了
作者: 七重    时间: 2018-10-20 23:05
本帖最后由 七重 于 2018-10-21 18:59 编辑

土方法。。:

class Game_Actor
alias krst_level_up level_up
  def level_up
  krst_level_up
        $game_variables[1] = @actor_id
        $game_variables[2] = @level
    $game_temp.reserve_common_event(3)
  end
end

插入这段脚本之后。
每次有角色升级的时候,
就会把升级的角色ID记录在变量1号,
把这个角色的等级记录在变量2号,
然后执行3号公共事件。

于是这样
你可以在3号公共事件里面自己写,
如果角色某某的等级等于10.
随机数处理
如果随机数大于多少,就学A技能,否则学B技能。


嘛,这样缺点是有的,就是假如你的技能池很复杂,而且每级能随机的技能有相同的话,就会很难写。

================================
================================
追记:

看到6楼之后,忽然想到一个感觉上设置起来挺方便的思路。。

先设置好 战士A 和 战士B 两个职业,通过随机数决定升级的时候,学这两个职业其中哪个的等级技能,这样利用数据库设置起来就很便利了。

..然而,那部分脚本里面的self.class不知道是怎么改的,然后实际上也没实现出来。。

作者: regulus    时间: 2018-10-21 09:08
正好跟我现在要做的技能有点儿像。不过我的想法还没经过验证。。。。
我的想法是,直接设置公共事件。升级的时候,获得一个临时技能,然后这个临时技能触发公共事件。公共事件判断该学会a还是b技能,然后赋予玩家新技能,再删掉临时技能。

当然如果就是不想用公共事件,那就不能用这个办法了。
作者: KB.Driver    时间: 2018-10-21 13:55
本帖最后由 KB.Driver 于 2018-10-21 13:57 编辑



这个需要一点脚本基础才能用,不过有什么不懂的可以直接问。


Project1.zip (1.43 MB, 下载次数: 76)

作者: william6k    时间: 2018-10-21 14:56
KB.Driver 发表于 2018-10-21 13:55
这个需要一点脚本基础才能用,不过有什么不懂的可以直接问。

真的非常感謝您!
現在出差沒辦法用電腦,下禮拜在來使用看看。
作者: 天浩    时间: 2018-10-21 18:00
我也有个想法。还是挺方便的。如下:
class Game_Actor < Game_Battler
  def level_up
    @level += 1
    self.class.learnings.each do |learning|
      learn_skill(learning.skill_id) if learning.level == @level && actor.id<10
     # 角色IDd小于10时,习得技能为默认职业技能。
      learn_skill(rand(3)+learning.skill_id) if learning.level == @level && actor.id>9
    # 角色ID大于9时,在默认设置的职业技能中随机。习得技能为设定的职业技能至设定的职业技能ID+3的范围。
    end
  end
end

# 这样,设定还是在职业在设定,习得等级也是一样。直接在职业中即可设定。
作者: soulsaga    时间: 2018-10-21 19:11
VA不是有备注吗..用备注设定啊..




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