sunyc 发表于 2013-8-6 12:53:09

Fluffos 3.0 (alpha7)

本帖最后由 sunyc 于 2013-8-5 08:56 PM 编辑

https://github.com/fluffos/fluff ... /fluffos-3.0-alpha7

Fluffos 3.0 (alpha7)
sunyc released this a minute ago

3.0 vs 2.0 Summary

https://github.com/fluffos/fluff ... angeLog.fluffos-3.x

FluffOS 3.0-alpha7

Check c++11 capability during configuring.
new LPC predefine __CXXFLAGS__.
Fixes cmud/zmud problem with TCP_NODELAY with MCCP.
new debug macro "-dadd_action" to show add_action related logs.
disable_commands() now accepts one int argument. (see 3.0 vs 2.0).

北大侠客行MUD,中国最好的MUD

sunyc 发表于 2013-8-6 12:54:31

这个版本针对 北侠 修改了 disable_commands(int)这个efun , 参数默认为1 , 和以前一样删除actions. 传入参数为0 , 只禁止命令输入 不删除actions.

wktxbl 发表于 2013-8-6 13:16:51

wa.............................

zues 发表于 2013-8-6 13:38:06

我不知道这样理解对不对:
假如我买了一个干粮,咬了几口,睡觉的时候干粮被人搜走,然后被他扔掉了(过分啊)。这时候,我醒来了。
如果disable_commands(1),我身上就没有eat这个action了。
如果disable_commands(0),我身上还有eat这个action,但是我要吃的object已经被摧毁了。

labaz 发表于 2013-8-6 13:44:32

回复 5# zues


fluffos里与disable无关,eat这个action只要food被别人get走都会被remove。

zues 发表于 2013-8-6 15:10:48

如果是这样的话,disable_commands睡觉,enable_commands睡醒就行,action怎么会add不上去?

labaz 发表于 2013-8-6 15:42:14

标题

回复 7# zues

enable_commands外部函数本身并不包含add当前上下环境action的操作。而老的disable_commands却包含了remove action操作,它和enable_commands并不对称。所以这次sunyc提供了参数把差异部分给分离出来。

jason 发表于 2013-8-6 22:41:31

宇聪,我看了fluffos的代码,发现一个重要的区别是move_object不再判断object是否enable_command了,一律作remove_sent和apply_init的操作。基于这个disable_command的时候仅仅置个标志,而不remove_sent是没有问题的。
不过我认为这个实现是不合理的,mud里绝大部分的物件是非enable_command的,如果enable_command的物件是1,非enable_command的物件可能就是10. 这些物件调用apply_init的开销是多余的。
我觉得move_object应该继续判断enable_command标志,同时增加一个setup_commands的efun,由lpc手动的调用apply_init,而disable_command保持remove_sent的操作。
你觉得呢

sunyc 发表于 2013-8-6 23:40:46

setup new commands 里面做了检查了, 所以并没有太多的性能损失。

sunyc 发表于 2013-8-6 23:40:50

setup new commands 里面做了检查了, 所以并没有太多的性能损失。
页: [1]
查看完整版本: Fluffos 3.0 (alpha7)