Re: [聖殿] 來聊一下 party kill 的問題
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間17年前 (2008/06/22 23:23)推噓1(1推 0噓 3→)留言4則, 2人參與討論串7/7 (看更多)
※ 引述《bahatest (sanc小牧師)》之銘言:
: ※ 引述《laechan (小太保)》之銘言:
: : 目前聖殿的設定是...
: : 玩家: 可指定攻擊對象.
: : 不指定時, 攻擊房間特定順位的對象.
: : 例如玩家進入房間時,房間怪物順位為 a b c, 三隻怪物也同時
: : 間對玩家進行攻擊,則玩家不指定對象時的第一攻擊目標就是 c
: : 這部份玩家有意見的話可提出。大家都依這個設定的話,進房間
: : 時就可以快速集中火力先清掉同一隻怪物,然後依序第二隻、第
: : 三隻...大家的 default 選擇都會一樣,這是採特定順序的原因
: : 所以討論時分為...
: : 1)是否需要存在一個 default 設定
: : 2)順序問題
: force,slash,blade那些順發的sk放出時基本上都能指定到怪物
: 但spell跟fist這兩種延遲一輪才放的
: 很容易在要放的時候發現目標不存在
: 延遲一輪放的部份如果不指定目標
: 能不能在放出來時才選擇目標
以 fire spell 為例, 攻擊改內迴後...
ppl->shut(str,damage+random(100),hit,({"fire","magic"}),target,times);
這個 target 如果在實際攻擊時仍存在, 就會攻擊該目標, 如果
不存在...
varargs int shut(string msg,int damage,int chance,
mixed kinds,object tar,int times)
{
// 怪物不存在時
if(!tar)
// 讀取玩家正在攻擊的其它怪物
if(! tar=me->query_current_attacker())
// 沒有其它目標, 就不攻擊了
return 1;
if(!times) times=1;
if(!kinds)
SHUT_D->shut_tar(me,tar,msg,damage,chance,({"dam","physics"}),times);
else if(stringp(kinds))
SHUT_D->shut_tar(me,tar,msg,damage,chance,({kinds,"physics"}),times);
else
SHUT_D->shut_tar(me,tar,msg,damage,chance,kinds,times);
return 1;
再看 shut_tar 那邊...
if(!me || !tar) return ;
所以實際上確實是「若攻擊目標已經不在了時」, 就不攻擊了.
若 n 連發的攻擊中怪物第 m 發(m<n)就死了...
while(times-->0)
{
if(!me || !tar) return ;
那同樣的攻擊也會停止.
我猜當初這麼設的原因是...
1)減少負荷, 也就是 me->query_current_attacker() 的讀取動作.
2)這原本就是新 shut 的設定, 也就是 n 連發擊向同一目標, 其中
當怪物已經死於第 m 發時, 剩下的「不應該」去打其它目標.
3)跟亂擊性質的技能做區別, 例如龍巢閃.
不過我發現 fire spell 的熟練度計算有問題, 最近會更正.
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.100.50
推
06/23 02:17, , 1F
06/23 02:17, 1F
→
06/23 10:17, , 2F
06/23 10:17, 2F
→
06/23 10:17, , 3F
06/23 10:17, 3F
→
06/23 10:18, , 4F
06/23 10:18, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 7 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章