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

Project1

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

[讨论] 技能树如何设置会比较直观?

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22437
在线时间
2335 小时
注册时间
2005-10-15
帖子
1160

开拓者

跳转到指定楼层
1
发表于 2018-8-8 23:41:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在开发技能树插件,其中最重要的一点是方便使用者配置自己想好的技能树。
例如以下技能树:
[001]治疗1:无前置要求
[002]治疗2:需要治疗1
[003]治疗3:需要治疗2
[004]还原:无前置要求
[005]还原X:需要还原、治疗3
[006]火1:无前置要求
[007]火2:需要火1
[008]火3:需要火2
[009]冰1:无前置要求
[010]冰2:需要冰1、治疗2
[011]冰3:需要冰2、治疗3

关于这个技能树怎么配置,有三种想法(绝不考虑写在RGSS中这种异端做法,不是所有使用第三方脚本插件的人都懂RGSS,并且知道哈希表如何构建的)
1. 通过在“角色”数据栏进行备注,内容如下:
#SkillReq: 1(0), 2(1), 3(2), 4(0), 5(3/4), 6(0), 7(6), 8(7), 9(0), 10(2/9), 11(3/10)
即通过指定每个技能的前置技能(没有前置写0)来指定


2. 通过在“角色”数据栏进行备注,内容如下:
#SkillSet: 0-1/4/6/9, 1-2, 2-3, 3/4-5, 6-7, 7-8, 2/9-10, 3/10-11
即通过指定每个条件下,能导出的技能来指定
和前一种备注方法相比,没有那个清楚,但是比那个简短

3. 通过公共事件指定,写法如下:

第一条是防止此事件被执行的,后面只需要交替使用条件分歧中的“技能学会”分支和增减技能两条指令就可以书写技能树。
这条初看上去可能比较直观,但其实做多了也没有那么直观,因为如果有20个技能导出最终技能的话,条件分歧需要写20层嵌套……

但这条最重要的特点是可以进行其他的技能树要求,因为“条件分歧”指令实在是太灵活了,稍微多写一些解析的话,就可以实现关于等级、能力值、职业限定等等。
(扩展的方法:条件分歧关于角色有个“姓名”那是可以任意输入东西的,在里面敲比如lv2, str300, class3就可以实现习得限定)

你们觉得哪种比较合适?
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。

Lv2.观梦者

梦石
0
星屑
425
在线时间
78 小时
注册时间
2018-8-4
帖子
187
2
发表于 2018-8-9 00:20:48 | 只看该作者
本帖最后由 若得 于 2018-8-9 00:22 编辑

不知为何特别想看那个20个技能导出的最终技能……
第一种比较合适的样子
对不起。是我拿刀捅了你。只是,只是……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13096
在线时间
3787 小时
注册时间
2013-7-18
帖子
2279
3
发表于 2018-8-9 06:08:40 | 只看该作者
学习条件其实并不重要,主要是让低级技能不要被抛弃,技能的专属性和联动性,可以让技能发挥最大的作用,技能升级的级数尽量不要太高,5级差不多了,每一级的要求,经验或其他什么,要求高一点。

1,专属性,比如最初的技能火1,升到5级后,比中期的水技能1级的威力还差,但是这个火5有个专属性,就是对特定弱火怪有无视防御的效果,也就是说,中期有些敌人其他技能效果不好(其他属性防御很高),就可以用这个火5来打,另外,中级的火技能依然可以设置,不用取消。也可以用火5作为前置。


2,联动性,联合触发,火5和水5触发水火大招,比较简单,较复杂的联动,分支联动,低级的火技能有个分支,叫火B,低级的水技能有个分支叫水B,火B和水B可以触发分支大招,威力要比正牌水火大招小,但有一些特殊效果,比如迟滞。这种设计会让技能树很丰富,分支也多,可选择策略也丰富,但工作量也会多。

点评

答非所问……  发表于 2018-8-9 08:58
水……水火大招……  发表于 2018-8-9 08:07
山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
385
在线时间
46 小时
注册时间
2017-12-4
帖子
42
4
发表于 2018-8-9 09:56:15 | 只看该作者
就我的感觉
实际上你一开始就已经设计好了最好的配置形式
只不过囿于各种桎梏直接忽略了这种方式

[001]治疗1:无前置要求
[002]治疗2:需要治疗1
[003]治疗3:需要治疗2
[004]还原:无前置要求
[005]还原X:需要还原、治疗3
[006]火1:无前置要求
[007]火2:需要火1
[008]火3:需要火2
[009]冰1:无前置要求
[010]冰2:需要冰1、治疗2
[011]冰3:需要冰2、治疗3


显然这么写是最清楚的
为了程序上更好写正则
可以拟定一套标准化格式

治疗2=治疗1+
治疗3=治疗2+ // 双斜杠后面算注释
还原=
还原X=还原+治疗3+


然后规则文本随便写在什么地方
通过程序读取就好啦
比如指定 10038 号公共事件中
只能写显示文章指令
读取其中的所有文章
拼接以后以字符串一行一行地解析

至于特技数据库该怎么编辑
还是按照原来的方式编辑
只不过编辑完成后
对应修改 10038 号配置的指令即可

需要注意的是
一定要在游戏开始的时候
对配置指令做校验
出错立即提示并终止程序
有利于排除错误
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37789
在线时间
5399 小时
注册时间
2006-11-10
帖子
6546
5
发表于 2018-8-9 10:20:08 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-8-9 10:33 编辑

技能树这种还是能直观设置的比较好, 毕竟对于大多数人来说, 技能都是想加就加为所欲为, 在小地方备注比较难修改和浏览。

所以咱推荐放公共事件, 可以通过角色备注关联至某个公共事件作为这个角色的技能树。

然后要使用技能名还是ID, 咱推荐用ID, 虽然ID不太直观,但是名字可能会随时修改, 比较容易引起BUG,

最后, 如何设置,  使用备注如何

1 - 2 - 5 - 7 - 8
1 - 3 - 4 - 10
     1 - 6 - 10
          9 - 10

左边是右边的前置, 有多个前置就重复写, 让设置的人自己拟个树状结构, 这样 20层设置也是前面多几串数字吧XD
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
385
在线时间
46 小时
注册时间
2017-12-4
帖子
42
6
发表于 2018-8-9 10:27:52 | 只看该作者
话说回来
关于 20 层嵌套的问题
倒是有迂回的技巧可以稍微缓解一下
RUBY 代码复制
  1. # 多层嵌套的写法
  2. if(cd1)
  3.   if(cd2)
  4.     if(cd3)
  5.       if(cd4)
  6.         obj.doSth
  7.  
  8. # 迂回的写法
  9. while(true)
  10.   if(not cd1)
  11.     break
  12.   if(not cd2)
  13.     break
  14.   if(not cd3)
  15.     break
  16.   if(not cd4)
  17.     break
  18.   obj.doSth
  19.   break

……我本来是这么想的
然后看了下 RM 的事件编辑器
eeeemmmmmmmm……
语法要素太匮乏了
连逻辑非操作都要好几行才能模拟
不过至少把 20 层嵌套压成了两三层的样子
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
351
在线时间
58 小时
注册时间
2018-7-5
帖子
23
7
发表于 2018-8-9 10:57:40 | 只看该作者
比较喜欢第一种,但是感觉在“职业”备注栏可能更好一点,技能树根职业对应,给职业设置完技能,然后旁边直接对照着备注
对技能加限制的话,在“技能”备注栏做类似操作可能更直观
对于第三种,太过直观了,一旦对某个技能或限制条件进行修改,对萌新来说,出错率可能比较高

点评

技能树可以跟着角色走, 跟职业走的那个叫技能-等级习得表……  发表于 2018-8-9 17:20
要早起~要搬砖~要家务~要锻炼~要制RM~要追番~要早睡~
-----------------------------------------------------------------
嗯~只是想想~真的~想想就好~想想…
-----------------------------------------------------------------
拖着肩膀~拖着脚~又是一天~
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34870
在线时间
4148 小时
注册时间
2007-12-15
帖子
9981
8
发表于 2018-8-9 11:48:46 | 只看该作者
看了半天……除了一条直线的,
A1-A2-A3-A4
B1-B2-B3-B4
其他我想不明白ORZ

感觉可以这样试一下,随便画个树状结构,

用两种写法分别写一下的话,哪个能扔几天还能看明白,就是哪个直观。

点评

我理解错了?编号是技能就是没单独写出来,获得24技能的情况下,获得技能24,获得6和24的情况下获得技能246  发表于 2018-8-11 07:24
你这个是加点技能数,树状是往下按规定逻辑排列的  发表于 2018-8-11 04:49
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3263
在线时间
3616 小时
注册时间
2006-9-6
帖子
37399

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

9
发表于 2018-8-9 23:59:45 | 只看该作者
你写个备注来读取都好,这样事件设计反而容易麻烦
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1103
在线时间
103 小时
注册时间
2017-7-9
帖子
233

开拓者

10
发表于 2018-8-11 04:45:21 | 只看该作者
看你什么技能数,普通角色等级(经验值)走的就是树状图结构,加点的就是8L那种,职业的不仅需要角色固定等级还有的需要对应角色属性(包括转职技能等等。。)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 12:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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