看板 mud_sanc 關於我們 聯絡資訊
※ 引述《justinj (闇冥)》之銘言: : 因為題目不知道要定什麼....avert : 問題1.看看能不能做到..雖然我覺得不行 : 就是控制某一個檔案中的一個變數值... : 例如a.c : inherit xxxxx : int r=random(xxx); : void create() : . : . : . : 能否控制r的值... r 的值在該物件被 update 的瞬間即已決定。 : 問題2.add_action("xxx","yyy"); : yyy bbb的bbb要如何像set("yyy",bbb)這種直接設定型態? : 我是有想到一招..就是像寫程式一樣寫成另一個檔案再去讀取 : (反正只想要用在巫師的變數設定上) : ---------------------------------------------- : 其它問題 假設 add_action("test_xxx","test"); 問題:能否 int test_xxx(mixed strs) ? 答案是可以,但是不管你下 test 什麼, strs 都會被強制 設定為 字串,如底下... test ({a,b}) "({a,b})" 但是你可以這樣做,在目標主體物件上這樣寫.. #include <daemons.h> inherit REF_D; 然後把上面的函數內容改寫為底下... int test_xxx(string str) { mixed strs; strs=resolv_str(resolv_ref(str)); if(stringp(strs)) { write("你輸入的東西是字串.\n"); set("xx",str); } else if(mapp(strs)) { write("你輸入的東西是 mapping.\n"); set("xx",strs); } else if(intp(strs)) { write("你輸入的東西是整數.\n"); set("xx",atoi(str)); } else { write("你輸入的東西是陣列.\n"); set("xx",strs); } resolv_str 跟 resolv_ref 是 REF_D 這東西支援的,所以要 使用它就必須先 inherit REF_D 而要直接使用 REF_D 這個變 數就必須include <daemons.h> : 1.31那個時間停了要怎麼處理(只要跟時間有關的設定全部都不能用) : 像要用call_out,time(),casting,debug 1...等等的 shutdown 即可。 另外它會停掉有可能出在 call_out 被佔用。 : 2.feather fist還是有bug..會遇到heart_beat變成0的..(應該沒錯吧) : 原因未知..不過我在猜可能是在轉換時剛好攻擊怪物 : 像 : A->怪B,要打的過程中怪B突然變 怪B-..... : 另一種情況是 怪B-死了...所以轉回怪B死了... : 在轉回的過程中被玩家打的話會變成什麼樣(應該是說算是誰打死的) : 我想die裡面如果有this_player()的話就不確定誰是誰了 : (有可能變成0?..我猜的)..... : 不過以後應該會有讓玩家(怪物)變heart_beat(0)的吧... : 除了因為程式的問題而跑不動的情況產生的bug外... : 其它的bug應該都是心跳停了的情況..... : 但這種情況如果遇到了[喘一口氣(xxx)]這種情形應該就動不了 : 因為這種狀態下所有指令無效.. 嗯,我再把上述的情況加入判斷。 : 所以除了只能靠巫師,及quit外...看看有沒有其它的解法 : 解法目前想到2個.. : 第一個是改喘氣那邊可以按beat執行指令 : 第二個是給一個道具(類似自殺藥水)..但是給別人放的.. : 放完後的作用是全格的玩家會作heart_beat(1) : 且送回recall處(ppl->die()或move_to都可以..) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.83.155.96