作者laechan (挥泪斩马云)
看板mud_sanc
标题Re: [技能] 治疗术(heal spell)变更
时间Mon May 9 14:13:19 2022
※ 引述《Emiielf (Emiielf)》之铭言:
: 牧师的cast heal 还是有问题存在
: cast heal 都主要补到自己而已
: 在不组队状况下,补队友是机率性成功 且成功机率不高
: 是已修改成机率性的吗?
: 二转牧师的clerical heart跟heal spell都满级了,mage数值也不低
: 但也不应该这麽难补中阿
: 要麻烦小宝再帮忙检查看看了
: cast heal emimarfa
: 你缓缓念道: 玛法呀..请让此人的身与心都复原吧...
: 自你的手心发出了一阵柔和的白色光芒...
: 你开始念起古老的咒文: ~ 30 ~ ~ ~ 治疗术 ~
: 你已经满血了(736.78%)。
: cast heal emimarfa
: 你缓缓念道: 玛法呀..请让此人的身与心都复原吧...
: 自你的手心发出了一阵柔和的白色光芒...
: 你开始念起古老的咒文: ~ 30 ~ ~ ~ 治疗术 ~
: 许小言已经满血了(276.67%)。
: 你已经满血了(736.78%)。
实际上应该有补到,没补到要嘛该人刚好不在该房间,要嘛其它
原因,code:
// laechan@sanc add in 2021/01/26
// 主职, Lv10 以上, 对全体队员包括自己
if(pri_guild=="clerical" && lv>=10)
{
tars="/adm/daemons/party_d"->query_members(ppl);
if(!tars) tars=({});
if(member_array(ppl,tars)==-1)
tars+=({ppl});
tars-=({0});
env=environment(ppl);
foreach(target in tars)
{
// 目标不存在时
if(!target) continue;
else if(!environment(target) || !env) continue;
// 目标跟你 cast 时所在的房间不一样时
else if(environment(target)!=env) continue;
a1=target->query("hp_src");
a2=t+(int)target->query("hp");
a3=(a2*10000)/a1;
a4=a3%100;
if(a4<10) str=(a3/100)+".0"+a4+"%";
else str=(a3/100)+"."+a4+"%";
// 如果是这种情况只有对方会看到,cast 者看不到
// a2-t = 对方的hp
// a1 = 对方的hp最大值
if(a2-t<a1)
{
tell_object(target,HIW+target->query("sex_name")+"身上受伤的地方"+
"发出淡淡的光芒, "+
"伤势逐渐回复中("+str+")...\n"NOR);
// 理论上这边加上给 cast 者的讯息即可,如下
if(ppl!=target)
tell_object(ppl,HIW+target->query("chi_name")+NOR+
HIW"身上受伤的地方发出淡淡的光芒, "+
"伤势逐渐回复中("+str+")...\n"NOR);
target->add_3p("hp",t,t);
if(target->query("hp")>target->query("hp_src"))
target->set("hp",target->query("hp_src"));
}
else if(target==ppl)
tell_object(target,target->query("sex_name")+"已经满血了("+str+")。"NOR);
else
tell_object(ppl,target->query("chi_name")+"已经满血了("+str+")。"NOR"\n");
.
.
之所以选择没加上这讯息,是怕 cast 者接收到的讯息量过多,
那总之先试看看,通常你没有组很多人的话应该就还好。
顺便帮我看看补血有成功时,显示的对方血量%数有没有问题。
LAechan
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.126.145.135 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1652076802.A.D50.html