关于pansy的双人刀法设想！我认为很好！

我们来设想一下如何完成吧

迷题流程：玩家去林府！在XX npc那儿ask鸳鸯刀，npc给他说：此
刀已被一蒙面人夺走，蒙面人逃到林府后面的树林里去了。
玩家来到树林，这儿是一个迷宫，在迷宫中间的一个树林里，玩家
找到蒙面人，将他拿下得到一把鸳刀，蒙面人临死时说：另一把刀
在林府内没来得及拿出来，藏在一个room里了，蒙面人没来得及说
出在哪个room就死掉了。玩家回到林府，一个room一个room的找，
终于找到了，玩家把刀还给林家主人，任务完成。

迷题相关room：林府，在约8个room左右就可。林府后树林：大约
也是8个room的一个小迷宫。

迷题相关npc：林家两口子，佣人数个，客人数个（根据原书）

现在开始设计程序。
首先，从林家主人开始吧，
在文件头给他设定上string ask_yuanyang();
然后在设定人物时
	set("inquiry", ([
                "'鸳鸯刀 :     (: ask_yuanyang :)
	]));
最后在程序尾加上
string ask_yuanyang()
{
	object ob;
	ob = this_player();
        message_vision("林先生打量了$N一下：鸳鸯刀被一个蒙面人夺走了！\n",ob);
	ob->set_temp ("yuanyang" , 1 );
	return 1;
}
在这一段里，玩家被设定上了一个临时变量yuanyang，这个变量将在后面用到。

然后我们来看树林，树林的迷宫走通以后！我们来到一个林间空地，设
定上要在这儿抓住蒙面人。
那么我们首先要给这个房间一个相遇函数。
也就是：void greeting()
在它里面！我们判断玩家身上是否有yuanyang这个临时变量。如果有就
发生情节。
我小举一例：
void greeting(object ob)
{
    if (this_player()->query_temp("yuanyang") > 1)
    ob = "/d/lingfu/npc/mengmian";  //这儿是假设蒙面人的文件名是/d/lingfu/mengmian
    ob->move("/d/lingfu/shulin");   //这儿是假设树林的文件名是/d/lingfu/shulin
    message_vision("$N冲到树林一看，林中站了一个蒙面人。\n",this_player());
}
这样！当玩家身上有yuanyang这个临时变量时，到这树林就可以看到一个蒙面人了。
杀掉蒙面人，蒙面人临死时后说出另一把刀在林府。这儿又如何设计呢？
要利用die()这个东西。
举例如下：
void die()
{
        message_vision("\n蒙面人叫道：想不到我竟然毁于你手！\n");        	 
        message_vision("\n蒙面人叹道：天下无敌是不行了，另一把刀在林府内！\n"); 
        message_vision("\n蒙面人叹道：就在......\n"); 
        message_vision("\n蒙面人一口气接不上来，死了！\n"); 
        ::die();
}
然后玩家就可以林府去找另一把刀，当然，这儿也可以用临时变量的法子
使玩家必须杀了蒙面人才能找到另一把，不然就找不到。
回到林府，在XX房间内设上一个zhao的动作，动作的结果是找到刀也就可以了
因为很简单！我就不举例了。

最后是刀找到以后还给林家主人，至于两把刀都得找到给林家主的设定，
有例子可以查，见神龙岛许雪亭（kungfu/class/shenlong/xu.c），我就不多嘴了。

然后是林家主人拿到刀后同意教刀法。
这些都很简单！我就不说了！

值得一提的是，当玩家问过一次林先生后，必须设定很长的一个时间
内不能问第二次，不然会形成鸳鸯刀满天飞的情况，这是细节！所以
放在最后来说。

大家看以上设计可否？
如果可行，不知哪位有兴趣一试，在下愿帮忙。

星星（lywin）
2000年8月8日