PCgame 版 (精华区)
发信人: ghost (正在奋发中,wait), 信区: mud
标 题: ~~~3
发信站: 听涛站 (Wed Jun 21 17:39:39 2000), 转信
程式必须的概念]
你必须了解, 在 LPC 中最重要的一个概念是物件(object) 当你想
做任何动作时, 都要考虑到这个动作是哪一个 object 所做的, 不然很
容易导致错误 LPC 的语法并不严谨, 有些场合为了省事可以将函数是
由哪个物件所作的省略掉, 例如我们在 create() 函数中最常看到的
set(), 事实上最严谨的写法应为 this_object()->set() write() 则
为 this_player()->write()
说这麽多只是为了强调一件事: 你能抓出一个物品的 object 变数
就能让他干一切他所能做的事
[this_object() 与 this_player()]
这两个函数是系统所提供的函数, 也是最最好用的两个函数 在你
写作一个物件 (房间 物品...etc.)时, this_object() 表示自己这个
物件
this_player() 则比较复杂, 它会传回一个属於玩家型别的物件
这个玩家在 init 中就是触发 init 的那个玩家 this_player() 会跟
著函数呼叫一直传递给所有被 init 呼叫的函数, 包括 add_action 中
所定义出来的函数, 在这些函数中, this_player() 就是表示做动作的
那个人
[present() 函数]
常常, 我们只知道一个物件的名字, 却不能用个 object 型别的变
数指向它 object present(string "id",object env) 函数在此时就
可以派上用场, 你给定你要找的物件的名字, 与它的所在地 (某个房间
或某个人), 函数就会传回他所找到的物件
简单的想, present 函数其实就是在一个房间里找出某个名字的物
品的函数 它是同类型找物品的函数中最有用的一个, 其余的函数还有
find_player(), find_living() 等等
[environment(), first_inventory(), next_inventory(), all_inventory()]
这一组函数跟物件所处在的位置有关 environment(object ob)
传回了物件 ob 所处在的地点, 例如 ob 是个玩家或生物, 那麽这个函
数会传回 ob 所在的房间; 如果 ob 是个物品, 那麽传回的就是携带著
ob 的生物, 或是 ob 所在的房间 (如果没有任何人带著它)
first_inventory(object ob) 所传回的是 ob 中的第一个物件,
如果 ob 是房间, 则传回第一个物品或是生物, 如果 ob 是生物, 则传
回他身上所带的第一个物品
next_inventory(object ob) 通常跟著 first_inventory() 一起
使用 它的功用是传回 ob 的下一个物品, 在同一个 environment 中
all_inventory(object ob) 类似於 first_inventory(), 但是它
所传回的是包含了所有物品的一整个阵列
--
我是沧海一小龙
游到东来游到西
找寻未知的东西
只求逍遥在人间
※ 来源:.听涛站 cces.net.[FROM: 匿名天使的家]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:0.897毫秒