作者laechan (小太保)
看板mud_sanc
标题[闲聊] 关於新的 buff
时间Sun Oct 28 07:54:45 2012
嘛,这个挺棘手的。
首先是 remove 的问题,这个要改 /std/ob/armor_d.c,
仿 enchant 的作法,在玩家 remove 时将 buff 清掉,
我可能采行的做法是..
effect=ob->query("new_effect");
if(effect)
{
effectname=keys(effect);
foreach(t in effectname)
{
k=ob->query("new_effect/"+t);
user->add_temp("new_effect/"+t,-k);
}
}
第二要解决的是 wear 的问题,这个要改 _wear.c,修改
方式是
if(ob->query("new_effect"))
{
effectname = keys((mapping)ob->query("new_effect"));
foreach(t in effectname)
{
k=ob->query("new_effect/"+t); //***
user->add_temp("new_effect/"+t,k);
}
}
再来是 view 的问题,因为现在只有武器可以附魔,而新
型态的防具「并不包含武器」,而且只有新型态的防具有
new_effect 栏位,..
狂 风 刀(Crazy_Wind Blade) [你目前正穿着它]
────────────────────────────
级数:100
型态:blade
重量:180
价格:7000
杀伤:2800
命中:200
认主:laechan
影响:con-9 str+13 air+8
附魔:20% 的普攻/en的爆击伤害提高 5.0%
────────────────────────────
所以我打算设计成,如果防具原先就有影响栏位,那就变成
影响:con-9 str+13 air+8
5% 的机率在攻击中发动致命一击
而如果原先没有影响栏位就变成
影响:5% 的机率在攻击中发动致命一击
或者是..
影响:con-9 str+13 air+8 致命一击+5%
因为共用「影响」栏位,玩家才能理解这代表这个栏位的资
讯是可以储存的,不会随着带防具离开而消失。
最後是 new buff 参考的标的部份,目前以 D3 跟 RO 为参
考主体,我的设计是「每一个新型态防具部位」,会有各自
的 new buff 组合,比方以「致命一击」为例,会作用的范
围只有跟「手部」相关的防具,例如..
手套 gloves
手环 bracelet
手链 wristlet
臂甲 arm
戒指 ring
左戒 leftring
盾牌 shield
然後不会上面的全部都设,手套是几乎一定会设的。
再由手套为例,使用 eqstat -type gloves,可以知道手套
的主力属性是 str、dex、air、mag,少部份会加 fel、con
,新型态的手套就会采用上面的原则,并配置适当的负属性
,例如 +mag 的就 -str,加 air 的就 -mag,以此类推。
那这里就要决定 new buff 的栏位名称,就是 new_effect,
这是因为抗性使用的是 anti_effect,亦即
一般属性、3p 值 effect
抗性 anti_effect
新的 buff new_effect
然後修改的标的是玩家的 temp 区资料,就不会影响到主要
区域的数值。
最後,因为圣殿已经实装抗性设定,所以新型态防具也将实
装抗性设定,但是同样的,不是所有部位都会实装,以臂甲
为例就很适合实装。
但是抗性不会设为缀词,如果要设为缀词,就会取消「坚固
」这个缀词(即不强调防御值的变动),增加「抗性」这个缀
词,我是考量到这样增加会没完没了,因为致命一击也给得
「致命」,...
不过它有变通方法,判断 strlen(shorts) 即可。
还有,以高体魔这个缀词为例,目前考虑改成「双高属」这
个缀词。
总之,new buff 应该不难实装,重点在於要实装哪些,致命
一击是一定会给的,还有一个一定会给的就是「大绝的伤害
力增加 n%」。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 42.66.251.237