Event

来自MudWiki

名称

   event() - 在其他对象中调用指定参数的 event_*,类似于 call_other,但没有返回类型。

语法

   void event(object | object * target, string event_name, mixed *args..);

描述

   在目标对象中调用 "event_" + event_name。"event_" + event_name 必须是一个公共函数。目标可以是单个对象或对象数组。

   如果目标是单个对象,event 函数将首先在该对象中调用事件函数,然后它将在目标的所有 all_inventory() 对象中调用事件函数。

   如果目标是对象数组,event 函数将在所有指定的对象中调用事件函数。与单目标版本不同,它不会级联到每个对象的库存中。

   该函数将传递调用对象作为其第一个参数,然后是所有指定的参数。

示例

// In a room

// will call event_heal_up on the room, and then every object in the room
event( this_object(), "heal_up", 50, 50 ) ; 
 
// will call event_heal_up in the results of users() efun
event( users(), "heal_up", 25, 25 ) ;
 
// In a player object
 
// To take advantage of this event, write an event_heal_up in the player
// object to receive the call
void event_heal_up(object source, int health, int mana)
{
    message("heal", sprintf("You were healed %d health and %d mana by %O.\n", health, mana, source), this_object()) ;
}

翻译

   雪风(i@mud.ren)