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

Project1

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

[交流讨论] 大家一起讨论一下比较有创意的buff的想法或实例呀

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3657
在线时间
1133 小时
注册时间
2017-4-6
帖子
278

开拓者

跳转到指定楼层
1
发表于 2018-2-27 12:27:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 夏的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>


评分

参与人数 3+3 收起 理由
2256538860 + 1 塞糖
微笑的迪妮莎 + 1 精品文章
白嫩白嫩的 + 1 塞糖

查看全部评分

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
15
发表于 2018-10-11 02:27:20 | 只看该作者
想请问楼主,若只是单纯想让状态挂上 AGI -3 这种加减法的运算该怎么做?
(不想用加乘%去改变数值...怕AGI太高)
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
337
在线时间
38 小时
注册时间
2017-9-28
帖子
13
14
发表于 2018-3-4 02:13:43 | 只看该作者
分享一下刚刚研究的成果
这是某个角色的被动技能组
被动技能
负载 能够附加电荷的技能对带有异种电荷的目标造成双倍伤害。——通过技能公式(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>

楼主的范例对我启发很大,感谢楼主
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
337
在线时间
38 小时
注册时间
2017-9-28
帖子
13
13
发表于 2018-3-3 23:44:17 | 只看该作者
受到楼主启发,做了一个技能。
三重止步,使全体敌方目标陷入恐惧之中,无法行动并且敏捷下降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进行针对
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
745
在线时间
90 小时
注册时间
2017-11-6
帖子
14
12
发表于 2018-3-3 14:17:37 | 只看该作者
  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 属性,具体太多就不帖了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3657
在线时间
1133 小时
注册时间
2017-4-6
帖子
278

开拓者

11
 楼主| 发表于 2018-3-3 14:05:24 | 只看该作者
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>

点评

可以! 您真的很厉害锕==!!  发表于 2018-3-3 17:11
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2794
在线时间
614 小时
注册时间
2018-1-17
帖子
1293
10
发表于 2018-3-2 20:02:43 | 只看该作者
本帖最后由 2256538860 于 2018-3-3 17:10 编辑

说实话萌新现在只能帮顶= =
有创意的buff? 死者复苏? 死亡(昏迷)后依旧给角色施展该buff
效果每回合有50%几率自行施展某个技能or攻击or防御
血量为施术者施法时的血量,
瞎想的 感觉不现实。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3657
在线时间
1133 小时
注册时间
2017-4-6
帖子
278

开拓者

9
 楼主| 发表于 2018-3-2 14:58:39 | 只看该作者
微笑的迪妮莎 发表于 2018-3-2 14:36
厉害了(ง •̀_•́)ง
大佬我想给弓箭手写个技能,敏捷越高伤害越高的公式该怎么写呢? ...

技能还是被动?技能的话公式直接添加敏捷就好了呀
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5322
在线时间
617 小时
注册时间
2017-10-21
帖子
349
8
发表于 2018-3-2 14:36:02 | 只看该作者
厉害了(ง •̀_•́)ง
大佬我想给弓箭手写个技能,敏捷越高伤害越高的公式该怎么写呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3657
在线时间
1133 小时
注册时间
2017-4-6
帖子
278

开拓者

7
 楼主| 发表于 2018-3-2 14:30:07 | 只看该作者
魔法攻击貌似没什么用,我把它用作格挡率了 ,攻击有一定几率被格挡,格挡减少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>
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 01:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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