summaryrefslogtreecommitdiff
path: root/src/common
AgeCommit message (Collapse)AuthorFilesLines
2013-11-05Introducing the Hercules Standalone Script Syntax CheckerHaru3-8/+26
- 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-03Added some packetver-related flags to the UNIX build scriptHaru1-7/+7
- The --disable-packetver-re (or --enable-packetver-re=no) flag prevents the definition of PACKETVER_RE (without editing mmo.h) - The --with-key1=, --with-key2=, --with-key3= flags override the encryption key defined by the current packetver. All three flags are required if at least one is used, or they'll be ignored. - These options are mostly useful for buildbots, developers who often use git bisect, or users who want to minimize their diffs and still want to override those settings. - (unrelated minor tweak) Silenced an unnecessarily verbose STDERR message caused by the $CC shipped with clang-5 during the MinGW check.
2013-11-02Fixed Bug #7786shennetsind1-1/+1
@speed no longer screws up on map change, modified @speed feedback so its clear whether the permanent speed flag is gone, enhanced @speed by making it capable of bypassing battle_config.max_walk_speed, made status_calc_speed rely on MIN_WALK_SPEED instead of the hardcoded 0, modified MIN_WALK_SPEED from 0 to 20 (it 1) wasnt being respected and 2) less than 20 clips). @speed is now capable of moving the character faster, prior to this commit @speed 0 was equivalent to @speed 50 of this new version, @speed 20 for example is now the new maximum (and moves much faster). http://hercules.ws/board/tracker/issue-7786-speed-bug-when-changing-maps/ Thanks to Mumbles for all the info Signed-off-by: shennetsind <ind@henn.et>
2013-10-30Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-4/+4
2013-10-30Official Font Supportshennetsind1-0/+2
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-30Follow-up to 44c33fda3614d588e6bf6cee1cf884e98f1531f0Haru1-4/+4
Corrected some leftover 32bit typecasts. Special thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2013-10-27Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind8-48/+85
2013-10-27Shadows System Baseshennetsind1-1/+9
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 bitHaru8-48/+85
- 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-19Instance Dungeons Updateshennetsind1-1/+1
As requested by the community in http://hercules.ws/board/topic/1702-implement-rathena-npc/ we're merging in the latest of rAthena's dungeons, this includes the rewriting of all instance dungeons and the addition of 4 dungeons that were not present previously (BakonawaLake, BangungotHospital, BuwayaCave and OldGlastHeim). Update also includes the ability for instances to reset (or be destroyed if instance files were disabled/removed) upon @reloadscript, instance scripts are able to control to what stage the instances are to be reset via the instance_set_respawn (reload spawn) script command, OnInstanceInit labels are now triggered when the instance starts via instance_init (and upon reload), they may be used alongside instance variables (which are persistent to @reloadscript) to save players' progress. - NPC Changelog: -- npc/instances/EndlessTower.txt --- 2.2 Instance system rewrite. [Euphy] --- 2.3 Added some missing announcements. [Euphy] --- 2.4 Added GM management function. [Euphy] -- npc/instances/NydhoggsNest.txt --- 1.5 Instance system rewrite. [Euphy] --- 1.6 Added GM management NPCs. [Euphy] -- npc/instances/OrcsMemory.txt --- 1.7 Instance system rewrite. [Euphy] -- npc/instances/SealedShrine.txt --- 2.3 Instance system rewrite. [Euphy] -- npc/other/gm_npcs.txt --- 1.0 First version. [Euphy] -- npc/re/instances/BakonawaLake.txt --- 1.0 First version. [Euphy] --- 1.1 Added GM management NPC. [Euphy] -- npc/re/instances/BangungotHospital.txt --- 1.0 First version. [Euphy] --- 1.1 Added GM management function. [Euphy] -- npc/re/instances/BuwayaCave.txt --- 1.0 First version. [Euphy] -- npc/re/instances/HazyForest.txt --- 1.1 Instance system rewrite. [Euphy] -- npc/re/instances/MalangdoCulvert.txt --- 1.0b Fixed incorrect use of 'close'. [Joseph] --- 1.1 Instance system rewrite. [Euphy] -- npc/re/instances/OctopusCave.txt --- 1.1 Instance system rewrite. [Euphy] -- npc/re/instances/OldGlastHeim.txt --- 1.0 First version. [Euphy] Special Thanks to Haru, Uziel for their contributions to this update, and ossi0110 for helping us debug it. Signed-off-by: shennetsind <ind@henn.et>
2013-10-18Minor HPM Updateshennetsind1-0/+3
Attempting to hook to a unknown hooking point will now display a message. Added support for item bonuses Check https://github.com/HerculesWS/StaffPlugins/tree/master/shennetsind/bCoolDownRate for a demonstration. Signed-off-by: shennetsind <ind@henn.et>
2013-10-10Introducing Bank Supportshennetsind1-0/+5
http://hercules.ws/board/topic/2455-introducing-bank-support/ Thanks to Yommy, Haru! Signed-off-by: shennetsind <ind@henn.et>
2013-10-05Added 'buildclean' target to all makefilesHaru1-7/+10
- By invoking 'make buildclean', you can clean up all the build intermediate (object) files, without deleting any of the built executables and plugins. - To delete everything, use 'make clean', as you've always done. Signed-off-by: Haru <haru@dotalux.com>
2013-10-04HPM: Hooking!shennetsind3-35/+106
http://hercules.ws/board/topic/2399-hpm-hooking-now-available/ Signed-off-by: shennetsind <ind@henn.et>
2013-09-30Hey Look, I must be lucky today, a penny.shennetsind1-2/+1
Er. I mean, a decade-old unused member in one of the most busy core section -- timers. Signed-off-by: shennetsind <ind@henn.et>
2013-09-29HPM: Status.c Completedshennetsind1-0/+51
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-29Provided argument-list equivalent for several variadic functionsHaru2-12/+19
This is necessary for the upcoming HPM hooking system
2013-09-27Added full support for the Rebellion.shenhuyong1-0/+1
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-25Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind8-75/+94
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.shennetsind9-42/+44
Also removed duplicate mentions of timer within calls to shorten.
2013-09-25Renamed more forgotten variables during interface conversionsHaru5-33/+33
(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-21Added Makefile.in change detection (and auto-rebuild) capabilitiesHaru1-6/+9
- If a Makefile.in is changed, ./config.status (or ./configure in case it's not available) will be automatically run to update the Makefiles. - Special thanks to Yommy for the idea. Signed-off-by: Haru <haru@dotalux.com>
2013-09-19Cleaned up and de-duplicated ranklist-related codeHaru1-0/+7
Follow-up to 6cf032d. Special thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2013-09-19Fixed a startup crash due to minicore/regular core mismatchesHaru1-7/+15
- Follow-up to / discovered in babdf60 Signed-off-by: Haru <haru@dotalux.com>
2013-09-18Fixed a race condition leading to a crash on server shutdown on linuxHaru1-9/+5
Fixes bugreport:7699, thanks to bgamez23 (bugreport), Ind (testing, brainstorming) http://hercules.ws/board/tracker/issue-7699-map-crashed-on-the-latest-version/ Signed-off-by: Haru <haru@dotalux.com>
2013-09-18Makefiles improvements and cleanupHaru1-30/+35
This should resolve #138 (please reopen or comment on it if it's not the case). Special thanks to Takkun for helping to reproduce the issue. Signed-off-by: Haru <haru@dotalux.com>
2013-09-06Added HCache key #defineshennetsind2-2/+6
As Proposed by Gepard Closes #63 Signed-off-by: shennetsind <ind@henn.et>
2013-09-03Fixed several packet errors with pre-renewal clients from 2006-2008Haru1-2/+4
Thanks to Beret for reporting the issues, Ind for his great help with research, suggestions and the necessary tools to fix this. Signed-off-by: Haru <haru@dotalux.com>
2013-08-30Changed dlopen to use RTLD_DEEPBIND where availableHaru1-3/+7
- Fixes bugreport:7680 http://hercules.ws/board/tracker/issue-7680-hpm-is-broken/ Signed-off-by: Haru <haru@dotalux.com>
2013-08-26Merged strtoll MSVC fix from Ind's ScriptEngineUpdateP1 branchHaru1-0/+1
Credits to Ind for the fix, thanks to Takkun for reporting it Signed-off-by: Haru <haru@dotalux.com>
2013-08-12Replaced own bool typedef with <stdbool.h> where availableHaru1-0/+12
Fixes bugreport:7645 http://hercules.ws/board/tracker/issue-7645-rev-12302-compiler-error-and-warnings-on-gcc-49 Special thanks to Takkun for VS2012 testing and info Signed-off-by: Haru <haru@dotalux.com>
2013-08-08HPM Updateshennetsind7-38/+341
- 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-07Fixed skill flagging (mostly related to SKILL_FLAG_REPLACED_LV_0 )shennetsind1-2/+4
Adjusted value as to not conflict with the perm_granted flag Special Thanks to Wildcard, malufett. Also made pc_skillup rely on the change_level_2nd/3rd vars instead of hardcoded values, and added a pc_gainexp packetver check that'd otherwise cause map server warnings when within the range. Signed-off-by: shennetsind <ind@henn.et>
2013-08-02Corrected alignment of the Hercules console logoHaru1-11/+11
- This fixes a display issue in terminal emulators that ignore the Esc[K ANSI sequence (i.e. GNU screen or tmux, with TERM=screen or TERM=screen-256color.) - In those terminal emulators, the logo background has now a fixed width of 72 characters. Signed-off-by: Haru <haru@dotalux.com>
2013-07-29Permission cache overhaulPiotr HaƂaczkiewicz4-4/+4
* 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-29Ultimate Item DB Updateshennetsind1-1/+1
http://hercules.ws/board/topic/1778-ultimate-item-db-update/ Signed-off-by: shennetsind <ind@henn.et>
2013-07-22Merge pull request #64 from piotrhalaczkiewicz/masterFlipp3-11/+18
Binary heap fix & improvement.
2013-07-22Binary heap fix & improvement.Piotr HaƂaczkiewicz3-11/+18
Fixed a bug when removing last element of binary heap (its parent would be removed instead if it had the same value). Binary heap now allows custom swapper function/macro. Added `swap_ptr` macro to swap two pointers in place (`swap` is not suitable for pointers). This allows to store pointers in binary heap.
2013-07-21Changed CC to a Makefile variableHaru1-3/+6
- This allows the user to override the compiler at each make invocation (i.e. to run scripts to generate .clang_complete for https://github.com/Rip-Rip/clang_complete ) - Updated .gitignore with a few platform-dependent entries Signed-off-by: Haru <haru@dotalux.com>
2013-07-21HCache & SQL Update Checker minor changeshennetsind1-1/+1
Files loaded by HCache now display a green C to distinguish whether it was loaded from cache or not Fixed a typo in the SQL Update Checker. Signed-off-by: shennetsind <ind@henn.et>
2013-07-14Makefile error corrections and minor tweaksHaru1-2/+2
- Fixed some variable names incorrectly entered as literals in target names - This fixes a build failure when trying to build any specific sub-project directly from src/*/ - Removed an old svn-related command from the 'import' recipe - This fixes the build failures when trying to run 'make tools' right after 'make clean' - Removed duplicate entries in the 'clean' recipe for map and login servers Signed-off-by: Haru <haru@dotalux.com>
2013-07-09Travis Report Fixesshennetsind3-9/+15
warn_unused_result shielding, dropped unused variables and fixed battle_calc_return_damage delay behavior (pointer was unchaged; resulting in the var afterwards always as 0) Special Thanks to Xgear. Signed-off-by: shennetsind <ind@henn.et>
2013-07-08Fixed compiling errors when CONSOLE_PARSE was disabledshennetsind1-1/+4
Special Thanks to quesoph for bringing this to our attention. Signed-off-by: shennetsind <ind@henn.et>
2013-07-08Cygwin Fix for the Hercules SQL Update Checkshennetsind4-4/+69
Also modified the output (i think its sightly improved), also added a console command to skip updates so no need to go add the query yourself 'sql update skip <file name>' Signed-off-by: shennetsind <ind@henn.et>
2013-07-08Fixed Bug #7493shennetsind1-2/+3
Special Thanks to quesoph http://hercules.ws/board/tracker/issue-7493-compiling-with-cygwin/ Signed-off-by: shennetsind <ind@henn.et>
2013-07-08Fixed Cygwin Problemshennetsind1-4/+5
Special Thanks to quesoph. http://hercules.ws/board/topic/1402-error-compiling-with-cygwin/ Signed-off-by: shennetsind <ind@henn.et>
2013-07-08Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind2-1/+1
2013-07-08Follow up 0118a097c9626b3f8342dd29897392f3da4c1187shennetsind1-1/+1
Special Thanks to Vader Signed-off-by: shennetsind <ind@henn.et>
2013-07-08Follow up ea5a413cdf7eec37141a7fe124cad38d66464ac4malufett2-1/+1
-where it breaks some skills & in game behaviors.
2013-07-05HCache | Item Packages Updateshennetsind4-4/+61
http://hercules.ws/board/topic/1389-hcache-item-packages-update/ Signed-off-by: shennetsind <ind@henn.et>