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毫秒