楼主:
laechan (挥泪斩马云)
2014-12-16 10:31:09※ 引述《kevin82222 (庆)》之铭言:
: 用到现在 一直不知道护甲术(armor spell)的用途
: cast之后 被打到好像也不会有什么防御作用
: 护甲防御力好像也没有减少
: 不知道这个作用是啥
: 或者wiz能show一段code看看他在什么地方才有效果
: 谢谢~~~
: 顺便问一下 为什么有时后明明没看到损血 我就死了
: 还有既然生命水晶是花经验来换 送医是花钱
: 那感觉都没有多大损失 这两者是只差在等待时间吗?
: 爆水晶直接回recall再去换就好
: 送医院要等不知几秒钟这样
: 还是这两个还有什么别的影响
: 谢谢
armor spell 会在玩家的 temp 资料区新增三项资料
heal_time/armor spell 剩余多少时间
ap 剩余护甲值
ap_src 护甲原始值
护甲值主要写在 /std/user/attack.c 的 receive_damage 函数
里头,也就是玩家的“损血函数”,段落是
if(query_temp("heal_time/armor spell"))
{
x=(int)temp_data["ap"]-dam; // 先得到 x = 剩余护甲值 - 伤害值
if(x<0) // 如果该值 < 0 (护甲值 < 伤害值的意思)
{
temp_data["ap"]=0; // 护甲值归零
data["hp"]+=x; // hp 损失 x 值
}
else // 若该值 >= 0
temp_data["ap"]=x; // 剩余护甲值 = x
}
else
data["hp"]-=dam;
这段的意思就是,玩家可以想成自己的血量相当于 hp + 护甲值
,而当损血的情况发生时,会先扣护甲值,扣完才开始后 hp。
上面有个缺陷就是“x<0”时没有出现讯息,这是因为护甲可以补
,所以即便护甲值已经归零了但因为护甲术效果还在,所以若玩
家持续损血,在有讯息的情况下该讯息就会一直出现,所以才没
有设定讯息。可行的解法是
1.不管, 讯息还是给 => 玩家可能会被该讯息洗画面
2.护甲归 0 时护甲术效果直接消失 => 那讯息短时间内只会出现一次
我评估看看。