summaryrefslogtreecommitdiff
path: root/src/map/unit.c
AgeCommit message (Collapse)AuthorFilesLines
2016-01-06Change all TBL_NPC to struct npc_data as per style guidelineshemagx1-2/+2
Signed-off-by: Haru <haru@dotalux.com>
2016-01-06Change all TBL_ELEM to struct elemental_data as per style guidelineshemagx1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-01-06Change all TBL_PET to struct pet_data as per style guidelineshemagx1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-01-06Change all TBL_MER to struct mercenary_data as per style guidelineshemagx1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-01-06Change all TBL_HOM to struct homun_data as per style guidelineshemagx1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-01-06Change all TBL_MOB to struct mob_data as per strly guidelineshemagx1-9/+10
Signed-off-by: Haru <haru@dotalux.com>
2016-01-06Change all TBL_PC to struct map_session_data as per style guidelineshemagx1-7/+7
Signed-off-by: Haru <haru@dotalux.com>
2015-12-15Added GPL-compliant header to all sources and build scriptsHaru1-4/+20
Signed-off-by: Haru <haru@dotalux.com>
2015-12-04Merge pull request #910 from dastgir/idleAndrei Karas1-2/+2
Added a function to update idle time
2015-12-04Added a function to update idle timeDastgir1-2/+2
2015-11-14Changed struct map_session_data::queues into a VECTOR and renamed to ↵Haru1-4/+1
::script_queues Signed-off-by: Haru <haru@dotalux.com>
2015-10-19rename malloc.c/h to memmgr.Andrei Karas1-1/+1
2015-10-11Cleanup of the HPluginData implementation (second part)Haru1-7/+2
- Changed the hplugin_data_store's array into a VECTOR. Signed-off-by: Haru <haru@dotalux.com>
2015-10-11Cleanup of the HPluginData implementation (First part)Haru1-21/+6
- Several explicit casts are removed, to have a slightly better type-checking at compile time. - A destructor function is provided, to remove code duplication. Signed-off-by: Haru <haru@dotalux.com>
2015-09-24Add bl parameter to closest_freecell.Andrei Karas1-1/+1
2015-09-24Add bl parameter to getcell functions.Andrei Karas1-18/+18
2015-09-18Clarified the intent of several assignments inside conditional expressionsHaru1-5/+5
Signed-off-by: Haru <haru@dotalux.com>
2015-09-10Add to path search functions source bl for plugins usage.Andrei Karas1-10/+10
2015-08-15HPM compatibility improvementsHaru1-0/+1
Improved compatibility, portability and standards conformance. - Since it is not possible to portably and reliably re-use the core's symbols in plugins, symbols are no longer exported unless explicitly required, in the UNIX builds. This mimics the Windows behavior and adds HPM compatibility to OSes such as FreeBSD. Credits to Andrei Karas for making this possible. - For convenience, it is no longer necessary to call GET_SYMBOL, since the plugin will automatically import all the available symbols when it's loaded, depending on the included headers. - Plugins are now supposed to include the "common/hercules.h" header before including anything else. Incluing common/HPMi.h, common/cbasetypes.h or conf/core.h is no longer necessary, as those are guaranteed to be automatically included by hercules.h. - HPM API version bumped to 1.1. Signed-off-by: Haru <haru@dotalux.com>
2015-06-19Removed ".." from include directivesHaru1-35/+35
- Include directives are now directory-independent. - This will allow building plugins from other directories in future. Signed-off-by: Haru <haru@dotalux.com>
2015-06-01Replaced some of the hardcoded values with constants (map)Haru1-32/+25
- Replaced several hardcoded values with the appropriate enums. - Added documentation for some hardcoded values that haven't been replaced by enums (yet) - Minor code legibility improvements. Signed-off-by: Haru <haru@dotalux.com>
2015-05-24Corrected distance check on homunculus skillsHaru1-9/+12
- Distance check on offensive skills was being done against the homunculus' master instead of the actual target, because of a variable accidentally overwritten in 8faef4ff. - Please don't reuse variables for unrelated things. You don't have to pay extra if you use one more variable, I promise. - Special thanks to MordekaiserGod. Signed-off-by: Haru <haru@dotalux.com>
2015-05-03Fixed Bug#8650malufett1-0/+2
-http://hercules.ws/board/tracker/issue-8650-minstrel-poem-of-netherworld-or-despair-song-skillleffect/?gopid=25083#entry25083 Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2015-03-27Hercules 'job_db1.txt' Redesignmalufett1-4/+5
-Initial and for review Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2015-02-23Add battle config option check_occupied_cells.Andrei Karas1-1/+1
If set check_occupied_cells to 0 it will allow walk to occupied cells And it heavy reduce CPU usage on walking.
2015-02-23Extend official_cell_stack_limit option.Andrei Karas1-1/+1
Now if this option is zero server will not count objects before comparing with official_cell_stack_limit. If set official_cell_stack_limit to zero it will heavy reduce CPU usage.
2015-01-23Cleaned up spirit charms implementation (optimized memory and CPU usage)Haru1-6/+4
Signed-off-by: Haru <haru@dotalux.com>
2015-01-20Fixes Compile Error on WindowsDastgir1-1/+2
2015-01-20Minor fixes and tweaks suggested by cppcheckHaru1-25/+20
- Variable scopes reduced - Parenthesized ambiguous expressions - Removed or added NULL checks where (un)necessary - Corrected format strings - Fixed typos potentially leading to bugs Signed-off-by: Haru <haru@dotalux.com>
2015-01-17Another ~10 Fixesshennetsind1-2/+2
Addressing out of bounds read/write. Special Thanks to 4144 and Haruna! Signed-off-by: shennetsind <ind@henn.et>
2015-01-03Fixes the direction of an object (char, mob, etc) when it faces a target ↵csnv1-0/+4
after an action (skill, attack)
2014-12-31Add some missing null pointer checks after automatic checks.Andrei Karas1-12/+16
2014-12-26Updated KG/OB Spirit Charms to official behaviormalufett1-2/+2
-http://hercules.ws/board/tracker/issue-8170-oborokagerou-charm/ -http://hercules.ws/board/tracker/issue-8274-ninja-charms-not-giving-proper-bonuses/ Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2014-12-21Fixed Bug#8458malufett1-1/+1
-http://hercules.ws/board/tracker/issue-8458-sgs-running-and-gm-hide/?gopid=24216#entry24216 Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2014-12-21Remove plugin data in mob_data destruction.Andrei Karas1-0/+10
2014-12-16Add function what called if player leave npc area.Andrei Karas1-3/+3
2014-12-10Add missing interface usage.Andrei Karas1-1/+1
2014-12-10RENEWAL Updates:malufett1-13/+20
-Homunculus Official Statuses -Updated RE @mobinfo to show proper status data.(Follow up 28a8b0f7b06a6af86aff6ececf7d9541d457e297) -Some official behaviors. Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2014-12-02Replace some direct methods usage to interfaces.Andrei Karas1-1/+1
2014-12-02Removed petheal commandHaru1-4/+1
- Follow-up to 8bb0078 Signed-off-by: Haru <haru@dotalux.com>
2014-12-02Follow-up to 26cdd53, 0623d4fHaru1-1/+1
Whitespace cleanup Signed-off-by: Haru <haru@dotalux.com>
2014-11-24* 1st Transcendent Spirit, monster position lag fixesMichieru1-2/+23
- 1st Transcendent Spirit will now work as on official servers (#116) * The max total stat that is granted by the skill is now BaseLevel-10 with a maximum of 50 instead of always 50 * It will now work as Marionette Control and calculate the bonus at cast time rather than overwrite all existing bonuses * Agi Up and Blessing will now cancel the soul link - Fixed various problems that caused position lags on the client (#118) * Added a define ACTIVEPATHSEARCH in mob.c; if active (default and official), monsters will only grab targets if the walk path to the target is shorter or equal their search range; search range depends on whether the monster is moving or not (range2 for standing monsters and range3 for walking monsters); this requires a lot of CPU load, if it causes trouble, just comment the define for old behavior * Fixed a bug that made monsters display "irregular movement with position lag" continuously when a status change ended that changed their walk speed * OFFICIAL_WALKPATH now also applies to monsters * If the path search fails while a unit is already moving, we will now issue of fixpos packet so that the unit does not only stop moving on the server, but also on the client * Direction fixes - Updated the config setting attack_direction_change from 15 to 0 (official value); that means that a unit's direction will no longer change when it attacks; knock-back effects from e.g. Firewall will depend on the last direction the target walked into instead (bugreport:1322) - Ensured that the default direction of a monster is always "north", so that immobile monsters will now always be knocked back to the south by e.g. Firewall on default settings, unless a skill like e.g. Backstab changes their direction (bugreport:1322) - Fixed a bug that stopped characters server-sided and caused position lag when closing a skill menu * Magnum Break damage fixed - Targets two cells away will now only take 100%+10%*level damage (#108)
2014-11-17(Bugs 5237 and 7979)GrumpyLittlePanda1-8/+0
- Land Protector now behaves more like on official servers * Land Protector now protects from units being placed on it, no matter if they have splash range or not * Land Protector no longer protects from damage from units not outside Land Protector that splash inside * Meteor Storm no longer shows meteors falling if they would land on Land Protector * Pneuma can no longer be placed next to Land Protector * Safety wall no longer consumes gem if cast on LP. * Also cleaned up the code a bit, so the checks are done where they should be done - Ground skill splash ranges updated to their official values * Lord of Vermilion places units in a 11x11 area with 3x3 splash range each * Storm Gust places units in a 9x9 area with 3x3 splash range each * Heaven's Drive places units in a 5x5 area with no splash range * Venom Dust now has a splash range of 3x3 and is consequently larger than before - Storm Gust's knock-back behavior updated to official * Each of Storm Gust's units will knock back "Away from center" * As units in the south-west are processed first, the knock-back direction will usually be north-east * At the edges the knock-back direction will be "to the outside" * Land Protector and Ganbantein will influence the knock-back behavior strongly, e.g. if Storm Gust has a hole in the middle, it will have a "suck in" effect * Added a config option for those who want the old "random direction" behavior from eAthena
2014-11-16Whitespace cleanup (no code changes)Haru1-54/+54
This includes, and is not limited to: mixed or wrong indentation, excess whitespace (horizontal and vertical), misalignment, trailing spaces. Signed-off-by: Haru <haru@dotalux.com>
2014-11-10Fix interfaces methods usage.Andrei Karas1-7/+7
In some places was used direct methods.
2014-11-03HPM Hooks UpdateHercules.ws1-11/+11
Signed-off-by: HerculesWSAPI <Hercules@efficiently.awesome>
2014-11-03* No cell stacking implemented (official version)Michieru1-4/+21
- 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
2014-11-01Fix clearance, should work only on mob, party or self and skill can't be ↵Michieru1-0/+6
cast on all players that are not in the party (bug:7050)
2014-10-31- Monster chase range updates (bugreport:7637)Michieru1-5/+27
* Updated monster_chase_range in monster.conf from 1 to 3; I originally thought official value is 1, but doing some in-depth tests myself I realized it's 3 for the most important situations * When a monster cannot issue new "move" commands because it was affected by a status change, but is still moving due to knockback immunity, it will no longer unlock its target and stop * Fixed a bug that always caused the chase path monsters calculated to be 1 cell too short causing them to recalculate their path one cell before their goal every single time - Fixed the direction calculation once again and optimized it at the same time (bugreport:9373) * Now the calculated direction is 100% official, really truly, checked it myself with every single cell and various skills * Added a new function map_calc_dir_xy that allows to check for a direction between two cells without the need of a block_list * map_calc_dir will now just use map_calc_dir_xy to avoid duplicate code * Improved Icewall walk block implementation - Moved the configuration setting "icewall_walk_block" to monster.conf - Split the configuration into mob_icewall_walk_block and boss_icewall_walk_block so it can be configured for bosses separately - Expanded the configuration * If the value is set to 1, monsters on an ice wall cell will behave like trapped monsters, that means they won't be able to move at all, they will use idle skills and if they are attacked while nobody is in their attack range, they will use their rudeattacked skills; this is equal to official behavior of bosses * If the value is set to 2-255, it will behave as before but monsters in the AI loop now use both idle and chase skills, but will no longer use their rudeattacked skills even if attacked from range; this is equal to official behavior of normal monsters * Official values would be "220" for normal monsters (loop until Icewall expiration) and "1" for bosses (behave like trapped monster) on most official servers, but as some official servers have a less exploitable implementation (from looping AI only a limited amount of times up to outright blocking Icewall on all maps with bosses) - Cleaned up the rudeattacked code a little so it's easier to read - Fire Pillar is no longer a trap and can no longer be hit or knocked back in renewal Thanks to Playtester (rathena b43b855d2, 902c920b734cd)
2014-10-26- Can't cast icewall more than once on the same center cell. Special thanks ↵Michieru1-0/+6
to Ind - Service for you now work properly on all skill level. - Fixed a problem that sometimes randomly a status change was removed on logout although it shouldn't. Special thanks to Playtester