[wizs] 小寶程式教學。
*如何在房間有儲存特殊參數的地方(sd後也不會消失的那種):
int save_room()
{
save_object(base_name(this_object()));
return 1;
}
Laechan:進階法師說道: int xxx() xxx 隨便你定
Laechan:進階法師說道: 那個不重要
Laechan:進階法師說道: base_name(this_object()) 就是讀出這個房間的 base_name
Laechan:進階法師說道: 讀出來的結果 = /u/n/norr/workroom
Laechan:進階法師說道: 所以變成 save_object("/u/n/norr/workroom")
Laechan:進階法師說道: 也就是說 save_object 裡面接的就是路徑加檔名, 這個你要記
得
Laechan:進階法師說道: 改成 save_object("/u/n/norr/savedata") 也可以的意思
Laechan:進階法師說道: 一般如果叫 workroom.c 方便起見儲存檔就變 workroom.o 比較
容易判別
Laechan:進階法師說道: save_object 的東西預設都是 .o 檔
Laechan:進階法師說道: 這時候 call here;save_room
Laechan:進階法師說道: 你目錄下就會出現 workroom.o
Laechan:進階法師說道: 你會看到第二行是 data ([ ...
Laechan:進階法師說道: data 就是物件的基本資料庫名
Laechan:進階法師說道: 幾乎任何物件都有 data
Laechan:進階法師說道: 像你熟知的 data["level"] data["name"]
Laechan:進階法師說道: 這是存資料的部份
Laechan:進階法師說道: 我再幫你加上讀資料的部份
inherit ROOM;
void create()
{
::create();
seteuid(getuid(this_object()));
if( file_exists(base_name(this_object())+".o") )
restore_object( base_name(this_object()) );
else
{
set("light",1);
set("no_longsee",1);
Laechan:進階法師說道: 它的意思就是
Laechan:進階法師說道: 如果有看到 workroom.o 的話就 restore 它
Laechan:進階法師說道: 若沒看到才做你原先的 set
Laechan:進階法師說道: 從最裡面的 () 開始往外拆, file_exists 就是若檔案有存在
Laechan:進階法師說道: restore 它, 就市回存
Laechan:進階法師說道: restore_object ( base_name(this_object()) );
Laechan:進階法師說道: save_object/restore_object 就是相對的
Laechan:進階法師說道: 現在我新增一個 south 出口
Laechan:進階法師說道: 這是用 call 設的
Laechan:進階法師說道: 然後 call here;save_room
Laechan:進階法師說道: 然後 update here
Laechan:進階法師說道: 現在 update here exits/south 的資料就會永存
Laechan:進階法師說道: 再來你要注意頻率問題
Laechan:進階法師說道: 你可以用直覺知道天空城的家有做這個
Laechan:進階法師說道: 假設你家裡有存五個 ring
Laechan:進階法師說道: take 一個出來就會變四個
Laechan:進階法師說道: 這時一定會做 save_room
Laechan:進階法師說道: save_room 就是重置 .o
Laechan:進階法師說道: 它的做法就是幹掉舊的 .o 重寫新的 .o
Laechan:進階法師說道: 所以假設玩家 5 take ring
Laechan:進階法師說道: 所以用到 save_object/restore_object 時要注意呼叫頻率
Laechan:進階法師說道: 不然會很操硬碟
Laechan:進階法師說道: 再來的話
Laechan:進階法師說道: /d 下的目錄無法使用這個
Laechan:進階法師說道: 所以我大部份的東西才會放在我的目錄
Laechan:進階法師說道: 像天空城之家
新手盜賊說道: hmm 是/d不能讀.o ?
Laechan:進階法師說道: 不是, 應該是無法寫 .o
Laechan:進階法師說道: 懶得改了, 大概兩年前發現的
Laechan:進階法師說道: 現在應該有能力改啦XD
所以,重點就是,要提醒小寶改!哈哈~
--
Norr@Sanc
風,吹散了一切煩惱,只留下平靜的思考。
雨,淋落了一切紛亂,只剩下無比的快樂。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.182.179
※ 編輯: hlead 來自: 219.87.182.179 (03/27 10:34)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
10
18