精華區beta mud_sanc 關於我們 聯絡資訊
整理某人的目錄時, 發現幾個奇特的寫法... void start_call_out() { shout("開始對所有人做廣播.\n"); call_out("call_out1",3); } void call_out1() { shout("聖殿廣播~~~~~~SM 6 6 6 . 6~~~~~~\n"); call_out("call_out2",3); } void call_out2() { shout("歡迎收聽聖殿廣播 ^_^\n"); } 那麼, 底下簡單介紹 call_out 可以怎麼使用. 比方有一首詩, 你希望讓這首詩一行一行地出現讓玩家看, 中間隔個兩三秒... 老木老碑迎風挺,  蘭窖織芭為君開,  天搖地動哀鳴聲,  嗚呼贛林老蹟埋. 程式的寫法如底下... void run_poem() { mixed poem=({ "老木老碑迎風挺,", 蘭窖織芭為君開,  天搖地動哀鳴聲,  嗚呼贛林老蹟埋. 程式的寫法如底下... void run_poem() { mixed poem=({ "老木老碑迎風挺,", "蘭窖織芭為君開,", "天搖地動哀鳴聲,", "嗚呼贛林老蹟埋.", }); int i; for(i=0;i<sizeof(poem);i++) call_out("shout_msg",3+(3*i),poem[i]); return 1; } void shout_msg(string poem_line) { shout(poem_line); } 簡單的說, run_poem 主要執行 4 次的 call_out, 執行的時間 幾乎都在同時, 不過... i=0 時, 設定了等 3 秒才 call_out shout_msg i=1 時, 設定了等 6 秒才 call_out shout_msg i=2 時, 設定了等 9 秒才 call_out shout_msg i=3 時, 設定了等 12 秒才 call_out shout_msg 因此時間經過 3 秒後, shout_msg 就被呼叫了一次, 再過 3 秒 shout_msg 又被呼叫一次...以此類推, 再長的敘述, 用上述的 寫法很簡單地就可以被寫出來, 著名的[世紀末戰爭], 就是這類 程式寫法的極致應用. Laechan