// npc.txt

关于npc的写作的基本写法在这里就不叙述了.
这里只对本游戏中的一些特殊的npc的写作方法
作详细的说明.
关于时间系统，请参看 help nature.

编写 npc 要注意武功与经验的平衡性，不允许有
经验很高武功却很低的怪物出现，反之也要极力避免。

1. 普通的npc继承标准的npc物件.即: inherit NPC;
2. 各门派的师傅(可以教玩家武功的)npc继承master物件.即: inherit MASTER;
3. 商贩(既可以向玩家出售物品的)npc继承dealer物件.即: inherit F_DEALER;
   DEALER 预定晚上是不卖东西的，如果你需要日夜营业的 dealer ,
   例如药铺的伙计，药铺是日夜营业的，就需要 set("sell_all_day",1);
4. 官府的(如城门卫,捕快,衙门守卫等在游戏剧情里属于官府执法者
   的)npc继承garrison物件.即: inherit GARRISON;
5. 有疗伤功能的 npc 必须继承 DOCTOR, 即: inherit DOCTOR;
   有一个例子：/d/junying/npc/doctor.c
   如此类 npc 不继承 DOCTOR 则有后门嫌疑，一经发现将受到
   降级直至除名的处理。有特殊需求须向区域主管或 ADMIN 申报。
6. 铁匠铺老板,请继承 SMITH,即: inherit SMITH;
   铁匠铺老板有收购兵器、盔甲的功能。可以参看长安的铁器作坊
   里的张铁匠。
7. 药铺的老板，请继承 DRUGGER，即：inherit DRUGGER;
   因为药铺的老板有收购成品毒物的功能，参看 help poison
   DRUGGER 已经继承了 F_DEALER，所以药铺所卖商品的写法和
   普通的 DEALER 写法一样。可以参看长安药店的伙计。

这些特殊的npc中已经继承了标准npc物件,不要再 inherit NPC;
否则会因重复继承出错.

一些原则:1.不能出现光屁股的npc.
         2.npc的着装要根据身份和剧情用不同的服装.

如何使npc在白天和晚上有不同的表现,甚至变成完全另外一个人？
首先你要对普通npc的写作有透彻的了解，否则先去学习一下这部分。
昼夜不同的npc写作非常简单：
1。如何设置npc晚上的名字和id？
	set_night_name(name,({id_1,id_2,}))
	name 是晚上看到的名字，id_1,id_2 是晚上此 npc 的id。
	set_name(name,({id}))我们默认的是此npc白天的
	状态，当然如果是没有昼夜区别的npc，set_name()
	就是此npc的全天状态。以下同。
2。如何设置npc晚上的名字和 title？
	set("night_title",title);
	title 是你要设置此npc的晚上的 title。
3。如何设置npc晚上的名字和 nickname ？
	set("night_nickname",nickname);
	nickname 是你要设置此npc的晚上的 nickname。
4。如何使npc在白天和晚上由不同的随机动作？
	set("chat_chance", 15);
	这是设置随即动作的触发概率，想必大家已经很清楚了。
	set("chat_msg",({ 动作1, 动作2, }));
	这默认为npc白天的随机动作
	set("night_chat_msg",({ 动作1, 动作2, }));
	这是晚间npc的随机动作。

是不是很简单？
现在出现一个问题：如果这个npc白天是一个商贩（dealer），
而晚上是打更的，如果晚上还能 list, mai 就很可笑了，
怎么解决这个问题呢？很简单。
	set("no_sell_night",1);
	在晚上屏蔽掉 list,mai 命令。
	相反的如果晚上是卖夜宵的小贩，白
	天是卖艺的，也简单：
	set("no_sell_day",1);
	在白天屏蔽掉 list,mai 命令。

这里有一个例子 /d/changan/npc/fruit_seller.c
(现在在 /wiz/find/fruit_seller.c)
这个npc白天是一个水果贩子晚上是一个飞贼。

肯定有人问以前的mud没有这些功能也不错呀。
这些功能有什么用处呢？

首先我们要制作的游戏是一个超越现有的游戏
尽量模拟现实的更有趣味的游戏，否则也不用
大家一起辛苦的工作，拿个mud来抄抄改改就
行了。
时间在我们的游戏里是一个非常重要的概念，
关于时间系统，请参看 help nature.
至于用处情节的使用、谜题，比如要拿一个东
西只有晚上才有的卖，要找一个人只有晚上才
会出现.......，我们尽量创造一个灵活的、使
用简便的编程环境，至于如何使用这个环境制
作出精彩细腻的游戏内容要靠大家发挥想象力
和创造力，这方面是没有教材与范例的。

by 发现号(Find).