summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-28 06:50:19 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-28 06:50:19 -0300
commite06e87aa12ad659db43d069feff5a8225433d885 (patch)
tree4a2a394f2643e81bd4726eb7704c222310971d02 /src
parentb4932b6bde66e5601d178c19f2c6023534d7917d (diff)
downloadhercules-e06e87aa12ad659db43d069feff5a8225433d885.tar.gz
hercules-e06e87aa12ad659db43d069feff5a8225433d885.tar.bz2
hercules-e06e87aa12ad659db43d069feff5a8225433d885.tar.xz
hercules-e06e87aa12ad659db43d069feff5a8225433d885.zip
[TMW2] Add capability for global chat listeners
Diffstat (limited to 'src')
-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)));