Re: □ [wizs]問題請教(十六)

看板mud_sanc (Sanctuary - 聖殿)作者 (打死不投馬冏,李系咩安抓)時間18年前 (2007/07/31 10:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《amosdeus (幽素)》之銘言: : 請問以下程式有節省記憶體或是好一點的寫法嗎? : 檔案位置:/u/p/plain/wide/virtue/room2/test.c 只要房間有自訂 init, 都要有一個概念, 就是任何生物(含怪物), 只要進入該房間, 就一定會呼叫一次 init 函數. 所以你可以先行剔除掉一些你覺得不必要的. 我舉例, 例如只有玩 家進入該房間觸發的 init 才有效, 如底下... : void init() : { if(!userp(this_player())) return ; // 可以先做的一種判斷 : int r; : r=random(2); : switch(r) : { : case 1: : set("long",@PLAIN : ... : PLAIN : ); : set("exits",([ : ... : ... : ])); : set("pre_exit_func",(["....":"hi"])); : break; : default: : set("long",@PLAIN : ... : PLAIN : ); : set("exits",([ : ... : ... : ])); : set("pre_exit_func",(["....":"hi"])); : break; : } : } 底下的函數是, 只要玩家往特定方向走, 就會呼叫. 基本上底下應該就是最精簡了. : int hi() : { : object ppl = this_player(); : if(ppl->query_temp("xxxx")) : { : ppl->delete_temp("xxxxx"); : ppl->set_temp("yyyy",1); : return 0; : } : if(ppl->query_temp("yyyy")) : { : ppl->delete_temp("yyyyy"); : ppl->set_temp("zzzz",1); : return 0; : } : if(ppl->query_temp("zzzz")) : { : ppl->delete_temp("zzzz"); : ppl->move_player(VR2"ccc","SNEAK"); : return 0; : } : return 1; : } : 以上 : 謝謝 : Plain@Sanc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.126.91
文章代碼(AID): #16hg1eXS (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #16hg1eXS (mud_sanc)