// door_lock.txt

如何写作一个门,以前的 es2 没有门锁的概念,
我把这部分完善了一下,在这里做一个说明.

关于门的写法大家应该很清楚了,这里只简单的
说一下,以前的区域里也有很多这方面的例子.

一扇门但让对应着门里门外两个房间.
这两个房间的文件头都要 #include <room.h>
注意要从这行的最开头写,前面不能有空格.
和门无关的房间千万不要加这行,否则会浪费
系统资源.同样的道理在文件里没有用到 ansi 
色彩的也不要 #include <ansi.h>,否则会严重
浪费系统资源.

在这两个房间的 create() 函数里要加入以下
这行内容(下面这行是一个例子):

create_door("south", "当铺大门", "north", DOOR_CLOSED);

第一个参数 south 是说明门是在这个房间的 south 方向,
这一这个房间首先要有 south 这个出口,第二个参数是这
扇门的中文描述,第三个参数是门对应的另一个房间里的
门的方向,当然是和第一个参数相反的方向.第四个参数
是说明这扇门的初始状态是关着的,这个状态两个房间要相同.

注意: create_door() 这个函数一定要写在色图setup() 函数之后.

怎么是门能锁上呢?写法也很简单,在 create_door() 这个函数里
再加两个参数,我们就在上面这个门上加一把锁.写法如下:

create_door("south", "当铺大门", "north", DOOR_CLOSED,LOCKED,__DIR__"obj/key");

第五个参数是说明门的初始状态是锁上的,第六个参数是钥匙
物件的文件名,一般的规则是钥匙在这个房间目录下的 obj 目
录下.钥匙物件用文件名唯一区分。便于钥匙物件的编写。
钥匙的 name & id 可以随便编写，不会出现误识别的情况。

注意:编写 lock door 房间时要先有 key object ,否则此房间
     编译的时候会因为找不到钥匙物件而报错.

下面这个例子大家可以参考. /d/changan/chengxf9.c 和 chengxf11.c
钥匙物件是 /d/changan/obj/cxf_key.c

By Find.