From cd780e51999c6efa1084e6b41ba0efcaaa347b9e Mon Sep 17 00:00:00 2001 From: shennetsind Date: Fri, 18 Oct 2013 17:52:51 -0300 Subject: Minor HPM Update Attempting to hook to a unknown hooking point will now display a message. Added support for item bonuses Check https://github.com/HerculesWS/StaffPlugins/tree/master/shennetsind/bCoolDownRate for a demonstration. Signed-off-by: shennetsind --- src/map/map.c | 8 ++++++++ src/map/map.h | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/map') diff --git a/src/map/map.c b/src/map/map.c index 14a9b4908..91871e58f 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -4954,6 +4954,10 @@ void read_map_zone_db(void) { } } +int map_get_new_bonus_id (void) { + return map->bonus_id++; +} + /** * @see DBApply */ @@ -5648,6 +5652,8 @@ void map_defaults(void) { map->cache_buffer = NULL; map->flooritem_ers = NULL; + /* */ + map->bonus_id = SP_LAST_KNOWN; /* funcs */ map->zone_init = map_zone_init; map->zone_remove = map_zone_remove; @@ -5814,6 +5820,8 @@ void map_defaults(void) { map->addblcell = map_addblcell; map->delblcell = map_delblcell; + + map->get_new_bonus_id = map_get_new_bonus_id; /** * mapit interface diff --git a/src/map/map.h b/src/map/map.h index 97c7a9d7d..83d5aa5a8 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -406,7 +406,11 @@ enum _sp { SP_ADD_SKILL_BLOW, SP_SP_VANISH_RATE, SP_MAGIC_SP_GAIN_VALUE, SP_MAGIC_HP_GAIN_VALUE, SP_ADD_CLASS_DROP_ITEM, //2041-2045 SP_EMATK, SP_SP_GAIN_RACE_ATTACK, SP_HP_GAIN_RACE_ATTACK, SP_SKILL_USE_SP_RATE, //2046-2049 SP_SKILL_COOLDOWN,SP_SKILL_FIXEDCAST, SP_SKILL_VARIABLECAST, SP_FIXCASTRATE, SP_VARCASTRATE, //2050-2054 - SP_SKILL_USE_SP,SP_MAGIC_ATK_ELE, SP_ADD_FIXEDCAST, SP_ADD_VARIABLECAST //2055-2058 + SP_SKILL_USE_SP,SP_MAGIC_ATK_ELE, SP_ADD_FIXEDCAST, SP_ADD_VARIABLECAST, //2055-2058 + + + /* must be the last, plugins add bonuses from this value onwards */ + SP_LAST_KNOWN, }; enum _look { @@ -856,6 +860,8 @@ struct map_interface { char *cache_buffer; // Has the uncompressed gat data of all maps, so just one allocation has to be made /* */ struct eri *flooritem_ers; + /* */ + int bonus_id; /* funcs */ void (*zone_init) (void); void (*zone_remove) (int m); @@ -1022,6 +1028,7 @@ struct map_interface { bool (*arg_next_value) (const char *option, int i, int argc); void (*addblcell) (struct block_list *bl); void (*delblcell) (struct block_list *bl); + int (*get_new_bonus_id) (void); }; struct map_interface *map; -- cgit v1.2.3-60-g2f50