[程式必须的概念] 你必须了解, 在 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(), 但是它 所传回的是包含了所有物品的一整个阵列