summaryrefslogtreecommitdiff
path: root/src/map/unit.c
AgeCommit message (Collapse)AuthorFilesLines
2014-01-24Follow up e587d715cbc3shennetsind1-14/+13
Fixed an issue where character position would not be instantly updated upon using a skill with casttime while in hiding (e.g. cloaking -> soul break), Special Thanks to Michieru! Turned the feature optional, by commenting out ANTI_MAYAP_CHEAT in src/config/secure.h due it not being entirely able to mimic skill casting out of hiding (read the description in secure.h for further details). Also fixed some status.c indentation which, unfortunately, considerably increased this commits size. Signed-off-by: shennetsind <ind@henn.et>
2014-01-18Socket interfacedshennetsind1-1/+1
We designed this one with having as little changes required elsewhere in mind, thus the way most socket-related things are called has not changed. Plugins may now take a greater advantage of the socket features. Signed-off-by: shennetsind <ind@henn.et>
2014-01-11Hercules 1st 2014 MegaPatchshennetsind1-14/+7
http://hercules.ws/board/topic/3886-hercules-1st-2014-megapatch/ Signed-off-by: shennetsind <ind@henn.et>
2013-12-17Fixed several compiler warningsHaru1-5/+7
- Warnings detected thanks to Xcode's compiler settings (more strict by default) and clang, warnings mostly but not only related to data sizes on 64 bit systems, that were silenced until now by very lax compiler settings. - This also decreases by a great deal the amount of warnings produced by MSVC in x64 mode (for the adventurous ones who tried that) - Also fixed (or silenced in case of false positives) the potential issues pointed out by the (awesome) clang static analyzer. - Patch co-produced with Ind, I'm merging and committing in his place! Signed-off-by: Haru <haru@dotalux.com>
2013-12-03Questlog fixesHaru1-0/+5
- Improved memory usage of the quest log system. (saves up to 75kB per online character). Fixes issue #133. - Fixed various issues with quest entries disappearing from characters without an apparent reason, or monster kill counters getting stuck - the issues were caused by a de-synchronization between the two parallel questlog arrays in map_session_data. - Added some code documentation. - Thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2013-11-28Follow up fdb6de1aa34086fd4d22ae127437727f556cea3cshennetsind1-2/+2
Modified reflect code so that each reflection source can judge whether to apply or not, necessary for mechanics such as item-bonus reflect triggers even on autoguard while reflect shield does not. Re-added that "reflect shield" overhead display which I mistakenly removed in fdb6de1aa34086fd4d22ae127437727f556cea3c. Added code to refrain damage numbers from overlapping in the client, which would render them illegible. Special Thanks to kyeme, Yommy. http://hercules.ws/board/tracker/issue-7792-safety-wall-reflect-bug-body-relocation-error/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-13HPM Custom Data Struct Makeover!shennetsind1-1/+1
- Modified how the core handles it, making it easier to add new points. - Modified how plugins call it, calls were made shorter, e.g. 'HPMi->getFromSession(session[fd],HPMi->pid,0)' => 'getFromSession(session[fd],0)' -- check src/common/HPMi.h #defines for all the options - Added support for npc_data (getFromNPCD and so on) as requested in http://hercules.ws/board/topic/2923-hpm-custom-struct-npcs/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-09Fixed Bug 7800shennetsind1-1/+0
homunculus skill delays (cooldown was fixed in 7803b4e0d437681aa09113b5240363d03d85a1b8 ) are no longer reset upon being vaporized Thanks to Wend, kyeme. http://hercules.ws/board/tracker/issue-7800-homunculus-skills-cooldown/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-08Fixed 5 Homun Bugsshennetsind1-15/+20
1. Homun cooldowns are no longer reset upon being vaporized. 2. Call Homun now displays the skill title above the char upon success. 3. Homuns that have been out of owners sight for over 3 seconds will now be teleport back to master. 4. pc_jobchange now correctly vaporizes the homun. 5. New homunculus now spawn with full health. Special Thanks to kyeme/Beret for all the information and official server testing. Signed-off-by: shennetsind <ind@henn.et>
2013-11-05Introducing the Hercules Standalone Script Syntax CheckerHaru1-1/+4
- Added a command line argument '--script-check' to check a script's syntax without running the server (and without requiring a SQL connection). Usage: ./map-server --script-check /path/to/the/script.txt - For convenience, a script-checker bash script is provided, to set the path correctly when called from a different directory. Usage: /path/to/Hercules/script-checker /path/to/the/script/to/check.txt - While the script checker will supposedly work under windows as well, no convenience scripts are currently provided for platforms other than UNIX (feel free to open a pull request with a .bat launcher or whatever you like) - Integration with IDEs or text editors is possible. In fact, I already have a fully functional plugin for vim (through vim-syntastic), and if there's enough interest, I'll publish it. - screenshot: http://d.pr/i/NOBD - If you want an online checker, http://haru.ws/scriptchecker/ is running this code, without modifications and will be kept up to date (without any warranty though.) - Special thanks to Ind, Yommy, Streusel, who helped making this possible, in a way or another.
2013-11-02Fixed Bug #7621shennetsind1-1/+1
Magicmushroom poison now properly cancels skills being cast upon activating one of its own, also modified unit_skillcastcancel's error message upon timer deletion failure so that it becomes easier to debug in the future. http://hercules.ws/board/tracker/issue-7621-erro-map-server-waraitake/ Thanks to Beret Signed-off-by: shennetsind <ind@henn.et>
2013-10-27Performance Improvement: hpmetershennetsind1-0/+4
whenever a character's hp was modified (e.g. damage/heal), clif_hpmeter would look for nearby characters with the PC_PERM_VIEW_HPMETER permission (foreachinarea operation), and since most of the time there isn't such a char nearby it would needlessly consume processing power, now hpmeter is only triggered when there are actual need (when a character with such capabilities is within the map). as little as this may look like, its a mega boost for damage-intensive areas e.g. woe, whereas a single AoE damaging 10 people would, without this, trigger foreachinarea 10 times one very hit. Signed-off-by: shennetsind <ind@henn.et>
2013-10-26Changed 'tick' variables to 64 bitHaru1-18/+12
- This fixes an issue with timers that stop working after about 24-49 days when the tick overflows (note that this may happen much earlier than that, and at hard to predict times, on some systems) - Updated the RDTSC help message in the configure script to also warn users about issues with SpeedStep enabled systems. - On Windows, tick() still has a resolution of 10~15ms (or even as low as 100ms on some systems). A TODO comment (thanks, Ai4rei) was added for a follow-up patch, as I want this one to be as small as possible) - Note: on Windows versions earlier than 6.x (Vista, Server 2008), the tick overflow issue is NOT fixed, since they don't support the function used to retrieve a 64 bit tick. This isn't a big issue, since those platforms are already - or going soon to be - out of their extended support period, and it's already advisable to upgrade, for other reasons. If you're the unfortunate user of such a system, it is recommended that you reboot your machine at least once every 49 days for Hercules to work reliably. - Note: To clear some doubts, since I've already been asked, this has absolutely NOTHING to do with 32/64 bit CPUs or OSes. It's all about a variable's size, not the size of registers of your CPU, and your 32bit CPU will be able to handle this just fine. Signed-off-by: Haru <haru@dotalux.com>
2013-10-24Added idletime optionsshennetsind1-1/+1
There have been requests for the extension of the feature, I was reluctant given more options would cause features relying on the feature to be easier to counter (less accurate), with the modification of the feature to employ options the feature is now configurable at the server owners discretion. Special Thanks to Haruna Signed-off-by: shennetsind <ind@henn.et>
2013-10-02HPM: Map.c Completedshennetsind1-15/+15
Fully Interfaced. Moved missing vars and declarations of interest into the interface, removed duplicate mentions of map within calls to shorten wherever it made sense to. Ladies and Gentleman its my pleasure to announce that with this commit we've revised all of map-server, we've learned a hell lot from this, improved many things on the go and have a number of features to be released thanks to this. *cough* hpm hooking *cough*. Signed-off-by: shennetsind <ind@henn.et>
2013-09-28HPM: pc.c Completedshennetsind1-1/+1
Moved missing vars and declarations of interest into the interface. Signed-off-by: shennetsind <ind@henn.et>
2013-09-28HPM: Instance.c Completedshennetsind1-1/+1
Moved missing vars and declarations of interest into the interface. Instance data now available to plugins via instance->list (struct instance_data array) Signed-off-by: shennetsind <ind@henn.et>
2013-09-27HPM: Chat.c Completedshennetsind1-1/+1
Moved missing vars and declarations of interest into the interface, removed duplicate mentions of chat within calls to shorten wherever it made sense to, and renamed some members to ease reading. Signed-off-by: shennetsind <ind@henn.et>
2013-09-27Renamed iMap interface to mapHaru1-122/+105
Signed-off-by: Haru <haru@dotalux.com>
2013-09-27Renamed iStatus interface to statusHaru1-79/+80
Signed-off-by: Haru <haru@dotalux.com>
2013-09-26Renamed variables that would conflict with a rename of iMap to mapHaru1-25/+24
Note to plugin developers: if you were importing the "map", you'll need to change it to "maplist" Signed-off-by: Haru <haru@dotalux.com>
2013-09-25Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-2/+2
Conflicts: src/map/chrif.c src/map/clif.c src/map/homunculus.c src/map/pet.c src/map/script.c src/map/skill.c src/map/status.c All clear.
2013-09-25Renamed iTimer interface to timer.shennetsind1-58/+58
Also removed duplicate mentions of timer within calls to shorten.
2013-09-25Renamed iDuel interface to duelHaru1-2/+2
- Note to plugin developers: change your GET_SYMBOL("iDuel") to GET_SYMBOL("duel"). Signed-off-by: Haru <haru@dotalux.com>
2013-09-17HPM: Battleground.c Interfaceshennetsind1-1/+1
Fully Integrated. Closes #97 Signed-off-by: shennetsind <ind@henn.et>
2013-09-16HPM: Path.c Interfaceshennetsind1-10/+10
Fully Integrated Signed-off-by: shennetsind <ind@henn.et>
2013-09-16HPM: Pet.c Interfaceshennetsind1-9/+9
Fully Integrated. Signed-off-by: shennetsind <ind@henn.et>
2013-09-16HPM: Npc.c Interfaceshennetsind1-10/+10
Fully Interfaced. Special Thanks to Haruna Signed-off-by: shennetsind <ind@henn.et>
2013-09-16HPM: Unit.c Interfaceshennetsind1-152/+204
Fully Interfaced Signed-off-by: shennetsind <ind@henn.et>
2013-09-16HPM: Mob.c Interfaceshennetsind1-13/+13
Fully Interfaced Signed-off-by: shennetsind <ind@henn.et>
2013-08-26Fixed Bug#7584malufett1-0/+7
-Where HW_SOULDRAIN should work only in single target. Fixed Bug#7670 -Where PA_GOSPEL is not working properly. Fixed Bug#7668 -Bonus 'bLongAtkRate' is not working properly. Fixed Bug#7512 -Bonus 'bCritAtkRate' is not working properly. Fixed Bug#7515 -Fixed MO_EXTREMITYFIST animation. -Fixed RE armor/weapon storage tab positioning. -Fixed HW_MAGICPOWER cast time. -Fixed '/item' '/monster' aegis command where it not working properly in some item names or monsters. -Added NC_DISJOINT cast time hidden modifier. -Updated RE ATK for post damage modifier. Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2013-08-22Fixed Bug #7652shennetsind1-1/+1
damage storage has been changed from int32 to int64 within areas where it could otherwise modified beyond the limit and get screwed up, this solves all related problems within any skills, not only asura. http://hercules.ws/board/tracker/issue-7652-asura-strike-overdamage/ Signed-off-by: shennetsind <ind@henn.et>
2013-08-08HPM Updateshennetsind1-0/+11
- Custom Packet Support - Custom Data Struct Support (currently append-able to map_session_data and socket_data) - Char Server Support - Login Server Support http://hercules.ws/board/topic/1934-hercules-plugin-manager-update/ Documentation will soon be updated in http://hercules.ws/wiki/HPM Signed-off-by: shennetsind <ind@henn.et>
2013-07-29Fixed Bug #7597 / Follow up b7171479a47490ff80bf04849f763158d6d96facshennetsind1-1/+1
http://hercules.ws/board/tracker/issue-7597-server-crash/ Signed-off-by: shennetsind <ind@henn.et>
2013-07-29Added mercenary interfaceSusu1-4/+4
2013-07-29Added intif interfaceSusu1-5/+5
2013-07-29Added elemental interfaceSusu1-4/+4
2013-07-29Added iDuel interface (duel.c)Susu1-2/+2
2013-07-29Added chat interfaceSusu1-1/+1
2013-07-26Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-5/+7
2013-07-25Expanding script.c interfaceshennetsind1-1/+1
Hercules Renewal Phase One. Signed-off-by: shennetsind <ind@henn.et>
2013-07-23Pathfinding code cleanup.Piotr Hałaczkiewicz1-5/+7
Now uses binary heap defined in `db.h`. Walk requests now use A* (hard) pathfinding only to match game client behavior. Added defines for movement cost. Added some documentation & comments.
2013-07-21Fixed various unit* script commands to work with NPCs (issue #7548)Haru1-2/+24
http://hercules.ws/board/tracker/issue-7548-unitwalk-do-not-work/ Follow-up to 20bdc01. Thanks to Ind for his support and suggestions. Signed-off-by: Haru <haru@dotalux.com>
2013-07-08Fixed Bug #7492shennetsind1-5/+6
Special Thanks to Poison, Takkun. http://hercules.ws/board/tracker/issue-7492-checkidle-on-attack/ Signed-off-by: shennetsind <ind@henn.et>
2013-07-07Fixed Bug#6503malufett1-0/+4
-where SR_GENTLETOUCH_REVITALIZE is not working properly. Fixed Bug#6547 & Bug#6141 -SC_BLOODYLUST should now work properly like as official behavior. Fixed Bug#7395 -SO_SPELLFIST should now work properly. Fixed Bug#7477 -removed hidden walkdaley that makes character stop when hit even if SC_ENDURE is active. Fixed Bug#7475 -fixed error message in SA_AUTOSPELL when cancel button is pressed. Fixed Bug#7337 -MG_CHANGECART should now work properly. Fixed Bug#7474 -SC_MAELSTROM should now work properly like as official behavior.
2013-07-04- Added interface iStatus (needed to renamed it because A LOT of variables ↵Susu1-30/+30
are already called 'status')
2013-06-28Fixed Bug#6991malufett1-1/+1
-Where cardfix is not working properly. Thanks Kyeme Renewal Update: -updated/completed mastery fix damage factor(skills and sc). -initial implementation for new NPC skills (note: not yet functional dbs not yet updated).
2013-06-20Hercules Renewal Phase One: storage.cshennetsind1-2/+2
2 new interfaces: - storage - gstorage http://hercules.ws/board/topic/237-hercules-renewal/ Signed-off-by: shennetsind <ind@henn.et>
2013-06-15- HPM: Added trade interface;Matheus Macabu1-1/+1
- Moved PARTY_RECRUIT definition to mmo.h to avoid segfault; - Check if item is already at maximum refine; - Fixed that @reloadscript with one npc bug (thanks to akinari). Signed-off-by: Matheus Macabu <mkbu95@gmail.com>
2013-06-14Finalizing fix for #7339.Matheus Macabu1-1/+1
Also added proper support for party booking on 2012-04-10Ragexe (thanks to bgamez23). Signed-off-by: Matheus Macabu <mkbu95@gmail.com>