找回密码
 点一下
查看: 2459|回复: 19

[经验分享]超简单的实现技能级别限制。

[复制链接]
发表于 2011-5-24 19:44:56 | 显示全部楼层 |阅读模式
首先说原理

技能级别+属性<=英雄等级
需求可以获得技能计数已完成于单位(技能级别)
行为技术已完成于单位(属性级别,英雄等级)英雄等级本身也相当于一个能释放很多层的buff。属性其实也是可以释放很多层的buff。

我们能在英雄级别提升的时候给予单位属性A,可以针对每级给不同的数值,但是我们这里需要的是,偶数级别属性A+1。

这样等级1的时候(注释,我的英雄基础级别为LV1,不是LV0,此时英雄老练buff数实际上是2,实现方法见备注),技能级别可以升1点,属性A为1
当等级2的时候(3),加1属性A,此时技能依然只能加1点,属性为2
等级3的时候(4),技能能加2点,属性A为2.
等级4的时候(5),加1属性A,技能能加2点,属性A为3.
等级5的时候(6),技能能加3点,属性A为3.
以此类推能实现所有技能的级别需求。当然每个技能都需要对应自己技能等级的需求。把需求放在Learn技能对应技能的需求位置。

另外,大招可以弄另一个属性来实现例如属性B,需求还是同刚才,但是等级1的时候,我们就设置属性为6,因此当我们英雄6级的时候(7)属性为6,技能能加1点。
好吧,这里是dota我们大招能升好多级对吧。那么11级的时候12-2=10。我们在8级的时候给英雄B+4属性,此时属性是10,直到英雄升级到11级才能学2级大招。
等级12的时候我们再给属性B+4,这样16级的时候级别计数17,属性B=14,此时能升3级大招!


这样我们只需要2个属性(设置为隐藏)+每个技能对应1个需求,就可以完成war3那样1,3,5,7升级小招,6,11,16升级大招了

==============
b备注:如何让英雄上来就是1级?直接把index 0的经验需求设置为0好了,
另外对应的Learn技能上point =0 pointperlevel =1,这就是war3的上来等级为1,有1技能点!


==============
http://bbs.islga.org/read-htm-tid-55700.html
联动一下

这是有关该贴问题的部分疑难解惑。

评分

参与人数 1威望 +4 收起 理由
麦德三世 + 4 不错的想法~~

查看全部评分

发表于 2011-5-24 19:52:41 | 显示全部楼层
这个想法挺不错的呢~~
回复

使用道具 举报

 楼主| 发表于 2011-5-24 20:23:26 | 显示全部楼层
正在利用這個想法做某些地圖的級別限制,用著挺方便。

屬性增加分別在等級2,4,6,8等偶數級別。
可以做出多種需求,例如技能等級<=英雄等級,技能等級<=英雄等級-3(3級開始,後續每級能生1級)
以及技能要求3,5,7,9。實際上算法是技能等級+屬性<英雄等級-1,這樣原本1,3,5,7的技能就從3開始了。
如果大招只有1級,1個屬性就夠,大招只要滿足公式大招級別+5<=英雄級別就行了。

當然,以這個原理為基礎,可以設計各種規則的技能等級需求。
回复

使用道具 举报

发表于 2011-5-24 21:41:59 | 显示全部楼层
呵呵,学习了先
回复

使用道具 举报

发表于 2011-5-25 10:51:29 | 显示全部楼层
数据+触发=解决问题的最有效办法
提个问题,英雄提升等级时设置A+1,如果有个一次性经验让英雄一下提升了4、5个等级,这个设置会不会出问题呢。原来在WE里遇到过。
回复

使用道具 举报

 楼主| 发表于 2011-5-25 13:01:30 | 显示全部楼层
引用第4楼okmpl1350于2011-05-25 10:51发表的  :
数据+触发=解决问题的最有效办法
提个问题,英雄提升等级时设置A+1,如果有个一次性经验让英雄一下提升了4、5个等级,这个设置会不会出问题呢。原来在WE里遇到过。

首先,此解决方案为纯数据编辑器内容。

其次,就是你每次升级都设置属性A+1,只会让你有好几级无法升这个技能而已。
因为,这个公式是

允许提升技能级别 = 英雄级别 - 属性A

因为你英雄级别+1的同时,属性A也+1,于是你该技能在该级别,没有提升技能级别上限。
直到你某级别英雄级别+1,属性A不变,此时该技能,在该级别,技能级别上限+1。

因此,设置偶数级别属性A+1,的实际作用是奇数级别的时候允许提升技能级别。

只要你别设置某级别属性A+2就行。因为这种状况下,你上一级能学N等级该技能,升级后反而只能学N-1级别技能,不符合逻辑。
回复

使用道具 举报

 楼主| 发表于 2011-5-25 13:10:56 | 显示全部楼层
有关该实现方法的想法来源于这里:
http://bbs.islga.org/read-htm-tid-44359.html

这里有实现如何控制级别,但是教程中是对应每个不同级别增加了一个buff,例如英雄等级6的时候增加了一个叫level 6的buff,然后设置验证器让这个level 6的buff在英雄等级为6的时候生效。
然后设置技能A的升级条件是这个level 6的buff存在。

而升级普通1,3,5技能为
技能等级0的时候 and level 1存在
or
技能等级1的时候 and level 3存在
or
技能等级2的时候 and level 5存在
以此类推……
于是就有了技能等级+buff<=英雄级别……
回复

使用道具 举报

发表于 2011-5-25 15:28:20 | 显示全部楼层
等級的限制不是可直接可用neutral buff 下去判斷嗎?

這樣是不是有點繞遠路?
回复

使用道具 举报

发表于 2011-5-25 15:41:17 | 显示全部楼层
可以用buff,但问题是,升级后如何自动添加buff层数。

升级后可以自动添加自定义属性值是可以的,所以这样子其实反而方便。
回复

使用道具 举报

发表于 2011-5-25 23:16:04 | 显示全部楼层
呃,如果老兵行为可以计数的话,那么建立如下一些需求节点应该会更方便一些吧。

假设老兵行为是LvUp,我们用{LvUp}表示该行为的叠加次数,n是开始学习的等级,m是学习间隔,那么技能等级满足下式就是可以学习的喽

< ( {LvUp} - ( n + 1 - m) ) / m

如果n=1,m=2,也就是1,3,5,7,9...可以学习,那就是&#160;&#160; <&#160;&#160;{LvUp}&#160;&#160;/ 2
如果n=6,m=5,也就是6,11,16,21...可以学习,那就是&#160;&#160; <&#160;&#160;( {LvUp} - 2 )&#160;&#160;/ 5

因为需求节点是可以复用的,那么每个技能就只需要再加两个节点,就可以生成一个需求了吧。这样是不是可行的呢?
回复 1 0

使用道具 举报

 楼主| 发表于 2011-5-26 00:39:38 | 显示全部楼层
比較囧的是,遊戲中的需求沒有減法,只有加法、乘法、除法、求餘這四種運\算。

因此,你必須稍微變形一下。

你說的這個算法模式確實很有效。省卻了buff。
回复

使用道具 举报

发表于 2011-5-26 02:01:52 | 显示全部楼层
需求里面虽然不可以填负数,但是需求节点里面的常数是可以填负数的。不过我不清楚这样是否有效呢。

如果公式变一下的话,就是
{LvAbi}  < ( {LvUp} - ( n + 1 - m) ) / m

{LvAbi} * m + n + 1 <  {LvUp}  + m
如果 n + 1 >= m,{LvAbi} * m + ( n + 1 - m ) <  {LvUp}
否则,{LvAbi} * m <  {LvUp} + ( m - n - 1)

应该差不多可以解决这类问题了。
回复

使用道具 举报

发表于 2011-5-26 02:50:46 | 显示全部楼层
angerking 你有没有加开挖死人的小黑屋群?
回复

使用道具 举报

发表于 2011-5-26 03:50:59 | 显示全部楼层
我刚才试了下负数常数是有效的。

(0 + -1) <0

成立。
回复

使用道具 举报

发表于 2011-5-26 04:06:05 | 显示全部楼层
支持负数的话最好不过了,如果要把运算转化为加法和乘法的话,需要建立的需求节点会多不少呢。

这样,学习技能的等级限制条件,只要有可以用四则运算表达的公式的话,都可以依照这个思路来处理了。
回复

使用道具 举报

发表于 2011-5-26 05:02:23 | 显示全部楼层
其实我一直都是用老兵行为求余来做技能学习需求的。

不过这里其实有个问题:提示信息做起来比较麻烦。比方说你4级的时候要提示“需要5级才能学习下一个等级”什么的,要怎么做?因为用的是单一的需求设定,所以要每级显示不同不是那么容易的
回复

使用道具 举报

 楼主| 发表于 2011-5-26 09:40:08 | 显示全部楼层
有关SC2的群我只加了
47291133SC的大厅

74822124刀锋墨客的远征(论)

最近想先做张完整的图出来,正在摸索中,好多东西还不会。特别是Actor的应用很差……

目前我的地图中已经完成的有
弹药系统(有用触发来自动装填)
自动隐形(类似隐形刺客大招的效果)
暴击(这个按Renne例子做的)
Miss系统(和暴击原理相同,但是利用多层叠加来实现变更miss机率)
其他的很多技能没什么亮点了。
回复

使用道具 举报

发表于 2011-5-26 14:51:45 | 显示全部楼层
70445270

加这个
回复

使用道具 举报

发表于 2011-6-8 00:26:42 | 显示全部楼层
菜鸟遇到2个为题:
1.learn技能中点数=0,每级点数=1,index 0的所需经验=0,结果英雄初始级别是1,但是有2个技能点。
2.偶数级(初始级别1级)属性A+1,需求中也是按照上述方法设置如下:
-使用
  -大于或等于
     行为计数 老兵行为计数 已完成于单位
    -总计
      技能计数 某技能 已完成于单位
      行为计数 属性A
-显示

把需求放进对应的技能所需条件中,结果没有作用,英雄每升一级依然可以直接学习更高级技能。
是不是还需要其他注意事项?
回复

使用道具 举报

发表于 2011-6-8 22:51:30 | 显示全部楼层
正在愁怎么做这个技能等级限制!太感谢LZ了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-7 07:41 , Processed in 0.122721 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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