作者laechan (小太保)
看板mud_sanc
标题Re: [建议] Holybell的功能
时间Wed Jul 14 16:22:07 2010
※ 引述《ttem (海刮子)》之铭言:
: 法理斯的技能之一Holybell
: 除了解除定身之外
: 叙述中有提到
: 叙述有「你的护盾受到圣洁铃音的强化」
: 但现在圣光盾是次数消耗型的
: 所以建议增加能防御的次数
: 再写好Stigmata,法理斯就完整了
: 最好转职的牧师进阶,大家都来玩玩
护盾强化的最简单写法,是替护盾加上一层保护膜,
holybell 在发动时会设定两项参数
me->set_temp("holybell_times",用来判断效果时间);
me->set_temp("holybell_check",holybell技能值);
因此可用上面两项参数当判断依据,在 shield 函数中..
mixed shield(object me,object tar,int dam,string type)
因为连自体护盾都是这样写,这其中能更动的就是 dam,因此
简易改法就是护盾强化=dam 降低。
但是这样的写法应该避免。
另一个更改就是 type,「any kind」的攻击碰到 holybell强
化过的盾,dam type 会被加上「-holybell」,再透过底下判
断..
if(strsrch(type,"holybell")>0)
降低扣盾防值;
即能达到强化目的,再加上原本就有底下判断式..
if(sizeof(type)>13)
{
if(type[strlen(type)-13..strlen(type)-1]=="-break_shield")
bs=1;
}
因此..
一、更动 /adm/daemons/fight_d.c
if(tar->query_temp("holybell_times")>t)
sh=shield2_defance(tar,me,hit,
u,
"holybell-"+type,damage);
else
sh=shield2_defance(tar,me,hit,u,type,damage);
二、更动 /d/spell/holy_shield.c 关於上面的程式段..
sl=sizeof(type);
if(sl>13 && type[strlen(type)-13..strlen(type)-1]=="-break_shield")
bs=1;
并在扣盾防值的地方加上底下判断
if(sl>9 && type[0..8]=="holybell-")
mod[0] = max - n*500;
else
mod[0] = max - n * 1000; //挡一次扣1000盾防, 杀伤每10万多扣1000
如果你的护盾有 holybell 加持强化,那所扣的盾防值会降低
一半,未来有机会再加入 holybell 技能值影响。
目前光之结界有规划增加盾防值,但碍於自体结界多数写在怪
物档内(就是没有统一控管),当我想多传一个参数给 shield
函数时就得连这些怪物都改,我懒,所以光之结界有空再想别
的规划。
另外叙述是「你的护盾受到圣洁铃音的强化」,所以能量盾以
及水之护盾也会受到 holybell 的影响,这个稍後会补上。
最後,依上面程式的写法,若 mob 也有被设定圣光盾的话,该
mob 的圣光盾也会被强化,当然这个可以被略过(变数 u 控制)
,不过目前我想看看不略过的话会不会比较有意思。
Belldandy.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.161.159