summaryrefslogtreecommitdiff
path: root/src/map/clif.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/clif.c')
-rw-r--r--src/map/clif.c17
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)));