请教accept_object简单示例
mud吧
全部回复
仅看楼主
level 3
int accept_object(object who,object ob)
{
int num=ob->value();
if(num<200) return notify_fail("需要2两银子\n");
message_vision("谢谢"+RANK_D->query_respect(who)+"的2两银子\n",who);
return 1;
}
能编译通过,但调试有问题。比如给NPC1两银子,应该返回错误信息的,但调试时只是显示对方不要你的东西。
不知道错在哪了,请指教
2019年01月17日 14点01分 1
level 3
貌似问题出在return notify_fail不能代替return
2019年01月17日 14点01分 2
level 3
但很多时候又用return notify_fail代替return 0
但在accept_object函数里面却出错。找不到原因
2019年01月17日 14点01分 3
level 5
你确定notify_fail这个函数是往显示器输出的么?
2019年01月18日 02点01分 4
level 10
下面是泥潭6单机版message.c的notify_fail定义:
int notify_fail(string msg)
{
if( this_player() ) {
set_temp("notify_fail", msg, this_player());
if( query_temp("big5", this_player()) )
#ifdef LONELY_IMPROVED
// msg = G2B(msg);
msg = LANGUAGE_D->toBig5(msg);
#else
msg = LANGUAGE_D->toBig5(msg);
#endif
return efun::notify_fail(ESC "[256D" ESC "[K" + msg);
} else
return 0;
}
这里应该是当接收返回值的是this_player()时,notify_fail才生效,不然只是返回0,accept_object是NPC的反应,所以用notify_fail不会显示自定义的提示,只会返回0,要想给出提示信息,只有用message_vision或者tell_object
2019年02月08日 09点02分 5
1