Project1

标题: 请问如何设置一个状态或开关,让技能成功率倍增 [打印本页]

作者: qknight    时间: 2017-5-13 16:07
标题: 请问如何设置一个状态或开关,让技能成功率倍增
在下在试着做一个海战场景,所有船只的攻击都是用技能来实现的。其中,火炮技能的成功率本身只有18%,但在下想设置两种场景,比如抵近射击时,让成功率放大5倍变成90%,远程乱轰时,让成功率降低数倍变成4%,求教有没有临时增加减少技能成功率的方法。

作者: linphy    时间: 2017-5-13 18:32
你会写插件就不难实现,核心代码在这里:
  1. Game_Action.prototype.apply = function(target) {
  2.     var result = target.result();
  3.     this.subject().clearResult();
  4.     result.clear();
  5.     result.used = this.testApply(target);
  6.     result.missed = (result.used && Math.random() >= this.itemHit(target));  //这句是判定是否miss
  7.     result.evaded = (!result.missed && Math.random() < this.itemEva(target)); // 这句是判定是否闪避
  8.     result.physical = this.isPhysical();
  9.     result.drain = this.isDrain();
  10.     if (result.idear()) {
  11.         if (this.item().damage.type > 0) {
  12.             result.critical = (Math.random() < this.itemCri(target));
  13.             var value = this.makeDamageValue(target, result.critical);
  14.             this.executeDamage(target, value);
  15.         }
  16.         this.item().effects.forEach(function(effect) {
  17.             this.applyItemEffect(target, effect);
  18.         }, this);
  19.         this.applyItemUserEffect(target);
  20.     }
  21. };
复制代码

作者: qknight    时间: 2017-5-13 19:11
linphy 发表于 2017-5-13 18:32
你会写插件就不难实现,核心代码在这里:

改成这样?
  1. result.critical = (Math.random() < this.itemCri(target));
  2. if ($gameVariables.value(1) === 0) {
  3.         var value = this.makeDamageValue(target, result.critical);;
  4.     } else if ($gameVariables.value(1) === 1) {
  5.         var value = this.makeDamageValue(target, result.critical)*5;
  6.     }
  7.             
复制代码

好吧,在下虽然知道要怎么分歧设定,但实在是不会写脚本,求修改
作者: linphy    时间: 2017-5-13 19:30
qknight 发表于 2017-5-13 19:11
改成这样?

好吧,在下虽然知道要怎么分歧设定,但实在是不会写脚本,求修改 ...

你是要提高命中还是提高伤害啊
作者: qknight    时间: 2017-5-13 19:41
linphy 发表于 2017-5-13 19:30
你是要提高命中还是提高伤害啊

只提高命中率,不提高伤害
作者: linphy    时间: 2017-5-14 10:01
qknight 发表于 2017-5-13 19:41
只提高命中率,不提高伤害

改我给你注释的那两行
作者: doranikofu    时间: 2017-5-14 11:25
要是用YEP的话 用buff state core和auto passive state应该能做
用开关控制passive state是否开启
state里面设置属性变更数值
作者: qknight    时间: 2017-5-14 19:39
doranikofu 发表于 2017-5-14 11:25
要是用YEP的话 用buff state core和auto passive state应该能做
用开关控制passive state是否开启
state里 ...

在下要变更的不是人物属性,而是技能的成功率……




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