LPC语言小知识:event函数的使用

在fluffos中新增了一个特殊的efun,event(),这个函数有什么用呢?

函数文档:https://wiki.mud.ren/index.php?title=Event

语法

void event(object ob, string event_name, ...);
void event(object *ob, string event_name, ...);

说明

这个外部函数调用指定对象中的 `event_` + event_name(...) 方法。如果是对象数组,每个对象都会调用。如果对象是单个对象,对象和对象中的所有对象都会调用。调用`event`方法的对象会做为第一个参数传给`event_name`函数。

这个方法其实是可以模拟出来的,但是既然fluffos驱动提供了,那就直接用,少写一些代码吧。一个简单的示例:

void test()
{
    object ob = load_object("/adm/daemons/natured.c");
    event(ob, "noon");
}

这里event(ob, "noon");函数的作用就是调用/adm/daemons/natured.c对象中的event_noon方法。

这个方法和call_other(ob,"event_noon");不同的地方在于,event函数还会让对象ob中的所的对象都调用自己的event_noon方法,这在某些情况下非常有用。

京ICP备13031296号-4