聖光盾沒破 卻被打到 - 聖殿英雄傳說 MUD

Michael avatar
By Michael
at 2016-02-20T14:33

Table of Contents

※ 引述《xbowcat (Cat)》之銘言:
: 以下為戰鬥內容,場地於大空地內部
: 妳緩緩唸道: 神聖的光芒啊...在邪惡之力前化為不壞之盾吧!
: 你開始唸起古老的咒文: ~ 8 ~ ~ ~ 聖光盾 ~
: 在妳的前面形成了一道聖光盾保護著妳!
: > 妳 -> 冥府鬼卒,.(795)
: 「冥府鬼卒受了點傷,但沒大礙。」
: 妳 -> 冥府鬼卒, (287979)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 妳 -> 冥府鬼卒, (296779)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 妳 -> 冥府鬼卒, (294960)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 妳 -> 冥府鬼卒, (293970)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 在你的靈力驅動之下,大地產生了規率性的晃動......
: 你開始唸起古老的咒文: ~ 63 ~ ~ ~ 飛砂走石 ~
: 冥府鬼卒拿出長戟丟向妳, 但是被牧師貓身上的1枚聖光盾彈開了!!
: 鬼卒放開了雙手,做好了施放法術的準備
: 吼~~~~~~~~
: 冥府鬼卒 -> 妳,但是被妳閃開了!
: 冥府鬼卒 -> 妳,但是被妳閃開了!
: 鬼卒放開了雙手,做好了施放法術的準備
: 吼~~~~~~~~
: 冥府鬼卒 -> 妳,但是被妳閃開了!
: 冥府鬼卒 -> 妳,但是被妳閃開了!
: 冥府鬼卒拿出長戟丟向妳(30988)
: 「妳傷口鮮血滿身是。護甲防禦力剩餘100%.」
: 妳 -> 冥府鬼卒, (293747)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 妳 -> 冥府鬼卒, (288817)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 妳 -> 冥府鬼卒, (291974)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 妳 -> 冥府鬼卒, (293931)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 在你的靈力驅動之下,大地產生了規率性的晃動......
: 你開始唸起古老的咒文: ~ 63 ~ ~ ~ 飛砂走石 ~
: 妳以一招 0 攻向冥府鬼卒, ,但是被冥府鬼卒閃開了!
: 妳以一招 0 攻向冥府鬼卒, ,但是被冥府鬼卒閃開了!(4018)
: 「冥府鬼卒正緩緩的流出鮮血。」
: 冥府鬼卒拿出長戟丟向妳, 但是被牧師貓身上的1枚聖光盾彈開了!!
: 由以上敘述可以看出 盾沒破 但是被穿盾了....包含護甲術,
: 此部分想請問是否為bug導致?


目前盾擋的判斷移動到最後,「理論上」,在執行盾擋判斷前
只要是留有傷害的部份都不能使用 return,除非是 return 0
,我剛檢查了一下:

else if(mod=tar->query_temp("shield2"))
{
if(!mod[2] || (mod[0] && mod[0]<1))
{
tar->delete_temp("shield2"); // 不存在時自動移除
tar->delete_temp("attack"); //增加結界的攻擊移除
return ({damage,msg2+""});
}
else if(userp(tar))
{
t=time();
if(tar->query_temp("holybell_times")>t &&
tar->query_temp("holybell_check")>0)
{
damage=damage*(100-(int)tar->query_temp("holybell_check")/100)/100;
tell_object(tar,"(holybell)攻擊你的傷害在撞上護盾前先被削減了!\n");
}
return (mixed)mod[2]->shield(me,tar,damage,type);
}
}

mod[2]=聖光盾 /d/spell/holy_shield.c
me=冥府鬼卒, tar=你, damage=傷害值, type=傷害型態

mixed shield(object me,object tar,int dam,string type)
{
int sl,cost,max,bs=0,n,ethic;
mixed mod;
object caster,env1,env2;
mod=tar->query_temp("shield2");

if(!me) return ({dam,"ERROR"}); // 防止bug , by Norr in 2011/08/23
if(sizeof(mod)<4) return ({dam,"ERROR"});

以上兩種情況,會造成 護盾沒有被移除的情況下 你會被打到。

> call me;query_temp;"shield2"
玩家(laechan /std/user)-> query_temp( "shield2" ) =
({ 768180, 0, 房間(/d/spell/holy_shield), 玩家(laechan /std/user) })
1 2 3 4

所以第二種情況幾乎不可能。

那麼理論上,me 做為攻擊者,當出現 if(!me) 的情況時,應判
斷為攻擊者已消失,這時應 return 回去的值就是 0 而非 dam

也就是說該 bug 發生於「冥府鬼卒在攻擊你的那一瞬間已經被
你消滅」,而照正常的判斷它的攻擊應該要失效。

以上已修正,順便也檢查了 powershield,並以 shutdown 更新。


Laechan

--
Tags: 線上

All Comments

回鍋新手發問

Candice avatar
By Candice
at 2016-02-20T10:37
板上大大好 小弟是之前70年代退谷的人,最近朋友陸陸續續回來玩又在度入坑(? 之前主要是玩烏鴉跟劍鬥,沙龍也只打到貓而已操作就小嫩嫩一個 這次回來選了司令玩結果怎麼玩怎麼死最後又跑回去玩劍鬥 由於玩的時間很少也不太砸錢所以裝備弄很慢 想問一下目前身上防具是馬尾+庫瑪+佩里斯混著+6~+9都有 武器是雙馬尾+1 ...

兄弟AS之不是卡片問題嗎?

Donna avatar
By Donna
at 2016-02-20T01:36
你的打擊問題比較小 但我用試探性的壞球,知道了你框很少在移 所以當知道你這打席沒在移框,我就可以輕鬆點放別的位置了 想一下對方投的壞球為什麼會在那個位置 再來玩家投手大致粗分為兩種,三球定勝負的,以及好壞球各半的 如果是後面那種,還有分為投擦邊小壞球和大壞球 投的大壞球一定都是投在甜蜜框的最邊邊,而且通常在二 ...

聖光盾沒破 卻被打到

Olivia avatar
By Olivia
at 2016-02-20T01:28
以下為戰鬥內容,場地於大空地內部 妳緩緩唸道: 神聖的光芒啊...在邪惡之力前化為不壞之盾吧! 你開始唸起古老的咒文: ~ 8 ~ ~ ~ 聖光盾 ~ 在妳的前面形成了一道聖光盾保護著妳! andgt; 妳 -andgt; 冥府鬼卒,.(795) 「冥府鬼卒受了點傷,但沒大礙。」 妳 -andgt; 冥府鬼 ...

新蜀山劍俠 有人玩過嗎

Hazel avatar
By Hazel
at 2016-02-20T00:47
小弟我從這遊戲一出就開始玩了 過了大概5 6年人幾乎少的可憐 希望玩過這遊戲的大大們 偶爾回歸一下 蜀山 一起把以前的種種找回來啊~ 找回當時的感動 - ...

為了再戰五年 它來了

Yuri avatar
By Yuri
at 2016-02-20T00:42
之前才看到G社邀請FB各AVA社團版主 出席茶會,主要目的是了解玩家想法 沒想到……現在也製作問卷讓玩家填寫建議了 再戰五年不知道能不能保持論壇射擊類第一龍頭寶座 潛水在AVA版的各位 一起填吧 希望原廠真能多仔細看看玩家們的建議 任意門:http://goo.gl/xdDNT1 - ...