Project1

标题: 请问如何实现一个全队均摊伤害的被动技能 [打印本页]

作者: Neutron    时间: 2024-2-23 22:52
标题: 请问如何实现一个全队均摊伤害的被动技能
如题,我想为我的角色添加一个可以让全队均摊受到的伤害的被动技能,但是找到的一些插件似乎也没办法解决(不会js)
不知道各位大佬有没有办法。
作者: shiroin    时间: 2024-2-23 23:30
YEP系列插件的提示教程里有相关效果的介绍,需要Auto Passive States、Battle Engine Core和Buffs States Core这三个插件,具体代码我也给你改好了,复制到用于制作该被动技能的状态注释里应该能用
  1. <Custom Passive Condition>
  2. // 仅当场上至少存活1个队友时,效果才会激活
  3. condition = user.friendsUnit().aliveMembers().length > 1;
  4. </Custom Passive Condition>

  5. <Custom React Effect>
  6. // 检查是否造成 HP 伤害
  7. if (this.isHpEffect() && value > 0) {
  8.   // 获取当前存活队友数组
  9.   var allies = target.friendsUnit().aliveMembers();
  10.   // 计算均摊的伤害量
  11.   var dmg = Math.ceil(value / Math.max(1, allies.length));
  12.   // 让受击角色改为承受均摊后的伤害
  13.     value = dmg;
  14.   // 循环遍历每个队友
  15.   for (var i = 0; i < allies.length; ++i) {
  16.     // 获取当前循环的队友
  17.     var ally = allies[i];
  18.     // 检查队友是否为实例且不是受击角色本人
  19.     if (ally && ally !== target) {
  20.       // 让队友承受均摊后的伤害
  21.       ally.gainHp(-dmg);
  22.       // 显示伤害提示
  23.       ally.startDamagePopup();
  24.       // 显示伤害动画
  25.       ally.startAnimation(12);
  26.       // 如果队友承受伤害后死亡
  27.       if (ally.isDead()) {
  28.         // 让死亡队友播放死亡演出
  29.         ally.performCollapse();
  30.       }
  31.       // 清除伤害结果
  32.       ally.clearResult();
  33.     }
  34.   }
  35. }
  36. </Custom React Effect>
复制代码

作者: Neutron    时间: 2024-2-24 11:57
shiroin 发表于 2024-2-23 23:30
YEP系列插件的提示教程里有相关效果的介绍,需要Auto Passive States、Battle Engine Core和Buffs States C ...

谢谢大佬!




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