Re: [wizs] 讀取資料
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間14年前 (2011/07/01 12:08)推噓2(2推 0噓 1→)留言3則, 2人參與討論串2/4 (看更多)
※ 引述《justinj (黑旋風)》之銘言:
: 問一個問題 某檔案裡面的資料有沒有法子讀到
: 例如 我要看某玩家的sword值及其熟練度...[要看熟練度的值]
: 你技能中的基本劍法(Sword)值是 5367/222.[指222]
: 或者是
: inherit MONSTER;
: .
: .
: static int kk=0;
: .
: .
: 我要看kk現在的值.....
物件的設計概念之一,就是為了隱匿所含的資料。
你要讀取物件內的資料,就要為這個物件建立「方法」,例如..
static int kk=5;
int query_kk() <= 這個就叫做方法的建立
{
return kk;
}
上面的意思就是說,如果這個物件你不為它寫讀取 kk 值的函數
,你就讀不到 kk 這個值。
物件的設計概念之二,就是即使你能 more 到物件檔案,你也不
見得知道它隱含的數值。例如..
// /open/xxx.c
inherit ROOM;
mapping ob_data=([]);
void save_room()
{
save_object("/adm/special/xxx");
}
void restore_room()
{
restore_object("/adm/special/xxx");
}
上面的意思就是說,你 more /open/xxx.c 看到的就是上面的內
容,但是如果我鎖住你讀取 /adm/special/xxx.o 這個檔案的內
容,你就不會知道 xxx.c 究竟儲存了什麼資料在 data 裡頭。
(因為 xxx.c 並沒有建立讀取 ob_data 這個資料的方法)
換言之,你可以想像玩家資料檔裡頭有個參數儲存熟練度,它的
儲存格式大致就是..
mapping improve=(["sword":215, "barefist":4978, ...]);
玩家下 skill 之所以看的到熟練度,就在於玩家物件檔有為熟練
度的讀取建立方法,沒記錯的話好像叫 query_isk() 吧。
講個題外話,如果你建立一個房間,然後把資料都存在名為
mapping data 的資料變數裡頭,那麼即使你不建立讀取data
的方法,data 裡頭的資料仍然可以被讀取。
因為幾乎所有的物件都有建立 "data" 這個資料錄的預設讀
取方法,叫做 query_ob_data()。
Belldandy.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.81.16.93
推
07/01 12:45, , 1F
07/01 12:45, 1F
推
07/01 13:47, , 2F
07/01 13:47, 2F
→
07/01 15:07, , 3F
07/01 15:07, 3F
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
21
49