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

Project1

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

[有事请教] 请问前辈们如何实现buff叠加和状态影响新状态触发

[复制链接]

Lv2.观梦者

梦石
0
星屑
277
在线时间
13 小时
注册时间
2010-10-6
帖子
11
跳转到指定楼层
1
发表于 2018-7-18 14:51:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 smayuk2046lt 于 2018-7-20 09:05 编辑

本人代码小白,还处在只能扒前辈们的代码,扒了也不一定能研究明白的阶段,找遍了教程和范例也没弄明白这两种情况如何实现,只能请教各位了

第一个问题是关于buff叠加,我设置了一个武器攻击100%给目标一层毒,每个回合掉50血,如何才能实现每次攻击增加一层毒,从而使每回合的伤害提高
目前自己的想法是给一层毒、两层毒分别设置状态,然后用公共事件的分歧条件去调整状态
但是涉及到类似用法的技能太多了,而且当叠加层数大量增加的时候根本没办法设置那么多个状态
另外想到了设置一个变量,每次攻击使变量增加1,然会伤害方面利用这个变量做一个公式,但是代码小白完全不知道这个思路怎么写......

在YEP状态核心插件里面找到了有关最大叠加层数的设定,然而在教程和帮助文件里完全没找到与叠加相关的命令(也可能是我太菜了看到也没看懂,没认出来)


第二个问题是关于状态影响新状态触发几率,比如我设置了一个武器攻击时有15%的几率给目标施加一个流血,如何实现当目标受另一种状态X影响时,提高被施加流血的几率
这个问题完全没有思路了,跪求各位大佬指点


第一个问题已经解决了,代码如下

<Custom Apply Effect>
target.slowpoison =target.slowpoison||0 ;
target.slowpoison+=1 ;
target.setStateCounter(453 ,target.slowpoison) ;
</Custom Apply Effect>

</Custom Remove Effect>
target.slowpoison=0
target.removeStateCounter(453) ;
</Custom Remove Effect>

<Custom Turn End Effect>
target.gainHp (target.mhp*0.002*target.slowpoison );
target.startDamagePopup() ;
</Custom Turn End Effect>

目前正在测试把DOT部分换成DEBUFF效果,第二个问题根据二楼大大提供的思路也在试验~

代码-Dot叠堆.png (187.58 KB, 下载次数: 33)

代码-Dot叠堆.png

Lv3.寻梦者

梦石
0
星屑
1525
在线时间
308 小时
注册时间
2011-7-23
帖子
150
2
发表于 2018-7-19 14:49:12 | 只看该作者
1. 在启用yep状态核心插件(YEP_BuffsStatesCore)的场合下 <State x Turns: +y>这个指令用于技能或者道具的备注栏 可以使该技能或道具能增加目标y号状态,持续x回合
2. 在伤害公式中使用v[x]代表调用x号变量的值   注意,在没有使用yep的战斗序列插件自由调换步骤的场合,伤害公式的触发阶段在公共事件调用阶段之前
3. 启用yep的持续状态插件(YEP_X_ExtDot,需要前置插件 状态核心和战斗核心)在状态的备注栏可以写诸如 <DoT Formula: a.luk * 1.5 - b.luk + 10> 的插件命令来自定义状态的持续伤害或恢复数值,该类命令允许使用v[x]调用变量
4. 状态的特性中可以再设置状态有效度 你只需要把X状态的特性中设置一个数值大于100%的流血状态有效度就可以增加持有X状态的敌人被附加流血的机率
望有助
不知身之何死,愿幻梦不灭。不知情之何起,愿一往而深。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
277
在线时间
13 小时
注册时间
2010-10-6
帖子
11
3
 楼主| 发表于 2018-7-20 08:59:25 | 只看该作者
墓雷 发表于 2018-7-19 14:49
1. 在启用yep状态核心插件(YEP_BuffsStatesCore)的场合下 这个指令用于技能或者道具的备注栏 可以使该技 ...

首先非常感谢您的帮助~
YEP的<State x Turns: +y>这个命令我之前尝试过,但是它只能影响持续回合,并不能改变叠加层数,目前我用另一段代码解决这个问题了。
另外关于伤害公式,我没装DOT插件,只装了状态核心,尝试了一段伤害公式代码也生效了,不知道是不是状态核心本身包含了这些代码,而DOT扩展出来的代码我可能完全没用到

<Custom Apply Effect>
target.slowpoison=target.slowpoison||0;
target.slowpoison+=1;
target.setStateCounter(453 ,target.slowpoison);
</Custom Apply Effect>

</Custom Remove Effect>
target.slowpoison=0
target.removeStateCounter(453);
</Custom Remove Effect>

<Custom Turn End Effect>
target.gainHp(target.mhp*0.002*target.slowpoison);
target.startDamagePopup();
</Custom Turn End Effect>

以上是我目前用的,这个技能测试已经没问题了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1525
在线时间
308 小时
注册时间
2011-7-23
帖子
150
4
发表于 2018-7-20 14:12:38 | 只看该作者
smayuk2046lt 发表于 2018-7-20 08:59
首先非常感谢您的帮助~
YEP的这个命令我之前尝试过,但是它只能影响持续回合,并不能改变叠加层数,目前 ...

emm MV的状态并没有层数这种概念  一般是通过更换状态来改变图标来达成层数更换的显示效果
我使用添加回合的命令的本意是通过显示buff的持续回合数来表达层数来着...可能有点词不达意了
另外DOT插件是允许使用特定数值或者伤害公式来决定状态的持续伤害/恢复HP量 包括一个目标对另一个或多个目标的状态  所以没有用上很正常
不知身之何死,愿幻梦不灭。不知情之何起,愿一往而深。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
277
在线时间
13 小时
注册时间
2010-10-6
帖子
11
5
 楼主| 发表于 2018-7-22 13:03:11 | 只看该作者
墓雷 发表于 2018-7-20 14:12
emm MV的状态并没有层数这种概念  一般是通过更换状态来改变图标来达成层数更换的显示效果
我使用添加回 ...

层数这个概念可以通过状态核心实现,我开始在状态核心的帮助文件里也没找到相关命令,但是我在插件设置里面发现了一个叫Limit的可设置属性,所以我一度怀疑状态核心拓展了关于层数的概念。
后来我想到通过一个变量来实现层数的堆积,但是代码基础不好完全摸不着头脑,直到看了另一位前辈的技能代码才找到相关的命令,我现在用这个层数和持续回合数都能正常显示在图标上,互不冲突。而层叠加的效果就通过最后一段,在公式里添加这个层数变量来控制,感觉还是挺好用的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 13:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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