Project1

标题: 关于战斗中技能的chain [打印本页]

作者: uyt6u7r    时间: 2018-12-25 01:10
标题: 关于战斗中技能的chain
rt
如果想要实现这样的效果:
为每个技能添加属性,在发动技能的时候记录属性的chain数,通过特定的chain数改变技能效果
例如:
技能a:火属性,对单个敌人造成攻击力100%的伤害;当当回合火属性chain数大于3时,技能效果改变为对全体敌人造成攻击力88%的伤害
目前思路是通过yep的action sequence添加变量设置,但是没有摸索出合适的方法

特此请教
作者: ekmomo    时间: 2018-12-25 10:45
本帖最后由 ekmomo 于 2018-12-25 13:15 编辑

本楼理解错误,直接看三楼即可。

某角色多次使用某类技能时触发

作者: ekmomo    时间: 2018-12-25 11:03
本帖最后由 ekmomo 于 2018-12-25 13:10 编辑

eleEffect.zip (669 Bytes, 下载次数: 66) 除了YEP战斗核心以及目标核心以外,你还需要这个插件。当你加载这个插件时,属性攻击是被自动计算的。
你可以在需要应用额外效果的技能里填写如下备注
  1. <Custom Target Eval>
  2. if (BattleManager._eleCount[1] > 3 && user.isActor()) targets = this.opponentsUnit().aliveMembers();
  3. else targets = Yanfly.Target.Game_Action_makeTargets.call(this);
  4. </Custom Target Eval>
复制代码

以上代码中_eleCount[1]代表1号属性,在默认工程中是物理。你可以自定义多种属性,如_eleCount[2]在默认工程中代表 炎 属性。
如果你希望敌方角色也应用额外效果,你可以删除判断中的 && user.isActor()。

伤害 依然在 伤害公式中 设置
  1. BattleManager._eleCount[1] > 3 ? user.atk * 0.88 : user.atk
复制代码


你也可以配合YEP的技能核心(SKILLCORE)创造一些更有意思的连锁效果,如:
  1. <AFTER EVAL>
  2. if (BattleManager._eleCount[3] > 5) user.addState(2);
  3. //当3号属性回合内累计被使用5次时,角色获得2号状态。
  4. </AFTER EVAL>
复制代码


再比如,你可以在一个火属性技能中加入:
  1. <AFTER EVAL>
  2. if (BattleManager._eleCount[5] > 1) target.addState(17);
  3. //如果回合内有人使用过水属性攻击,目标获得17号状态(比如叫雾气?)。
  4. </AFTER EVAL>
复制代码

另外,因为在需要在每个回合开始时清零计数器,所以这个插件仅适用于 标准回合战斗(DTB或STB),不适用于 ATB 及 CTB。
作者: uyt6u7r    时间: 2018-12-26 23:46
ekmomo 发表于 2018-12-25 11:03
除了YEP战斗核心以及目标核心以外,你还需要这个插件。当你加载这个插件时,属性攻击是被自动计算的。
你可 ...

dtb模式下测试效果完美、
谢谢大佬(拜倒




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