作者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/m.aspx?n=bbs/mud_sanc/M.1652076802.A.D50.html