Re: [聖殿] 來聊一下 party kill 的問題

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間17年前 (2008/06/22 23:23), 編輯推噓1(103)
留言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
所以有改內迴的spell就不會念完放不出來吧?
06/23 02:17, 1F

06/23 10:17, , 2F
若 spell fire 時,「有攻擊對象」就會攻擊,無攻擊對
06/23 10:17, 2F

06/23 10:17, , 3F
象(會判斷)就不攻擊了; 另外,n連擊中若第m下怪就死了
06/23 10:17, 3F

06/23 10:18, , 4F
攻擊也會中止.
06/23 10:18, 4F
文章代碼(AID): #18Ncvrnl (mud_sanc)
文章代碼(AID): #18Ncvrnl (mud_sanc)