Re: [問題] go 有問題

看板mud (網路地下城/文字遊戲)作者 (小太保)時間12年前 (2013/02/24 08:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《neca (尋找一片海洋)》之銘言: : 當我去查看 /cmds/std/go.c這個檔案的時候, : 這訊息是這樣的: 你可以在這裡加一行.. write("有執行到這裡.\n"); : if( !(dest = env->query("exits/" + arg)) ) { : write("這個方向沒有出路。\n"); : return 1; : } 然後 update /cmds/std/go.c 再執行一次 north 或 south, 看看是否有跑出「有執行到這裡」。 另外,我覺得用 if(!dest=env->query("exits/"+arg)) 就夠 了。 : 很明顯的它是要去query 現在這個房間裡,"exits"這個字串的值, : 在/d/snow/river1.c這個檔案有這樣定義: : set("exits", ([ /* sizeof() == 1 */ : "south" : "/d/snow/npath3", : "north" : "/d/chixiao/river2", : ])); 一般 lpmud 都是這樣設定出口的。 : 我想應該會被query到正確的值才是,但是系統卻一直跟我說這個方向沒有出路, : 請問各位先進有何方法可以解決,或是有什麼debug的方向? : 關於第二目標是,我用roommaker可以創建一個新的房間, : 可以設定short、long,但是在saveroom的時候出現錯誤, : 它會呼叫到 : prop = env->query_entire_dbase(); : 然後跑進 /feature/dbase.c : foreach(ob in previous_object(-1)) { : if( (geteuid(ob) == ROOT_UID) : || (geteuid(ob) == getuid(this_object())) : || master()->valid_write( base_name(this_object()), ob, "write_file" : ) ) : continue; : error("Permission denied.\n"); : } : 大意是說,我的euid不對,權限自然就不對了。 : 另外,在log檔有看到很多類似這樣的警告 一般來說我的習慣是,比方我要設定一個物件是可以做 save_object 的,我有三種做法.. 1.直接 save_object 到與該物件相同的目錄或其子目錄下 (因為權限相同) 2.若該物件有宣告 create 的話,就在裡頭加上 void create() { seteuid(getuid(this_object())); . . 3.或將要 save_object 的目錄權限設為 [rw]。 因為通常 valid_write 後面接 "write_file" 這樣八成是 在判定該目錄是不是可寫,一般來說就會先呼叫 access.c 來判斷。 : /std/room.c line 15: Warning: Unknown #pragma, ignored. : 我不曉得是不是有什麼影響,凡是有用到#pragma的部份全部都會出現Warning : 還請有經驗的前輩們給點方向 : 謝謝:) 你可以試試拿掉 #pragma 再 try try。 一般後面接 optimize 或 save_binary,可能 fluffos 對 這方面已經有預設處理這樣,純猜測。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.165.192.117 ※ 編輯: laechan 來自: 1.165.192.117 (02/24 08:26)
文章代碼(AID): #1HALtnfW (mud)
討論串 (同標題文章)
本文引述了以下文章的的內容:
1
1
完整討論串 (本文為第 2 之 3 篇):
0
1
1
1
文章代碼(AID): #1HALtnfW (mud)