summaryrefslogtreecommitdiff
path: root/src/map/pc.h
AgeCommit message (Collapse)AuthorFilesLines
2013-12-15Replaced pc->pc_has_permission/can_give_items/can_give_bound_items with ↵shennetsind1-1/+4
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-1/+2
Because 2 jumps to get a single value is just awful. Signed-off-by: shennetsind <ind@henn.et>
2013-12-11Corrected some local 'mapindex' variables shadowing the global oneHaru1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2013-12-06HPM: mapindex interfaceshennetsind1-1/+1
Signed-off-by: shennetsind <ind@henn.et>
2013-12-03Questlog fixesHaru1-6/+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-29Minor improvementshennetsind1-0/+1
pc_checkitem is now triggered by @reloaditemdb to ensure modified conditions are respected, also a performance boost that causes the itemlist/cartlist/storagelist/gstoragelist lookups to only be triggered on demand instead of on every teleport. Closes #219 Fixed ancient monster ai bug that caused mobs to consider themselves elegible targets, which would waste status_check_skilluse and battle_check_target calls. Signed-off-by: shennetsind <ind@henn.et>
2013-11-19Sanitized and improved several macros through the codeHaru1-15/+15
- 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-15Official expiration timer supportshennetsind1-0/+11
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-07Further item bind adjustmentsshennetsind1-1/+1
Thanks to Haruna! Signed-off-by: shennetsind <ind@henn.et>
2013-11-07Item Bound Fixes/Adjustments/Improvementsshennetsind1-3/+2
Special Thanks to Haruna Signed-off-by: shennetsind <ind@henn.et>
2013-11-06Merge remote-tracking branch 'origin/master'shennetsind1-1/+6
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-05Introducing the Hercules Standalone Script Syntax CheckerHaru1-1/+1
- 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-04Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-0/+1
2013-11-04pc_groups interfacedshennetsind1-1/+1
The last file without a interface is now no more (date.h doesn't count :P). Modified the way permissions are stored in order to enable plugins to be able to create permissions ( pcg->add_permission("name") [returns permission key] ). Special Thanks to Haruna! Closes #121 Signed-off-by: shennetsind <ind@henn.et>
2013-11-03Merged Pull Request #195 (@autoloottype)Haru1-0/+1
- Small tweaks to the command, fixed merge conflicts Signed-off-by: Haru <haru@dotalux.com>
2013-11-02Fixed Shadow System Bonusesshennetsind1-1/+1
Item in shadow slots are now able to give bonuses properly, thanks to rosfus for pointing it out! Also added the missing constants for script handling. Signed-off-by: shennetsind <ind@henn.et>
2013-10-31No error after compilation, but when logging in at map server it will crash.sevenzz231-1/+6
Im pretty sure its on the clif.c Signed-off-by: sevenzz23 <sevenzz23@yahoo.com>
2013-10-30Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-1/+1
2013-10-30Official Font Supportshennetsind1-1/+0
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-31Several Changes to autoloottype command.Dastgir Pojee1-1/+0
2013-10-30Follow-up to baef78f7954fa4e6fa2449f2c7de92a901c7f5f3Haru1-1/+1
- Corrected an issue with ammunitions not being detected correctly, making all ammo-dependent skills fail. - Credits to Ind, special thanks to Yommy Signed-off-by: Haru <haru@dotalux.com>
2013-10-27Fixed Bug #7418shennetsind1-0/+3
Item rentals now take place after status changes arrive, guaranteeing that items that expired cancel their effects properly. Thanks to kyeme, malufett. http://hercules.ws/board/tracker/issue-7418-setmount-boarding-hatler/ Signed-off-by: shennetsind <ind@henn.et>
2013-10-27Performance Improvement: hpmetershennetsind1-1/+2
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-27Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-27/+27
2013-10-27Shadows System Baseshennetsind1-15/+28
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-27/+27
- 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-20Bug:7723 and Skill Cooldownsshennetsind1-1/+1
Fixed 7723, skill cooldowns are no longer have concurrent duplicates, when adding cooldown for a skill already in cooldown the timer is modified instead. http://hercules.ws/board/tracker/issue-7723-skill-blockpc-end-error Special Thanks to Haru, Wend and Beret. Also fixed skill cooldown duration/total display for characters that relog with a skill cooldown on clients 20120604 or higher Signed-off-by: shennetsind <ind@henn.et>
2013-10-18Since our neighbours added it, we too wanted this feature. ↵Dastgir Pojee1-0/+2
Topic:http://hercules.ws/board/topic/2540-add-rathena-new-aloot-type/
2013-10-10Introducing Bank Supportshennetsind1-0/+3
http://hercules.ws/board/topic/2455-introducing-bank-support/ Thanks to Yommy, Haru! Signed-off-by: shennetsind <ind@henn.et>
2013-10-04HPM: Hooking!shennetsind1-4/+0
http://hercules.ws/board/topic/2399-hpm-hooking-now-available/ Signed-off-by: shennetsind <ind@henn.et>
2013-09-29HPM: Status.c Completedshennetsind1-50/+0
Fully Interfaced. Moved missing vars and declarations of interest into the interface. Removed a couple things from pc.h into mmo.h due to circular dependence. Signed-off-by: shennetsind <ind@henn.et>
2013-09-28HPM: pc.c Completedshennetsind1-73/+121
Moved missing vars and declarations of interest into the interface. Signed-off-by: shennetsind <ind@henn.et>
2013-09-28Merge pull request #161 from shenhuyong/mastershennetsind1-2/+3
Added full support for the Rebellion.
2013-09-27Added full support for the Rebellion.shenhuyong1-2/+3
Credits to 3ceam2 for the base,Thanks to Rytech. -The skill still needs to be completed, as well as support for higher base stats. -Bonus stats are set to temporarily values until the official ones are known. -Updated the item_db.txt file with information on the Rebellion's job equip mask. -Added packets and packet keys for 2013-08-07Ragexe with the info provided by Shakto,Thanks to Shakto. -A 2013-08-07Ragexe client or higher is required for this job to be properly playable.
2013-09-27Renamed iStatus interface to statusHaru1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2013-09-25Renamed more forgotten variables during interface conversionsHaru1-2/+2
(related: b9c8f57) Most renames are trivial (just to avoid shadowing global variables, even if they currently did no harm), but there were some cases of partly renamed variables that caused some NULL checks to always pass and who knows what could have been happened when they were too subtle to make the application crash. Also corrected some potentially unsafe macro definitions Signed-off-by: Haru <haru@dotalux.com>
2013-09-16HPM: Unit.c Interfaceshennetsind1-2/+2
Fully Interfaced Signed-off-by: shennetsind <ind@henn.et>
2013-09-09Fixed Bug #6626shennetsind1-0/+1
Game client is currently broken on this feature, sending the request when the criteria doesn't match and not doing anything when it matches, I've restored the previous method to make the feature work once again, the message is configurable by conf/messages.conf and whether maxed characters can use it now a setting in conf/battle/player.conf http://hercules.ws/board/tracker/issue-6626-cant-prayer-guardian-angel-super-novice/ Signed-off-by: shennetsind <ind@henn.et>
2013-08-14Fix for Bug #7471shennetsind1-0/+5
HELLO WORLD. DADDY IS BACK. Fixed ancient pc_calc_skillpoint bug that'd count guild skills towards the player's total. Special Thanks to malufett and the countless who provided us with debug information on this issue. This commit implements a temporary command @skdebug, in case there are people still reproducing the issue please include the output of this command in your new report, it displays the information required for us to adjust any possible oddities. http://hercules.ws/board/tracker/issue-7471-skill-points-not-evenly-distributed-anymore/ Signed-off-by: shennetsind <ind@henn.et>
2013-08-08HPM Updateshennetsind1-0/+3
- 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-08-01Improved packet obfuscation reliabilityHaru1-1/+2
- Fixes bugreport:7607 http://hercules.ws/board/tracker/issue-7607-changing-emblem-with-packet-obfuscation-2-unknown-packet/ - Resolved unintended disconnections caused by invalid packets when obfuscation is enabled and a fragmented packet is received. - Improved packet parsing reliability when packet obfuscation is set to optional. Special thanks to serverkid for reporting the issue and Ind for figuring out the cause and suggesting a solution. Signed-off-by: Haru <haru@dotalux.com>
2013-07-31Fixed Bug #7453shennetsind1-1/+1
Added the missing support for conf/battle/gm.conf::atcommand_mobinfo_type on @mobinfo (partially from rathena) Modified @ii to stop always displaying 'monsters dont drop this item' while the configuration is on. Special Thanks to Napster. http://hercules.ws/board/tracker/issue-7453-mobinfo-iteminfo-not-showing-the-correct-information-depending-the-level/ Follow up 2fbec282b9b3eb84f710d5537f70e6bc221187b3 Missing messages.conf entry Signed-off-by: shennetsind <ind@henn.et>
2013-07-29Permission cache overhaulPiotr Hałaczkiewicz1-10/+14
* Reworked group permission caching in session data (follow-up to cd45c30ab2dcc44bfbfac283d15bb09b3d4644bc) * Removed duplicated information from session data in favor of direct pointer to group settings. * Added getters for all group data required to process permissions and related stuff. * Added new functions to PC interface and updated calls everywhere. * Extracted function to set new group for a player (used at login, group config reload, manual adjustment of group). * Moved command permission config parsing to atcommand module. * Improved dummy map session handling. * Since it's required for all map sessions to have a valid group, dummy sessions are now created by a designated function. * Updated related code that uses dummy sessions (console `gm use` and script `atcommand`, `useatcmd`). * Various minor improvements and cleanups. * Eliminated some global variables related to loading atcommand permissions for group by passing them directly to function. * Moved definition of global array holding PC permission names from header file to source file. * Streamlined destuction of atcommands database to use DBApply helper function instead of DBIterator. * Replaced hardcoded position of console dummy session with defines from mapindex.h (thx Haruna for pointing it out). * Removed fixed length restriction on group names.
2013-07-26Follow up 144a9d0843dfe47e0b58c8857762f58ae70543c8shennetsind1-0/+1
It will no longer block the equipping of items, instead it will delay (if applicable) the item's effect until it is no longer capable of affecting the skills under the timer. Special Thanks to kyeme for the information. Signed-off-by: shennetsind <ind@henn.et>
2013-07-18Fixed guild aura not going away on guild-break/expellshennetsind1-1/+1
Also modified sd->state.gmaster_flag from struct to a 'unsigned int : 1;' flag as sd->guild already stores the pointer and was thus a duplicate. Special Thanks to Haru, Xgear Signed-off-by: shennetsind <ind@henn.et>
2013-07-17Added missing initialization of some functions in the homunculus interfaceHaru1-1/+1
- Fixes issue #7536 (thanks to jTynne for the report) http://hercules.ws/board/tracker/issue-7536-map-crash-july-15th/ - Minor corrections to the other interfaces as well (reordered initialization to follow the definitions, removed duplicate entry in the skill interface initialization, commented out some unused entries) Signed-off-by: Haru <haru@dotalux.com>
2013-07-11Fixed Bug#7498malufett1-2/+1
-Where RE equip atk doesn't properly update status window and negative equip atk should now affect atk. Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2013-07-07Fixed Bug#6503malufett1-1/+0
-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-05Fixed Bug #7307shennetsind1-0/+2
http://hercules.ws/board/tracker/issue-7307-status-weapon-switch/ Special Thanks to kyeme, Beret. Signed-off-by: shennetsind <ind@henn.et>
2013-07-04- Added interface iStatus (needed to renamed it because A LOT of variables ↵Susu1-1/+1
are already called 'status')