三姐 发表于 2022-12-20 18:02:34

允许你执行任何公式作为一个效果

本帖最后由 三姐 于 2022-12-20 21:03 编辑

为了创造一个公式效果,在项目或技能的注释标签上加上
<formula effect>
FORMULA
</formula effect>
其中FORMULA将在技能执行过程中被评估,其行为由你写在公式中的内容决定。
以下的公式变量是可用的
a - attacker
b - target
i - current item or skill
v - game variables
s - game switches
t - game troop
p - game party
因此,例如,如果你想使目标的HP减少100,你可以使用公式
b.gainHp(-100);
你可以用以下方法访问目标上的动作结果
var r = b.result()
有了这个,你就可以检查出有多少HP伤害或MP伤害了。
r.hpDamage
r.mpDamage
制作一个升级物品
<formula effect>
b.changeLevel(b.level+1,false);
</formula effect>

古树旋律 发表于 2022-12-20 18:42:49

这个脚本特别有用,比如可以制作一些强力但有副作用的技能。

比如,这样释放技能的角色将会受到200点的HP伤害。
<formula effect>
a.gainHp(-200);
</formula effect>

我们可以参照论坛的《脚本调用手册》,将$gameActors.actor(id)部分替换成a或b。
$gameActors.actor(id).gainHp(n);
$gameActors.actor(id).gainMp(n);
$gameActors.actor(id).gainTp(n)
$gameActors.actor(id).addState(n);
$gameActors.actor(id).removeState(n);
以及可以进行变量设置、开关设置等等所有公共事件可以完成的事,减少了公共事件调用和储存设置。毕竟如果一个技能单独设置一个公共事件,后期维护也是个头疼的事。

古树旋律 发表于 2023-3-27 23:30:48

突发奇想,搞了个新花样。
生命分流,使用者和目标的生命值平分。同理,Mp、Tp一样,注意严格的大小写。
<formula effect>
var HP_av = Math.floor((a.hp+b.hp)/2);
a.setHp(HP_av);
b.setHp(HP_av);
</formula effect>
页: [1]
查看完整版本: 允许你执行任何公式作为一个效果