[wizs] 修正 shut 呼叫
假設底下程式段...
玩家->shut(千步氣功拳超大字圖,5000000,9999,"air",怪物);
首先,它會呼叫 /std/user/attack.c 的 shut 函數,把超大字圖
傳給它,接著該函數會做底下的事...
SHUT_D->shut_tar(千步氣功拳超大字圖,5000000,9999,"air",怪物);
也就是說它又把超大字圖傳給 SHUT_D,這時 SHUT_D 會判斷玩家
有沒有 setdata no_damage_msg,有的話就把該字圖訊息變更...
千步氣功拳超大字圖 變更為 XXX -> OOO
今天修改上述呼叫流程...
一、玩家->shut(千步氣功拳超大字圖,5000000,9999,"air",怪物);
二、在 /std/user/attack.c 的 shut 函數裡頭就馬上判斷玩家有
沒有設 no_damage_msg..
有設 no_damage_msg
SHUT_D->shut_tar(XXX -> OOO, ......); // 直接在這裡就把簡略的訊息傳過去
沒設的話
SHUT_D->shut_tar(千步氣功拳超大字圖,5000000,9999,"air",怪物);
因為 shut 是寫在玩家物件的,所以你有設 no_damage_msg 你在發
特攻訊息時「就會比別人順」,沒設 no_damage_msg 的就會比較不
那麼順,特別是特攻訊息寫的很長、很多行、很華麗、顏色很多的..
各位可以參考。這裡也提供出了一個點子,玩家的 shut 函數可以定
位為一個過濾器,當將來 shut_tar 跟 new_defance 一樣改為全域
函數後,在真正呼叫 shut_tar 前就可以在物件的 shut 內先行針
對訊息做過濾。
這比直接將 shut 改成全域函數還有意義(我本來要做的)。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.3.82
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
18
25
4
12
21
33
-17
30