diff options
author | Michieru <Michieru@users.noreply.github.com> | 2014-11-03 11:46:22 +0100 |
---|---|---|
committer | Michieru <Michieru@users.noreply.github.com> | 2014-11-03 11:46:22 +0100 |
commit | b8abf962fd079bc3cad4498aa968f2318d1f5fde (patch) | |
tree | 941b9d312ded4e3b75360febb73922a79637c10c /src/map/map.h | |
parent | 1c76a4249ea878bd133c16a7e8b799d51b7e8594 (diff) | |
download | hercules-b8abf962fd079bc3cad4498aa968f2318d1f5fde.tar.gz hercules-b8abf962fd079bc3cad4498aa968f2318d1f5fde.tar.bz2 hercules-b8abf962fd079bc3cad4498aa968f2318d1f5fde.tar.xz hercules-b8abf962fd079bc3cad4498aa968f2318d1f5fde.zip |
* No cell stacking implemented (official version)
- Split config cell_stack_limit into custom_cell_stack_limit (previous feature) and official_cell_stack_limit (see below)
- Expanded map_count_oncell by a flag parameter, currently only one flag is supported: only count standing units (needed for official cell stack feature)
- Added a new function map_closest_freecell that will return the closest free cell using the same order that official servers use
- Monsters will now actively search for a free cell when starting to walk randomly and when unlocking target
- When any unit finishes walking (regularly) and is not on a free cell, it will now actively search for a free cell
- Step actions will be delayed until a suitable cell was found, they will even be executed when the player walked slightly out of attack range
- Monsters will now stop instantly if their target is completely non-existent
* This is mainly for looters that had their loot taken
* Hide and most other situations still use the configuration setting monster_chase_refresh
Mega Thanks to Playtester
Diffstat (limited to 'src/map/map.h')
-rw-r--r-- | src/map/map.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/map/map.h b/src/map/map.h index 5468016b4..1766220af 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -917,11 +917,12 @@ struct map_interface { int (*delblock) (struct block_list* bl); int (*moveblock) (struct block_list *bl, int x1, int y1, int64 tick); //blocklist nb in one cell - int (*count_oncell) (int16 m,int16 x,int16 y,int type); + int (*count_oncell) (int16 m,int16 x,int16 y,int type,int flag); struct skill_unit * (*find_skill_unit_oncell) (struct block_list* target,int16 x,int16 y,uint16 skill_id,struct skill_unit* out_unit, int flag); // search and creation int (*get_new_object_id) (void); int (*search_freecell) (struct block_list *src, int16 m, int16 *x, int16 *y, int16 rx, int16 ry, int flag); + bool (*closest_freecell) (int16 m, int16 *x, int16 *y, int type, int flag); // int (*quit) (struct map_session_data *sd); // npc |