From dc7c6e13e5535e4fe78bb84f9920347880022327 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 1 Jan 2015 16:52:15 +0300 Subject: map: allow use npc with any id in allowed range. --- src/map/init.c | 1 + src/map/npc.c | 6 ++++++ src/map/npc.h | 2 ++ 3 files changed, 9 insertions(+) (limited to 'src') diff --git a/src/map/init.c b/src/map/init.c index 8a09c3d..f5e9e1a 100644 --- a/src/map/init.c +++ b/src/map/init.c @@ -108,6 +108,7 @@ HPExport void plugin_init (void) addHookPre("pc->takeitem", epc_takeitem); addHookPre("npc->parse_unknown_mapflag", enpc_parse_unknown_mapflag); addHookPre("npc->buysellsel", enpc_buysellsel); + addHookPre("npc->db_checkid", enpc_db_checkid); addHookPre("clif->quest_send_list", eclif_quest_send_list); addHookPre("clif->quest_add", eclif_quest_add); addHookPre("clif->charnameack", eclif_charnameack); diff --git a/src/map/npc.c b/src/map/npc.c index aba7288..9ccca29 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -111,3 +111,9 @@ int enpc_buysellsel(struct map_session_data* sd, int *id, int *type) return 0; } +bool enpc_db_checkid(int *idPtr) +{ + const int id = *idPtr; + hookStop(); + return ((id >= 46 && id < MAX_NPC_CLASS) || id == HIDDEN_WARP_CLASS || id == INVISIBLE_CLASS || (id > MAX_NPC_CLASS2_START && id < MAX_NPC_CLASS2_END)); +} diff --git a/src/map/npc.h b/src/map/npc.h index f4ca1b9..5e424e9 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -9,4 +9,6 @@ void enpc_parse_unknown_mapflag(const char *name, char *w3, char *w4, const char int enpc_buysellsel(struct map_session_data* sd, int *id, int *type); +bool enpc_db_checkid(int *idPtr); + #endif // EVOL_MAP_NPC -- cgit v1.2.3-60-g2f50