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

Project1

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

[有事请教] 如何用状态核心做到下次攻击必定被闪避或是必定会暴击

[复制链接]

Lv4.逐梦者

梦石
0
星屑
5732
在线时间
1556 小时
注册时间
2011-6-14
帖子
520
跳转到指定楼层
1
发表于 2019-10-10 15:07:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1000星屑
求解
顺便问问如何做lol巨魔之王的r技能(偷取40%的生命最大值,护甲,魔抗。x回合后返还)

最佳答案

查看完整内容

1.下次攻击必定被闪避 需要设定两个状态,假定状态id分别为11和13 第一个状态(id:11): 备注栏 target.addState(13); 第二个状态(id:13): 特性栏-追加能力值-回避率、魔法闪避率+1000% 备注栏 if(!this.isCertainHit()){ user.removeState(11); target.removeState(13); } 第一个状态是给攻击者的状态,该状态在攻击结算前给敌人施加第二个状态,使其必定闪避攻击,随后消除双方的两个状态。 2.下次攻击必定 ...

Lv3.寻梦者

梦石
0
星屑
1881
在线时间
414 小时
注册时间
2012-7-30
帖子
82
2
发表于 2019-10-10 15:07:42 | 只看该作者
本帖最后由 duoduo1009215 于 2019-10-10 20:40 编辑

1.下次攻击必定被闪避
需要设定两个状态,假定状态id分别为11和13
第一个状态(id:11):
备注栏
<Custom Initiate Effect>
  target.addState(13);
</Custom Initiate Effect>
第二个状态(id:13):
特性栏-追加能力值-回避率、魔法闪避率+1000%
备注栏
<Custom Deselect Effect>
  if(!this.isCertainHit()){
    user.removeState(11);
    target.removeState(13);
}
</Custom Deselect Effect>
第一个状态是给攻击者的状态,该状态在攻击结算前给敌人施加第二个状态,使其必定闪避攻击,随后消除双方的两个状态。
2.下次攻击必定暴击
需要1个状态
备注栏
<Custom Confirm Effect>
  target.result().critical=1;
  value = this.makeDamageValue(target,1);
  user.removeState(12);
</Custom Confirm Effect>
原理是攻击者攻击时让该次攻击必定判定为暴击,随后消除该状态。
3.巨魔的大招
将秒改为回合,巨魔的大招具体效果可以改为:偷取目标40%最大值,护甲,魔抗,其中一半立即偷取,另一半在之后的x回合逐渐偷取,效果结束后返还。
偷取效果,其实就是一个角色加,一个角色减产生的错觉,因此思路就是技能分别给施放者和目标添加状态,一个状态加,一个状态减。
这个技能还需要SkillCore、BaseParamControl来实现,最好再加上SkillCooldowns插件。
需要设定1个技能、三个状态,状态id分别为14、15、16
技能设定:
HP吸收,计算公式b.mhp*0.2(如果你需要该伤害给魔抗削减,可以自己改公式)
备注:
<Before Eval>
  user.addState(14);//分别给自己和目标添加状态
  target.addState(15);
</Before Eval>
<After Eval>
  target.addMaxHp(-0.2*target.mhp);//立即削减敌人的最大生命值、护甲、魔抗
  target.addDef(-0.2*target.def);
  target.addMdf(-0.2*target.mdf);
</After Eval>
第一个状态(id:14):
<Custom Confirm Effect>
  user._defaultmhp=user.mhp;    //记录原本的角色属性,用于状态结束后返还能力值。
  user._defaultdef=user.def;
  user._defaultmdf=user.mdf;
  user._healing=target.mhp*0.2;    //记录偷取的最大生命值、护甲、魔抗的值,等号左边根据你的需要或技能伤害公式修改。
  target._healing=target.mhp*0.2;
  user._addmhp=target.mhp*0.2;
  target._addmhp=target.mhp*0.2;
  user._adddef=target.def*0.2;
  target._adddef=target.def*0.2;
  user._addmdf=target.mdf*0.2;
  target._addmdf=target.mdf*0.2;
  user.removeState(14);    //消除该状态,并给自己添加16号状态。这个14号是用来记录变量的过渡状态。
  user.addState(16);
</Custom Confirm Effect>
<Custom Remove Effect>
  user.addMaxHp(user._addmhp);    //当该状态结束时,增加偷取来的能力值
  user.addDef(user._adddef);
  user.addMdf(user._addmdf);
</Custom Remove Effect>

第二个状态(id:15),即施加在敌人身上的debuff:
备注
持续回合根据你的需求定,以下备注是根据持续4回合来写的:
<Custom Regenerate Effect>
if(user.isAlive()){
  var dmg=Math.ceil(user._healing/4);    //偷取的值的一半除以回合数,作为每回合偷取的值。Math.ceil()表示取整。
  var addmhp=user._addmhp/4;
  var adddef=user._adddef/4;
  var addmdf=user._addmdf/4;
  user.gainHp(-dmg);    //减少被偷取的生命值
  user.startDamagePopup();    //弹出伤害量
  user.clearResult();   
  user.addMaxHp(-addmhp);    //减少被偷取的属性
  user.addDef(-adddef);
  user.addMdf(-addmdf);
}
</Custom Regenerate Effect>
<Custom Remove Effect>
  user.addMaxHp(user._addmhp*2);    //状态结束时,返还属性值
  user.addDef(user._adddef*2);
  user.addMdf(user._addmdf*2);
</Custom Remove Effect>

第三个状态(id:16),即角色的buff:
持续回合数同第二个状态
备注:
<Custom Regenerate Effect>
if(user.isAlive()){
  var dmg=Math.ceil(user._healing/4);
  var addmhp=user._addmhp/4;
  var adddef=user._adddef/4;
  var addmdf=user._addmdf/4;
  user.gainHp(dmg);    //返还偷取的生命值
  user.startDamagePopup();
  user.clearResult();
  user.addMaxHp(addmhp);    //增加偷取的属性值
  user.addDef(adddef);
  user.addMdf(addmdf);
}
</Custom Regenerate Effect>
<Custom Remove Effect>
  user.setMaxHp(user._defaultmhp);    //状态结束时,返还偷取的属性
  user.setDef(user._defaultdef);
  user.setMdf(user._defaultmdf);
</Custom Remove Effect>


建议给该技能设定一个比偷取状态的回合数更长的冷却时间,否则会出现偷取到的属性无限叠加的bug。(这个bug理论上可以修复,但不如直接增加冷却时间方便,而且毕竟lol的训练模式也是这样的。)
没有仔细测试,可能有bug。
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5732
在线时间
1556 小时
注册时间
2011-6-14
帖子
520
3
 楼主| 发表于 2019-10-10 21:22:27 手机端发表。 | 只看该作者
duoduo1009215 发表于 2019-10-10 19:55
1.下次攻击必定被闪避
需要设定两个状态,假定状态id分别为11和13
第一个状态(id:11):

其他的还行  但是必定能闪避是只有一次啊,你这样的效果有点不是我想法,我想是这样,比如你用了一个状态,然后他能让你下次受到的一次攻击必定被闪避,而不是所有攻击,你上闪避状态的话在状态期间的攻击都能被闪避
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1881
在线时间
414 小时
注册时间
2012-7-30
帖子
82
4
发表于 2019-10-10 21:50:58 | 只看该作者
本帖最后由 duoduo1009215 于 2019-10-10 21:52 编辑
347780682 发表于 2019-10-10 21:22
其他的还行  但是必定能闪避是只有一次啊,你这样的效果有点不是我想法,我想是这样,比如你用了一个状态 ...


必定闪避状态消除的条件是角色被选中,而不是受到伤害,所以被攻击并闪避后使可以正确消除闪避状态的。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
6 小时
注册时间
2019-10-19
帖子
3
5
发表于 2019-10-24 11:15:37 | 只看该作者
duoduo1009215 发表于 2019-10-10 15:07
1.下次攻击必定被闪避
需要设定两个状态,假定状态id分别为11和13
第一个状态(id:11):

关于这个闪避我有些疑问:
闪避不应该是给自己加buff然后闪避下一次攻击吗,但是这里为什么是给攻击者加呢?要是这样的话直接给攻击者加一个减100%命中率的状态就好了啊
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-13 15:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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