Project1

标题: 大家一起讨论一下比较有创意的buff的想法或实例呀 [打印本页]

作者: 夏的66rpg    时间: 2018-2-27 12:27
标题: 大家一起讨论一下比较有创意的buff的想法或实例呀
本帖最后由 夏的66rpg 于 2018-2-27 13:31 编辑

我先举几个栗子抛砖引玉吧

关于群体技能的想法
群体技能多多少少有那么一点尴尬,普遍蓝耗较高,单体伤害不如单体技能的伤害高,上buff几率也较低,对于单体目标(比如BOSS)性价比贼低
所以我把群体技能机制设置为 可以根据敌人的数量来增减技能伤害和上BUFF的几率

技能备注(100%附加180状态)
<Damage Formula>
if (this._calculatedBaseDmg) {
value = this._calculatedBaseDmg;
} else {
var totalEnemies = target.friendsUnit().aliveMembers().length;
if (totalEnemies === 1) {
this._calculatedBaseDmg = (user.atk*1-target.mdf*0.7+user.level*5)*2.57;
$gameVariables.setValue(1, 1);
} else if (totalEnemies === 2) {
this._calculatedBaseDmg = (user.atk*1-target.mdf*0.7+user.level*5)*1.98;
$gameVariables.setValue(1, 2);
} else if (totalEnemies === 3) {
this._calculatedBaseDmg = (user.atk*1-target.mdf*0.7+user.level*5)*1.52;
$gameVariables.setValue(1, 3);
} else if (totalEnemies === 4) {
this._calculatedBaseDmg = (user.atk*1-target.mdf*0.7+user.level*5)*1.17;
$gameVariables.setValue(1, 4);
} else {
this._calculatedBaseDmg = (user.atk*1-target.mdf*0.7+user.level*5)*0.90;
$gameVariables.setValue(1, 5);
}
value = this._calculatedBaseDmg;
}
//判断敌人数量,确定具体伤害,给变量1赋值
</Damage Formula>

状态180备注
<Custom Apply Effect>
if ($gameVariables.value(1) == 1) {
var i = (Math.random(i) * 2 + 1);
$gameVariables.setValue(2, i);
} else if ($gameVariables.value(1) == 2) {
var i = (Math.random(i) * 3 + 1);
$gameVariables.setValue(2, i);
} else if ($gameVariables.value(1) == 3) {
var i = (Math.random(i) * 4 + 1);
$gameVariables.setValue(2, i);
} else if ($gameVariables.value(1) == 4) {
var i = (Math.random(i) * 5 + 1);
$gameVariables.setValue(2, i);
} else {
var i = (Math.random(i) * 6 + 1);
$gameVariables.setValue(2, i);
}
if ($gameVariables.value(2) == 1) {
target.addState(181);
target.removeState(180);
} else {
target.removeState(180);
}
//根据变量1的大小,单独判断每个敌人附加181状态的几率
</Custom Apply Effect>

被动:杀戮游戏
如果目标被Actor1击杀,会储存多余伤害,下一回合额外造成储存伤害的50%
伤害技能里备注
<Pre-Damage Eval>
target._currentHp = target.hp;
</Pre-Damage Eval>
<Post-Damage Eval>
if (target._currentHp && target.hp <= 0) {
var dmg = target.result().hpDamage - target._currentHp;
if (dmg > 0) {
var overkillStateId = 71;
user.addState(overkillStateId);
user._overkillBonus = dmg;
}
}
target._currentHp = undefined;
</Post-Damage Eval>

71号状态栏里备注
<Custom Confirm Effect>
if (this.isHpEffect() && value > 0) {
user._overkillBonus = user._overkillBonus || 0;
value += Math.ceil(user._overkillBonus * 0.5);
}
</Custom Confirm Effect>

被动:邪灵之印
任何技能都可以充能0~2层邪灵之印,每1层邪灵之印使物理、魔法技能伤害提升2%,部分技能需要消耗相应邪灵之印层数
伤害技能备注
<Custom Execution>
user._comboStacks = user._comboStacks || 0;
var stacks = user._comboStacks;
stacks += Math.floor(Math.random() * 3);
stacks = stacks.clamp(0, 15);
var comboStateId = 70;
user.setStateCounter(comboStateId, 'x' + stacks);
user._comboStacks = stacks;
</Custom Execution>
如果需要消耗层数才能使用的技能备注
<Custom Requirement>
user._comboStacks = user._comboStacks || 0;
value = user._comboStacks >= 10;
</Custom Requirement>
<Custom Execution>
user._comboStacks = user._comboStacks || 0;
var stacks = user._comboStacks;
stacks -= 10;
stacks = stacks.clamp(0, 15);
var comboStateId = 70;
user.setStateCounter(comboStateId, 'x' + stacks);
user._comboStacks = stacks;
</Custom Execution>
70号状态备注
<Custom Apply Effect>
user._comboStacks = user._comboStacks || 0;
var stacks = user._comboStacks.clamp(0, 15);
user.setStateCounter(stateId, 'x' + stacks);
</Custom Apply Effect>

<Custom Remove Effect>
user._comboStacks = 0;
var stacks = user._comboStacks.clamp(0, 15);
user.setStateCounter(stateId, 'x' + stacks);
</Custom Remove Effect>

<Custom Confirm Effect>
if (value > 0 && !this.item().name.match('Combo')) {
user._comboStacks = user._comboStacks || 0;
var stacks = user._comboStacks.clamp(0, 15);
var rate = 1.00 + stacks * 0.02;
value = Math.ceil(value * rate);
stacks += 0;
stacks = stacks.clamp(0, 15);
user.setStateCounter(stateId, 'x' + stacks);
user._comboStacks = stacks;
}
</Custom Confirm Effect>



作者: jokefeng    时间: 2018-2-27 13:02
一直想问大佬,这些代码无需插件就能使用吗?邪灵之印技能美滋滋,可以边打BUFF边存资源放大招。
作者: 夏的66rpg    时间: 2018-2-27 13:32
jokefeng 发表于 2018-2-27 13:02
一直想问大佬,这些代码无需插件就能使用吗?邪灵之印技能美滋滋,可以边打BUFF边存资源放大招。 ...

需要YEP的技能核心和状态核心
作者: 984724572    时间: 2018-2-28 20:09
随便弄了几个效果,均改自YEP进阶教程
每隔X回合自动附加一次状态
<Custom Battle Effect>
var mingId = 73;
user.addState(mingId);
user._mingCooldown = 0;
</Custom Battle Effect>
<Custom Regenerate Effect>
user._mingCooldown = user._mingCooldown || 0;
if (user._mingCooldown > 0) {
  user._mingCooldown -= 1;
if (user._mingCooldown <= 0) {
  var mingId = 73;
  user.startAnimation(145);
  user.addState(mingId);
  }
}
</Custom Regenerate Effect>
进入战斗后,如果在1次行动之间没有受到伤害,则附加敏捷值+10%的状态,如果第二回合依旧没有受到伤害,再次附加攻击力+10%的状态。
<Custom Turn End Effect>
if (!user._subdueStruck) {
  user.startAnimation(2);
  if (user.isStateAffected(61)) {
    user.addState(61);
    user.addState(62);
  } else {
    user.addState(61);   
  }
}
user._subdueStruck = false;
</Custom Turn End Effect>

<Custom Respond Effect>
if (target.result() && target.result().hpDamage > 0) {
  target._subdueStruck = true;
}
</Custom Respond Effect>
如果角色附加了某个状态,则此技能不显示(不能使用)(对敌人无效)
<Custom Show Eval>
  if (user.addState(114)) {
    visible = true;
  } else {
    visible = false;
  }
  </Custom Show Eval>
作者: 夏的66rpg    时间: 2018-3-1 20:59
本帖最后由 夏的66rpg 于 2018-3-1 21:01 编辑

啊,真是大工程,实验了一下,基本没什么问题,这个技能可以说是非常厉害了!
诺手的血怒和诺克萨斯断头台
效果:1.角色使用任何攻击命中都会使目标陷入出血状态,最高叠加5层,持续3回合(陷入出血状态的目标每次行动会造成伤害,叠加的层数越高,造成的伤害越高)
给角色添加一个 攻击附加状态40
状态40备注:
<Custom Apply Effect>
target._Guillotine = target._Guillotine || 0;
target._Guillotine += 1;
target._bleed = target._Guillotine || 0;
target._bleed *= 0.2;
target.setStateCounter(46, target._Guillotine);
if (target._Guillotine >= 5) {
origin.addState(41); //流血叠加到5层给角色添加状态41(血怒)
target._Guillotine = 4;
};
</Custom Apply Effect>
<Custom Action Start Effect>
var damage = Math.floor(origin.atk*target._bleed);
target.startAnimation(363);
target.gainHp(-damage);
target.startDamagePopup();
</Custom Action Start Effect>
<Custom Leave Effect>
target._Guillotine = 0;
</Custom Leave Effect>

效果2.叠加到5层,角色获得血怒效果,技能伤害+50%,持续3回合
状态41号备注:
<Custom Confirm Effect>
value *= 1.5;
value = Math.ceil(value);
</Custom Confirm Effect>

效果3.诺克萨斯断头台-对目标造成攻击*100%的伤害,目标身上的每层出血状态,都会使诺克萨斯断头台额外造成20%的伤害,对处于5层出血状态的目标造成攻击*300%的伤害,如果目标死于诺克萨斯断头台,那么它将不会进入冷却状态
技能备注:
<Cooldown: 20>
<damage formula>
if (target._bleed < 5) {
value= (a.atk*1.15-b.def*1+a.level*5)*(1+target._bleed);
} else {
value= (a.atk*1.15-b.def*1+a.level*5)*3;
}
</damage formula>

(除了加黑地方,动作系列随意修改)
<target action>
opacity user: 20%, 10
motion guard: user
move user: target, base, 5
action animation
wait: 5
action effect
move user: forward, 180
motion swing: user
wait: 8
opacity user: 100%
wait: 30
move user: target, front base, 15
jump user: 150, 20
face user: forward
motion thrust: user
wait: 5
animation 79: target
wait: 10
action effect
wait: 30
move user: home, 20
face user: forward
motion escape: user
change variable 321 += 1
TP +10: user
if target.hp <= 0
skill 131 cooldown: user, -20
end

</target action>

作者: 夏的66rpg    时间: 2018-3-1 21:04
984724572 发表于 2018-2-28 20:09
随便弄了几个效果,均改自YEP进阶教程
每隔X回合自动附加一次状态

最后一个其实可以改成禁用这个技能,这样就可以对敌人也生效了
作者: 夏的66rpg    时间: 2018-3-2 14:30
魔法攻击貌似没什么用,我把它用作格挡率了 ,攻击有一定几率被格挡,格挡减少40%的伤害,mat越高,格挡几率越大
<Passive Condition: HP Above 0>
<Custom React Effect>
var Parry = Math.floor(Math.random() * 100);
if (this.isHpEffect() && value>0) {
var mat = target.mat
if (Parry <= mat) {
target.startAnimation(361);
var rate = 0.4;
var recoil = value * rate;
var dmg = Math.ceil(recoil);
target.gainHp(dmg);
}
}
</Custom React Effect>
作者: 微笑的迪妮莎    时间: 2018-3-2 14:36
厉害了(ง •̀_•́)ง
大佬我想给弓箭手写个技能,敏捷越高伤害越高的公式该怎么写呢?
作者: 夏的66rpg    时间: 2018-3-2 14:58
微笑的迪妮莎 发表于 2018-3-2 14:36
厉害了(ง •̀_•́)ง
大佬我想给弓箭手写个技能,敏捷越高伤害越高的公式该怎么写呢? ...

技能还是被动?技能的话公式直接添加敏捷就好了呀
作者: 2256538860    时间: 2018-3-2 20:02
本帖最后由 2256538860 于 2018-3-3 17:10 编辑

说实话萌新现在只能帮顶= =
有创意的buff? 死者复苏? 死亡(昏迷)后依旧给角色施展该buff
效果每回合有50%几率自行施展某个技能or攻击or防御
血量为施术者施法时的血量,
瞎想的 感觉不现实。
作者: 夏的66rpg    时间: 2018-3-3 14:05
2256538860 发表于 2018-3-2 20:02
说实话萌新现在只能绑定= =
有创意的buff? 死者复苏? 死亡(昏迷)后依旧给角色施展该buff
效果每回合有5 ...

根据我的理解大概给你做了一个buff
死者复苏:可以将死亡的人复活,恢复血量为施术者施法时的血量,但是会有5回合的副作用状态,目标处于5回合丧尸状态,无法被攻击,也不受操控,每回合有50%的几率使用技能3自动攻击,回合结束即恢复正常,如果在丧尸状态下其他队友死亡视为游戏结束
弄一个复活技能,回复血量公式就写a.hp*1,添加一个状态
状态设置为自动攻击,持续5回合,状态备注
<Cannot Select: All>
<Category: Group Defeat>
<Custom Action Start Effect>
var confuseRate = 0.5;
if (Math.random() < confuseRate) {
var confusionSkill = 3;
var action = user.currentAction();
action.setSkill(confusionSkill);
} else {
user.clearActions();
}
</Custom Action Start Effect>
作者: lohengriny    时间: 2018-3-3 14:17
  1. //奇术 状态交换
  2. Game_Battler.prototype.statesExchange = function(target, level) {
  3.     var my_states = this._states.filter(function(state) {
  4.         return state.negative && state.obstinacy <= level;
  5.     });
  6.     var target_states = target._states.filter(function(state) {
  7.         return (!state.negative) && state.obstinacy <= level;
  8.     });
  9.     my_states.forEach(function(state) {
  10.         target.addState(state.id, state);
  11.         state.remove();
  12.     });
  13.     target_states.forEach(function(state) {
  14.         this.addState(state.id, state);
  15.         state.remove();
  16.     }, this);
  17. };
复制代码

将自己的负面状态与目标的正面状态交换。这里用了我自己的一个系统,状态有 negative? 和 obstinacy 属性,具体太多就不帖了
作者: 绯写    时间: 2018-3-3 23:44
受到楼主启发,做了一个技能。
三重止步,使全体敌方目标陷入恐惧之中,无法行动并且敏捷下降50%,持续3回合。
在持续时间内叠加到3层则立刻受到巨量伤害。
敌方全体,成功率80%。  
概率附加状态47 止步
<Help Description>
   恐惧不前,敏捷降低50%。
   三次受到三重止步影响后,立刻死亡。
  </Help Description>
<Custom Apply Effect>
this._zhibu = this._zhibu || 0;
this._zhibu += 1;
target.setStateCounter(47, target._zhibu); //止步BUFF上增加层数标志
if (target._zhibu >= 3) {
   var damage = 99999; //叠加到3层
   target.gainHp(-damage); //给予伤害
};
</Custom Apply Effect>
<Custom Leave Effect>
target._zhibu = 0; //持续效果结束止步层数归零
</Custom Leave Effect>

感觉给BOSS用效果不错【】,需要玩家对buff进行针对
作者: 绯写    时间: 2018-3-4 02:13
分享一下刚刚研究的成果
这是某个角色的被动技能组
被动技能
负载 能够附加电荷的技能对带有异种电荷的目标造成双倍伤害。——通过技能公式(b.isStateAffected(10) ?2 : 1)可以很轻松地实现
引雷 在户外场景中,雷系分支获得50%的伤害加成。——户外场景战斗开始时增加变量v[n],也可以很轻松实现
磁铁 磁系技能可以强迫敌人对你发起攻击。——技能增加嘲讽,通过YEP插件实现
感电 你的技能将会给敌人带上电荷,正电荷和负电荷相互抵消时,依照(最高叠加层数*此次电荷增长数*0.5*AP)造成魔法伤害。
超频 连续使用一种分支下的技能,每次额外消耗1点次数,伤害提高25%。

其中【感电】我的设计思路是这样的。
首先设计技能【闪电箭】——效果为造成魔法伤害并且附加2层正电。
【静电场】——效果为造成魔法伤害并且附加2层负电。
效果内添加附加状态:10号状态——正电,11号状态——负电,12号状态——正电+2,13号状态——负电+2
正电+2状态备注如下:
<Custom Apply Effect>
target._bianhua = target._bianhua || 0; //电荷变化值
target._zhengdian = target._zhengdian || 0; //正电层数
target._zhengdian += 2;
this._bianhua = 2;
target.setStateCounter(10, target._zhengdian); //正电BUFF上增加层数标志
</Custom Apply Effect>

负电+2状态备注如下:
<Custom Apply Effect>
target._bianhua = target._bianhua || 0; //电荷变化值
target._fudian = target._fudian || 0; //负电层数
target._fudian += 2;
this._bianhua = 2;
target.setStateCounter(11, target._fudian); //负电BUFF上增加层数标志
</Custom Apply Effect>

正电状态备注如下:
<Custom Action End Effect>
if (target._zhengdian==target._fudian&&target._zhengdian>=1&&target._fudian>=1) { //正电等于负电&正电大于等于1
   var damage = this._bianhua*user.getStateCounter(10)*origin.mat*0.5 //伤害计算
   user.gainHp(-damage); //给予伤害
   user.startAnimation(15); //显示动画
   user.startDamagePopup(); //显示伤害
target._zhengdian = 0; //正电层数归零
target._fudiandian = 0; //负电层数归零
user.removeStateCounter(10);
user.removeState(10);
user.removeStateCounter(11);
user.removeState(11);
}
</Custom Action End Effect>
<Custom Remove Effect>
target._zhengdian = 0; //持续效果结束正电层数归零
</Custom Remove Effect>

负电状态备注如下:
<Custom Remove Effect>
target._zhengdian = 0; //持续效果结束负电层数归零
</Custom Remove Effect>

楼主的范例对我启发很大,感谢楼主
作者: a000b1745    时间: 2018-10-11 02:27
想请问楼主,若只是单纯想让状态挂上 AGI -3 这种加减法的运算该怎么做?
(不想用加乘%去改变数值...怕AGI太高)




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