jason 发表于 2013-8-9 11:05:09

回复jason


屏蔽玩家的输出信息、输入命令一样可以通过simefun、lib来实现,靠disable来实现属于杀鸡 ...
labaz 发表于 2013-8-9 10:29 AM http://pkuxkx.net/forum/images/common/back.gif


    但是昏迷状态下执行init同样会带来其他的问题。比如见人就打招呼的npc,难道你要玩家醒来后看到一堆msg?

zues 发表于 2013-8-9 12:35:31

好像泥潭的处理方式很简单:
在/feature/command.c里面
enable_player()增加如下判断:
      if (this_object()->query_temp("disable_input"))
            this_object()->delete_temp("disable_input");
disable_player()里注释掉disable_command(),增加 set_temp("disable_input", 1);

同时,新增一个simul_efuns
int living(object ob)
{
      if (ob->query_temp("disable_input"))
                return 0;
               
      return efun::living(ob);
}

labaz 发表于 2013-8-9 12:48:41

回复 11# jason

我记得好像只有睡觉才有暂存信息,晕倒是没的

jason 发表于 2013-8-10 22:26:23

alpha 7.1给enable_commands增加了一个参数,默认是0. enable_commands(1)的时候,会调用父物件,兄弟和子物件的init方法。不过这个办法有一点要注意的,就是要先调用
enable_commands(0);
add_action("command_hook", "", 1);
再调用
enable_commands(1);

否则command_hook会覆盖其他的action。比如鸡腿上定义了eat,而有个emote也是eat,会出现不能eat jitui的问题。

jason 发表于 2013-8-10 22:34:34

sunyc,貌似基于epoll的连接功能有问题。暂时还没找到稳定的复现办法。

sunyc 发表于 2013-8-11 10:30:03

我跟labaz正在debug 不是 epoll的问题 而是 你们logind里 控制最大连接数的有bug
页: 1 [2]
查看完整版本: FluffOS 3.0-alpha7.1