楼主:
laechan (挥泪斩马云)
2015-10-19 17:42:38最近有构思到一种可行的做法。例如说:
种类 名称 持效时间 机率 伤害值 其它
set_stunt(({
({"poison","尸毒", 10, 5, 5000, ...}),
({"stun" ,"震晕", 10, 5, 3000, ...}),
}));
种类
种类是确定的,有被定义的种类才会有作用,例如种类有中毒类,
晕眩类,睡眠类,冰冻类,....。每一个种类都有识别用的英文。
名称
名称会有 default 值,wiz 亦可自订该怪物施展出该攻击时的名
称(例如拜月教主的 poison 类攻击可以叫蛊毒这类的。
持效时间
持效时间也会有 default 值,wiz 亦可自订它影响玩家的时间,
以秒数计算。持效时间也会有公式依据玩家的属性值或其它设定
来增加或是减少。
伤害值
伤害值也会有 default 值(依据怪物等级做一些计算),wiz 亦可
自订伤害值,这个值是指玩家中了该特殊攻击时的伤害,只有一
击,伤害多少这样。这项伤害一般无法回避,除非玩家有回避手
段。
其它
其它可给可不给,也会有 default 值,wiz 若希望带自订值过去
才给,例如中毒期间的伤害值默认是每周期时间减少 hp 1%,玩家
可以自传值给 2% 这类的。
换言之,最简单的设定方式就如下
set_stunt(({ "poison","stun" }));
↑
└用 if(stringp(.. 来做前置判断即可
这样该怪物就拥有“中毒”“震晕”两个基本技能。
假设有一玩家,回避率超高,护盾值、护甲值也很高,而且拥有
一堆闪格挡技能,身上都是神装神武。
stunt 将无视上面的设定,中了就是中,会扣血就是会扣血,会
处于无法移动的状态就是会无法移动。
然后我们再提供玩家可采取哪些手段做事前的预防,或是事后的
补救。
例如说假设有一项特殊攻击叫“石化”,在执行该类别的攻击时
可做如下判断:
// 该玩家有 cast 'holy body' 的情况下
if(ppl->query_temp("heal_time/holy body")>0)
return "石化攻击无效";
又或者假设玩家有学九阳神功,则 poison 类攻击就完全无效。
以上是设定概要,这东西要写并不难,而且也可以写成不只对玩
家有效,对怪物也有效。
Laechan