作者laechan (小太保)
看板mud_sanc
標題Re: [情報] holybell實測(資料由mishaer提供)
時間Tue Jan 29 07:43:44 2008
int receive_damage(int damage)
{
object frog=this_object();
frog->delete_temp("time_record");
if(kk<1)
{
this_object()->set_temp("shield2",({500000,1,frog,frog}));
return 1;
}
kk=0;
::receive_damage(damage);
return 1;
}
這隻怪最後執行到要真正扣血的部份時,它會判斷自己身上的一個值
kk,若 kk<1 則...
一、補盾
二、中止扣血
若 kk 不小於 1 時,讓 kk 重新歸 0 而且造成傷害,所以下一輪攻
擊它又會中止扣血。
這隻怪一開始的 kk 是 0。
mixed shield(object me,object tar,int dam,string type)
{
dam = dam / 4;
if(dam < 7777 ) dam = 0;
if(dam > 77777 ) dam = 0;
return ({kk=dam,"但是都擦身而過,被閃開了!"});
}
這是它護盾格擋的執行部份。理論上被 holybell 過的怪物不會執行
護盾格擋,所以該怪物的 kk 永遠是 0 = 永遠不會實際上損血。
以上。
解決方法:
我可以讓 holybell 不跳過所謂的護盾格擋,而是在護盾格擋後才判
斷 holybell 是否存在。
但是這樣 wiz 仍舊可以在自訂的 shield 函數以及 receive_damage
中動手腳,結果是一樣的。
但是上述設定違反「holybell 放下去不能對玩家造成負影響」的最
優先原則,所以修改方式有三...
一、holybell 取消放下去後會解除怪物防禦狀態的功能,單純用來
解身上的不良狀態。
二、怪物身上有 holybell 參數時,不呼叫 receive_damage 函數,
而是呼叫另一函數來執行扣血。
三、deus 將該隻怪物修改為 selfshield2 型的怪物,取消自定的
receive_damage 函數或修改該函數的判斷。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: laechan 來自: 220.134.34.90 (01/29 07:44)
→ laechan:我想先參考 deus 的決定. 01/29 10:17
推 mishaer:推二;若選三治標不治本,且要玩家打過怪才知道,再告知wiz修 01/29 12:33
→ mishaer:改的話..時間上部份會感覺比較沒效率.. 01/29 12:34
推 bahatest:3沒意義,這樣新怪出來玩家還是不敢放 01/29 13:46
推 bahatest:推1吧,至少不用跟作者玩心理戰 01/29 13:51