summaryrefslogtreecommitdiff
path: root/src/map/clif.c
AgeCommit message (Collapse)AuthorFilesLines
2013-12-15Replaced pc->pc_has_permission/can_give_items/can_give_bound_items with ↵shennetsind1-12/+12
equivalent macros Because 2/3 jumps to perform such a operation is just awful Signed-off-by: shennetsind <ind@henn.et>
2013-12-14Replaced pc->get_group_level with a macro (pc_get_group_level)shennetsind1-11/+11
Because 2 jumps to get a single value is just awful. Signed-off-by: shennetsind <ind@henn.et>
2013-12-17Fixed several compiler warningsHaru1-42/+53
- 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-10Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-0/+1
2013-12-09Fixed some logic errorsshennetsind1-1/+3
Special Thanks to Haru Signed-off-by: shennetsind <ind@henn.et>
2013-12-09Fixed a crash when casting GN_SPORE_EXPLOSION on certain systems.Haru1-0/+1
- Follow-up to 44c33fda3614d588e6bf6cee1cf884e98f1531f0. - Also fixed some incorrect va_end calls that came up while debugging. - Special thanks to Ind for his help debugging the problem. Signed-off-by: Haru <haru@dotalux.com>
2013-12-06HPM: mapindex interfaceshennetsind1-11/+11
Signed-off-by: shennetsind <ind@henn.et>
2013-12-04Follow-up to 6e9c385b8fa2fbca97ca23e35f0b8e5dabd13526Haru1-2/+12
- Case-sensitive AegisName and Sprite ID lookups are now optional, controlled by the case_sensitive_aegisnames battle config flag (you can set it to "no" to restore the case insensitive behavior.) - Special thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2013-12-04Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-32/+27
2013-12-03Questlog fixesHaru1-32/+27
- 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-12-03Fixed Bug 7542shennetsind1-0/+5
replaced pc_isuseitem 90overweight error message by its official version, added invent-full check for when trying to open packages/boxes, and modified mail getAttachment to fail when over 90% weight. Special Thanks to kyeme. http://hercules.ws/board/tracker/issue-7542-bug-when-weight-90/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-30Minor adjustmentsshennetsind1-1/+5
- improved @makehomun -1 so that if the homun data hasnt been loaded it is requested. - instances of private types (party/guild/char) no longer create channels, however global types still does (IOT_NONE). - Fixed an issue with party/guild instance data not being freed when either is destroyed (Special Thanks to Yommy). Signed-off-by: shennetsind <ind@henn.et>
2013-11-28Follow up fdb6de1aa34086fd4d22ae127437727f556cea3cshennetsind1-58/+139
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-27Fixed Bug 7858shennetsind1-0/+16
Official item drop announce support, currently hardcoded list -- we'll be following up shortly with a decent way of storing it. Special Thanks to Yommy, Beret, kyeme. http://hercules.ws/board/tracker/issue-7858-monster-rare-drop-announcement/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-26Fixed Bug 7838 (addendum)shennetsind1-1/+1
mon_trans_disable_in_gvg: yes no longer displays the error message repeatedly to no purpose. Special Thanks to kyeme http://hercules.ws/board/tracker/issue-7838-wrong-message/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-26Fixed Bug 7855shennetsind1-2/+2
Follow up 61841e7861f63d98ecb417e2bf17135970b79c5a http://hercules.ws/board/tracker/issue-7855-error-compiling-vb-2013/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-25Fixed getareachar_skillunit v4 and minor cleanupshennetsind1-108/+57
Special thanks to Rytech for pointing it out, updated to match latest data (Thanks to Yommy) and some minor cleanup Signed-off-by: shennetsind <ind@henn.et>
2013-11-25Fixed Bug 7764shennetsind1-0/+1
Server now (virtually) enforces character to be facing north upon teleporting, fixes issues such as when you're facing left, teleports, uses high jump, and still goes left even though client makes it look like you're facing north. Special Thanks to kyeme. http://hercules.ws/board/tracker/issue-7764-warp-facing/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-19Sanitized and improved several macros through the codeHaru1-2/+2
- Sanitized all potentially unsafe macros (related eA:15259) - Improved some function-like macros to evaluate their argument only once and keep it in a temporary variable. This improves performance in the damage calculation related code. Signed-off-by: Haru <haru@dotalux.com>
2013-11-18Merge pull request #224 from datmumbles/size_changesshennetsind1-8/+8
Corrected size-related constant names (closes #222).
2013-11-18Fixed the erroneously redirected GM Full Strip Packetshennetsind1-0/+17
Implemented in 2009-10-27, the packet was being redirected to a account name req packet, while it was a entirely different feature. this fixes the (GM-Suit) 'right click' option 'remove all equipment'. Special Thanks to Yommy. Signed-off-by: shennetsind <ind@henn.et>
2013-11-18Corrected size-related constant names and cleaned up comments (closes #222).Mumbles1-8/+8
2013-11-17Added emblem blank pixels checkHaru1-10/+112
- Made possible thanks to (and using base code by) Ai4rei - eAthena r15263 and add-on patch http://hercules.ws/board/topic/2974-add-on-patch-for-ea-r15263-commit/ - Modified to allow checking for a percentage of transparent pixels rather than full image transparency. - Tweaked to accept some other bmp formats that are currently allowed by the client. - The performance hit from enabling this check is negligible (benchmarks show that scanning an emblem requires about half the time required to decompress it after it's received), but it does exist, as noted in the configuration file. - Special thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2013-11-16Introducing Character Ban Support.shennetsind1-0/+32
@charban/@charunban, can temporarily block any accounts as opposed to the usual account-wide block. Special Thanks to Haruna, Yommy! Signed-off-by: shennetsind <ind@henn.et>
2013-11-15Official expiration timer supportshennetsind1-1/+1
As brought up in http://hercules.ws/board/topic/2225-paid-server/ Special Thanks to Haruna for all the help! Thanks to Beret, Ai4rei for information Signed-off-by: shennetsind <ind@henn.et>
2013-11-15Official Item BindOnEquip Supportshennetsind1-3/+13
Implements the 'BindOnEquip' item db field which determines whether the piece of equipment should bind to the character upon being equipped. When a character tries to equip such a item for the first time a dialog shows up asking the character to confirm whether to equip the item or not, and notifying the character that by equipping the item it will become bound to the character, and therefore unable to be used by another character. Special Thanks to Beret for all the information, Haruna for testing. Signed-off-by: shennetsind <ind@henn.et>
2013-11-08Fixed Bug 7807shennetsind1-11/+11
NPC Duplicates with xs/ys weren't being properly loaded, Special Thanks to Haruna. Also fixes an issue with the instance empty timer. http://hercules.ws/board/tracker/issue-7807-endless-tower/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-07Further item bind adjustmentsshennetsind1-3/+3
Thanks to Haruna! Signed-off-by: shennetsind <ind@henn.et>
2013-11-07Item Bound Fixes/Adjustments/Improvementsshennetsind1-13/+20
Special Thanks to Haruna Signed-off-by: shennetsind <ind@henn.et>
2013-11-06Merge remote-tracking branch 'origin/master'shennetsind1-10/+16
Signed-off-by: shennetsind <ind@henn.et> Conflicts: conf/messages.conf src/common/mmo.h src/map/pc_groups.c src/map/pc_groups.h
2013-11-06Merge remote-tracking branch 'upstream/master'shennetsind1-5/+8
Signed-off-by: shennetsind <ind@henn.et> Conflicts: src/map/pc.c
2013-11-06Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-1/+4
2013-11-06Merge pull request #217 from HerculesWS/script-checkershennetsind1-1/+4
Introducing the Hercules Standalone Script Syntax Checker
2013-11-06BG Queue Updateshennetsind1-3/+3
Enabled Party/Guild joining methods, Implements first attempt at the splitting algorithm (Thanks to jaBote!) Checks item 1 on issue #69 Help us test! -- http://hercules.ws/board/topic/1302-bg-queue-debug/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-06Modified status_calc_shennetsind1-1/+1
Replaces the previous 'first' flag with a multi-option flag capable of selectively determining calls where the recalculation must not be hold by delayed damage, and therefore must take place immediately. This fixes issues caused by actions that require immediate recalculation e.g. on-level-up max_hp update, also modified @baselevel where status_calc was being called after the heal and not before, causing it not to be fully healed. Special Thanks to Haruna! <3 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-02Merge remote-tracking branch 'upstream/master'shennetsind1-5/+5
Signed-off-by: shennetsind <ind@henn.et> Conflicts: sql-files/main.sql sql-files/upgrades/index.txt src/common/mmo.h
2013-10-31No error after compilation, but when logging in at map server it will crash.sevenzz231-10/+16
Im pretty sure its on the clif.c Signed-off-by: sevenzz23 <sevenzz23@yahoo.com>
2013-10-30Official Font Supportshennetsind1-5/+5
Fonts are now relog-persistent. Font items are now toggle-on/off, they no longer go away on use, they go away when their rental duration is over (and the font effect goes back to original). Special Thanks to Yommy for all the data! Signed-off-by: shennetsind <ind@henn.et>
2013-10-30Account-wide Exp/Drop/Death Modifiersshennetsind1-0/+15
Attempting to mimic the official as suggested in http://hercules.ws/board/topic/250-official-vip-system/ The variables can be read and modified thru scripting as well as sql, the patch introduces 3 new pc-arams 'ModExp','ModDrop' and 'ModDeath' for that purpose. The OnLogin modifier display is not the real deal though -- wasn't able to get it to output properly (though that might have been my client files failt) Up for review. Signed-off-by: shennetsind <ind@henn.et>
2013-10-29Fixed Bug #7788shennetsind1-26/+35
Modified Storage packet so that the size of the packet is no longer a problem; splitting now in chunks of 500, made possible thanks to Yommy! http://hercules.ws/board/tracker/issue-7788-storage-problem/ Signed-off-by: shennetsind <ind@henn.et>
2013-10-28Fixed Bug #7788shennetsind1-3/+3
http://hercules.ws/board/tracker/issue-7788-storage-problem/ Credits to Haruna! Signed-off-by: shennetsind <ind@henn.et>
2013-10-27Fixed Ancient Invisible Bugshennetsind1-8/+26
The movement of invisible units is no longer sent to the game clients of foes, therefore cheat tools that'd display hidden units, without requiring maya p, will no longer function. Special Thanks to hemagx, Haruna. Signed-off-by: shennetsind <ind@henn.et>
2013-10-27Performance Improvement: hpmetershennetsind1-1/+8
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-27Fixed instance empty timershennetsind1-4/+4
counter val could go off making the empty timer not to be run. Signed-off-by: shennetsind <ind@henn.et>
2013-10-27Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-41/+49
2013-10-27Shadows System Baseshennetsind1-369/+245
http://hercules.ws/board/topic/581-implement-the-shadows-system/ Special Thanks to Yommy for all the client data, Haru for making it possible to get it out and rosfus for the details on the feature. Shadows Feature requires packetver 20120925 or newer. ---------- Also: Updated all packets related to the shadows system, improved memory/processing of inventory/cart/storage/viewequip packets Signed-off-by: shennetsind <ind@henn.et>
2013-10-26Changed 'tick' variables to 64 bitHaru1-40/+32
- 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-25Merge pull request #202 from kisuka/mastershennetsind1-1/+17
Quest Bubbles (Actually Works Finally)
2013-10-25nocashshop mapflagshennetsind1-0/+11
As requested by the community in http://hercules.ws/board/topic/1477-mapflag-for-cash-shop/ and http://hercules.ws/board/topic/1476-disable-cashshop-in-pvp-woe/ 'nocashshop' mapflag disables the usage of the cashshop button as well as any attempts to purchase (in case the flag is turned on after someone gets the shop open). Signed-off-by: shennetsind <ind@henn.et>