📄 ask.c
字号:
// ask.c
// From ES2
// Modified by Xiang for XKX (12/15/95)
#include <ansi.h>
string query_inquiry(object ob);
inherit F_CLEAN_UP;
string *msg_dunno = ({
"$n摇摇头,说道:没听说过。\n",
"$n疑惑地看着$N,摇了摇头。\n",
"$n睁大眼睛望着$N,显然不知道$P在说什么。\n",
"$n耸了耸肩,很抱歉地说:无可奉告。\n",
"$n说道:嗯....这我可不清楚,你最好问问别人吧。\n",
"$n想了一会儿,说道:对不起,你问的事我实在没有印象。\n",
});
int main(object me, string arg)
{
string dest, topic, msg;
object ob;
mapping inquiry;
string str;
seteuid(getuid());
str=read_file("/log/NEWS");
if( me->is_busy() )
return notify_fail("您先歇口气再说话吧。\n");
if( !arg || sscanf(arg, "%s about %s", dest, topic)!=2 )
return notify_fail("你要问谁什么事?\n");
if( !objectp(ob = present(dest, environment(me))) )
return notify_fail("这里没有这个人。\n");
if( !ob->is_character() ) {
message_vision("$N对着$n自言自语....\n", me, ob);
return 1;
}
if( !ob->query("can_speak") ) {
message_vision("$N向$n打听有关『" + topic + "』的消息,但是$p显然听不懂人话。\n", me, ob);
return 1;
}
if( !INQUIRY_D->parse_inquiry(me, ob, topic) )
message_vision("$N向$n打听有关『" + topic + "』的消息。\n", me, ob);
if( userp(ob) ) return 1;
if( !living(ob) ) {
message_vision("但是很显然的,$n现在的状况没有办法给$N任何答覆。\n",
me, ob);
return 1;
}
if( msg = ob->query("inquiry/" + topic) ) {
if( stringp(msg) ) {
message_vision( CYN "$N说道:" + msg + "\n" NOR, ob);
return 1;
}
} else {
if(ob->query("race")=="野兽") {
message_vision("但是很可惜,$N不会说话。\n", ob);
return 1;
}
switch(topic) {
case "name":
message_vision( CYN "$N说道:我的名字就是$N," + RANK_D->query_respect(me)+ "有什么事?\n" NOR, ob);
break;
case "here":
message_vision(CYN "$n对$N说道:这里是" + environment(ob)->query("short") + ",其它情况" + RANK_D->query_self(ob) + "也不太清楚。\n" NOR, me, ob);
break;
case "rumors":
message_vision( CYN "$N对你说到,最近听有人说过:"+str+"" NOR, ob); break;
default:
if(topic=="news")
{
if (!str)
{
message_vision( CYN "$N对你说到,最近没什么新闻可说.." NOR, ob);
}
else {
message_vision( CYN "$N对你说到,最近听有人说过:"+str+"" NOR, ob);
}
return 1;
}
if(topic=="all")
{
message_vision( CYN "$N对你悄声说道:"+query_inquiry(ob)+"!\n" NOR, ob);
return 1;
}
if (topic == ob->query("name") || ob->id(topic))
message_vision(CYN "$n说道:那就是" + RANK_D->query_self_rude(ob) + "呀。\n" NOR, me, ob);
else if (topic == me->query("name") || me->id(topic))
message_vision(CYN "$n说道:那就是" + RANK_D->query_rude(me) + "你呀。\n" NOR, me, ob);
else if (topic == ob->query("name") || ob->id(topic))
EMOTE_D->do_emote(ob, "name1");
else if (ob->query("combat_exp") < 500000)
{
if (strsrch(topic,"北京")>= 0 || strsrch(topic,"京城")>= 0)
message_vision(CYN "$n说道:那里是京城,听说那里的千金楼不错。\n" NOR, me, ob);
else if (strsrch(topic,"郭靖")>= 0 || strsrch(topic,"北侠")>= 0)
message_vision(CYN "$n说道:人称北侠的郭靖,既是蒙古成吉思汗的金刀驸马,又是
江南七怪、全真派马钰道长、「北丐」洪七公和「老顽童」周伯通等人的徒弟,身兼数门武功
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -