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

Project1

 找回密码
 注册会员
搜索
查看: 2192|回复: 6
打印 上一主题 下一主题

[已经解决] 如何使角色在升等時學習隨機技能

[复制链接]

Lv2.观梦者

梦石
0
星屑
312
在线时间
67 小时
注册时间
2014-4-17
帖子
20
跳转到指定楼层
1
发表于 2018-10-20 22:13:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
請問一下,

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

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

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

麻煩各位大佬了

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

2
发表于 2018-10-20 23:05:09 | 只看该作者
本帖最后由 七重 于 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不知道是怎么改的,然后实际上也没实现出来。。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
360
在线时间
9 小时
注册时间
2009-12-15
帖子
14
3
发表于 2018-10-21 09:08:42 | 只看该作者
正好跟我现在要做的技能有点儿像。不过我的想法还没经过验证。。。。
我的想法是,直接设置公共事件。升级的时候,获得一个临时技能,然后这个临时技能触发公共事件。公共事件判断该学会a还是b技能,然后赋予玩家新技能,再删掉临时技能。

当然如果就是不想用公共事件,那就不能用这个办法了。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

4
发表于 2018-10-21 13:55:25 | 只看该作者
本帖最后由 KB.Driver 于 2018-10-21 13:57 编辑



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


Project1.zip (1.43 MB, 下载次数: 76)
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
312
在线时间
67 小时
注册时间
2014-4-17
帖子
20
5
 楼主| 发表于 2018-10-21 14:56:54 | 只看该作者
KB.Driver 发表于 2018-10-21 13:55
这个需要一点脚本基础才能用,不过有什么不懂的可以直接问。

真的非常感謝您!
現在出差沒辦法用電腦,下禮拜在來使用看看。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6211
在线时间
604 小时
注册时间
2017-9-27
帖子
251
6
发表于 2018-10-21 18:00:47 | 只看该作者
我也有个想法。还是挺方便的。如下:
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

# 这样,设定还是在职业在设定,习得等级也是一样。直接在职业中即可设定。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36402
在线时间
10791 小时
注册时间
2009-3-15
帖子
4813
7
发表于 2018-10-21 19:11:06 | 只看该作者
VA不是有备注吗..用备注设定啊..
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 00:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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