diff options
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index d3d3eb230..91f55e323 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -11372,6 +11372,23 @@ static void clif_parse_GlobalMessage(int fd, struct map_session_data *sd) // trigger listening npcs map->foreachinrange(npc_chat->sub, &sd->bl, AREA_SIZE, BL_NPC, full_message, strlen(full_message), &sd->bl); + + // Global listeners + struct linkdb_node **label_linkdb = strdb_get(npc->ev_label_db, "OnGlobalChat"); + if (label_linkdb == NULL) + return; + + struct linkdb_node *node = *label_linkdb; + while (node) + { + struct event_data* ev = node->data; + if (ev) + { + pc->setregstr(sd, script->add_variable("@chat$"), message); + script->run(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id); + } + node = node->next; + } } static void clif_parse_MapMove(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); |