作者laechan (小太保)
看板mud_sanc
标题Re: [wizs] 读取资料
时间Fri Jul 1 12:08:17 2011
※ 引述《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
1F:推 justinj :了解..... 07/01 12:45
2F:推 justinj :另一个问题要怎麽解决....? 07/01 13:47
3F:→ laechan :哪个问题 07/01 15:07