Project1

标题: 技能冷却的简单实现 [打印本页]

作者: 578783944    时间: 2016-5-1 20:40
标题: 技能冷却的简单实现
本帖最后由 578783944 于 2016-5-20 18:06 编辑

事实上,我看过有很多冷却系统了,比如豪华版冷却系统,但是比较繁琐。
我写了一篇博文,讲的是如何不靠外挂脚本最简单的方式实现技能冷却。
这种方式只需添加几行代码即可,实现的应该是比较完美的。
请看这里:
技能冷却的最简单实现方法(代码实现)
[line]3[/line]
更新:我已经在文章中添加了注意事项以及脚本适用范围

我的目的:就是帮助新人或者有需要的人,带领他们去自己探索而不是做一个伸手党,这样脚本出错率会更小,毕竟我自己对脚本的更改很多,如果单纯使用外挂脚本很容易出问题。

对于提出宝贵意见的各位,我深表感谢。

如果链接再次失效,请访问我的博客主页:不如怀念
作者: 喵呜喵5    时间: 2016-5-1 21:10
呃?虽然说是简单实现……所以技能冷却还有其他实现思路吗?
作者: 578783944    时间: 2016-5-1 22:58
喵呜喵5 发表于 2016-5-1 21:10
呃?虽然说是简单实现……所以技能冷却还有其他实现思路吗?

呃,我不太明白你的意思?
我的初衷就是,不依靠外挂脚本实现,而且这样的实现方式是随战斗结束,所有冷却也就消失了,豪华版冷却系统不仅是复杂,而且外挂脚本很容易冲突,而且我记得貌似有人说过他的冷却系统随战斗结束并不会消失。
作者: 578783944    时间: 2016-5-1 23:01
喵呜喵5 发表于 2016-5-1 21:10
呃?虽然说是简单实现……所以技能冷却还有其他实现思路吗?

我再多说一句吧,我认为仅仅是实现,其实这个问题并不难,写清楚实现过程,让新手或者说有需求的人学习到这个思想我觉得也是比较重要的。
作者: 喵呜喵5    时间: 2016-5-1 23:30
578783944 发表于 2016-5-1 22:58
呃,我不太明白你的意思?
我的初衷就是,不依靠外挂脚本实现,而且这样的实现方式是随战斗结束,所有冷 ...

我觉得奇怪的是实现思路,没看过所说的豪华技能冷却的代码,但是技能冷却的实现思路不就是给每个战斗角色添加一个哈希,然后扣除 MP 的时候附加冷却,回合结束时更新冷却吗,还有其他的实现思路吗
作者: fux2    时间: 2016-5-2 00:26
中规中矩,很实用的东西,我之前自己写的一个跟你这个差不多。
作者: RyanBern    时间: 2016-5-2 00:38
发现两个问题:
1. 是否考虑到敌人的CD?目前对ID的标识只考虑到了主角,如果将敌人也考虑进去,感觉会出问题。
2. 是否考虑到在菜单中使用的特技?虽然在菜单中使用的特技无需设置CD,但是如果出现一个既可以在菜单里使用又可以在战斗中使用的需要CD的技能,那么目前的脚本会有问题。

另外建议给每个角色设置一个Hash表示CD,而不是在Scene_Battle里面设置统一的一个Hash来表示所有人的CD。当然,你还是需要在战斗开始时清空所有人的CD。

纠正一个概念上的错误,所谓外挂脚本只是为了方便不会脚本的新人使用的代码集合。它只是将你写在这里的代码都整合到了一页上,并加以精简和优化。因此从原理上来讲使用外挂脚本和直接在原位置上修改没有太大的差别。并且脚本冲突的问题及其复杂,如果外挂脚本兼容性做得好的话效果应该比直接在上面修改要好,并且日后用起来也方便。

总之,实现还远不完美,希望楼主继续努力。
作者: chd114    时间: 2016-5-2 00:58
578783944 发表于 2016-5-1 22:58
呃,我不太明白你的意思?
我的初衷就是,不依靠外挂脚本实现,而且这样的实现方式是随战斗结束,所有冷 ...

那个貌似是我干的···为了还原真实性,假如遇敌频繁的话那种大招类的技能会变得很廉价
其实战斗结束冷却消失与否就是一段脚本要不要加的问题
作者: 578783944    时间: 2016-5-2 10:01
RyanBern 发表于 2016-5-2 00:38
发现两个问题:
1. 是否考虑到敌人的CD?目前对ID的标识只考虑到了主角,如果将敌人也考虑进去,感觉会出问 ...

1.这个我已经考虑过了,如果敌人不需要冷却,事实上只需要加一句self.is_a?(Game_Actor),因为我自己用的就是敌人也需要CD,这个需要设置一下敌人出手方式。
2.这个也很好办,因为我觉得如果是回合制的话,一般仅需要在战斗中冷却,如果菜单中冷却,同样的思路,让变量初始化在$game_party中即可。可分离也可不分离。
3.我设置的统一Hash,采用偏移量,所以不会引发冲突。
4.外挂脚本这个问题,其实我更想说的是,一般人直接拿去插入脚本不会怎么看,容易引发冲突,如果是内嵌的话,自己懂了思想,在实现过程中也会注意到问题。
作者: 578783944    时间: 2016-5-2 10:05
chd114 发表于 2016-5-2 00:58
那个貌似是我干的···为了还原真实性,假如遇敌频繁的话那种大招类的技能会变得很廉价
其实战斗结束冷 ...

我懂你的意思,其实根据游戏性质的不同,个人想法就不太一样,我这个更倾向于梦幻西游那种回合制的
作者: chd114    时间: 2016-5-2 10:48
578783944 发表于 2016-5-2 10:05
我懂你的意思,其实根据游戏性质的不同,个人想法就不太一样,我这个更倾向于梦幻西游那种回合制的 ...

要看技能实际情况和遇敌频率来决定
作者: 578783944    时间: 2016-5-2 10:52
chd114 发表于 2016-5-2 10:48
要看技能实际情况和遇敌频率来决定

嗯也是,事实上,我本不想发布在技术区,因为我仅仅就是分享一个自己的学习过程中的心得。无奈,发布在提问区好像不太合适。
作者: chd114    时间: 2016-5-2 13:27
578783944 发表于 2016-5-2 10:52
嗯也是,事实上,我本不想发布在技术区,因为我仅仅就是分享一个自己的学习过程中的心得。无奈,发布在提 ...

发讨论区
作者: chd114    时间: 2016-5-2 13:28
578783944 发表于 2016-5-2 10:52
嗯也是,事实上,我本不想发布在技术区,因为我仅仅就是分享一个自己的学习过程中的心得。无奈,发布在提 ...

发讨论区




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