47 Commits

Author SHA1 Message Date
Aleos
c977558cfd
Adjusted OnTouch overlap behavior (#2382)
* Fixes #1939 and fixes #2274.
* OnTouch NPC are now able to overlap one another and properly trigger as they do on official servers.
* When entering an overlap area it should trigger both NPC.
* Walking from overlap area to either NPC should trigger neither.
* Walking from one NPC to the other (skipping the overlap area) should trigger the NPC area you enter.
* Entering an OnTouch area will no longer stop the player from walking unless a message or menu window opens (or other events that should stop the player).
* Resolves OnTouch_ overlapping issues.
* Dead players don't trigger OnTouch_ anymore.
* Hidden players don't trigger NPC clicks when OnTouch_ label is defined.
Thanks to @Tokeiburu, @Lemongrass3110, @Atemo, and @Normynator!
2019-04-03 19:25:47 -04:00
Mark Hester
a5c93b60a6 Definitions for DB Pathing (#3964)
* Added the use of DBPATH/DBIMPORT definition for guild EXP, job information, level penalties, and map cache to remove hardcoded values.
Thanks to @marky291!
2019-02-22 09:02:08 -05:00
Aleos
f235d89e76
Added item bonus bNoWalkDelay (#3906)
* Fixes #131 and fixes #2699.
* Added item bonus bNoWalkDelay to replace infinite SC_ENDURE bonus in items.
* Added a warning if INFINITE_TICK is detected in the item combo bonus.
* Included some minor cleanups and additions.
Thanks to @exneval, @c0nflicts, and @esu1214!
2019-02-05 12:23:36 -05:00
Aleos
6c86492764
Corrected a few potential crash points (#3874)
* Fixes #3872.
* Added a couple more map data validity checks on block list counting functions.
* QD Shot should no longer remove the read status.
* Dragon Trail should no longer end the Crimson Marker status.
* Some other minor optimizations/cleanups.
* Fixed a va_arg corruption
Thanks to @attackjom, @Lemongrass3110, and @teededung!
2019-01-23 20:27:41 -05:00
Lemongrass3110
7eed88c90f Fixed a server crash
Fixes #3665

Thanks to @laziem, @nubspixel, @teededung and @Badarosk0
2019-01-10 00:13:05 +01:00
Lemongrass3110
01f61cfa4f
Added support for 64bit ticks (#3768)
Fixes #3017

Thanks to Hercules for the idea and their implementation of it.

This deprecates Windows XP support. If you want to use it to run your server on it, you have to forcefully enable it now.
Since 64bit ticks do not exist on XP, you might encounter some issues that are already fixed on other OS.
2018-12-21 00:02:19 +01:00
Lemongrass3110
bff89bd70e
Fixed possible string out of bounds in configurations (#3631)
Added safestrncpy to char's inter configurations
Added safestrncpy to map's inter configurations
Added safestrncpy to message configurations
Adjusted some char configurations
Cleaned up logging configurations

Fixes #3624 

Thanks to @mrjnumber1
2018-11-29 22:56:17 +01:00
Lemongrass3110
bde580fdbd
Add drop highlighting effect feature (#3710)
Fixes #3610

Thanks to @Balferian, @admkakaroto and credits to @Asheraf
2018-11-29 22:34:57 +01:00
Lemongrass3110
c0793a8072
Adding LGTM to CI tools (#3636)
Thanks to @aleos89 for his help.
2018-10-29 21:25:36 +01:00
Jittapan Pluemsumran
84b4f09874 Added skill_duration mapflag. (#2171)
* Added skill_duration mapflag.
* This mapflag sets a skill unit time limit to n% of original duration.
* Implemented mapflags for Hunter's Traps in GVG, BG, and Novice Guild maps.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2018-10-26 08:52:49 -04:00
Cydh Ramdh
d8e760fa78
Cleanup skill_damage mapflag for skill (#3583)
* Changed from vector to unordered_map with skill_id as key
2018-10-19 08:34:29 +07:00
Lemongrass3110
55acdb9863
Initial release of the guild storage log (#3365)
Thanks to @aleos89 and @Everade
2018-10-10 17:51:49 +02:00
Cydh Ramdh
e66dc4f62e
Instance map fixes (#3539)
* Fixed #3517, new map from instance doesn't use unused map slots
* Fixed #3528, crashed on reloadscript if there is instance map
* Cleared map flags on reloadscript
2018-10-10 18:05:24 +07:00
Aleos
ae7cb65a96
Fixed a potential crash (#3439)
* Fixes #3413 and fixes #3437.
* Removed extra dynamic storage clearings.
Thanks to @ecdarreola and @mazvi!
2018-08-28 19:22:41 -04:00
aleos
5581da4bc4 Follow up to e469f5f
* Corrected map loaded message when no maps are removed.
2018-08-28 11:03:34 -04:00
Aleos
da83e61738
Corrected some map property issues (#3435)
* Resolves PvP timers and effects not displaying properly.
* Resolves any GvG effects not displaying properly.
* If PvP or GvG is disabled, stop players from attacking.
* Moved PvP timer and attack functions to appropriate locations.
* Removed redundancy from atcommands.
2018-08-27 20:28:18 -04:00
aleos
e469f5fb62 Corrected a map server notification
* Corrected the removed maps notification not displaying properly.
2018-08-27 18:22:23 -04:00
Aleos
bde33e762c
Cleaned up map data checks (#3405)
* Fixes #3398 and fixes #3402.
* Sped up pc_isUseitem, pc_setpos, and pc_dead map data checks.
Thanks to @uddevil!
2018-08-27 18:03:38 -04:00
Aleos
7730160299
Corrected a compilation error (#3423)
* Fixes #3422.
* Resolves CELL_NOSTACK having a compile error when enabled.
Thanks to @SnotraRM!
2018-08-23 09:21:02 -04:00
Atemo
3d8104d7fb
Suggestion: checkwall script command (#3393)
* Added checkwall script command
- Included the checkwall in npc folder
2018-08-14 20:58:49 +02:00
Aleos
48ae1a1e05
Cleaned up map storage type (#3384)
* Fixes #3369, fixes #3370, and fixes #3382.
* Converted maps storage container back to static array.
* Converted mapflag storage containers to unordered_map.
* Removed a lot of redundancy and recursive lookups.
* Fixed a couple short-circuit checks to help with performance.
* Fixed multiple instance creation/destruction issues.
* Fixed PK Mode attempting to set PvP on flags that are already active.
* Getting MF_RESTRICTED will return the map's zone value instead of the state.
* Converted mapflag macros to inline functions.
Thanks to @teededung, @lelouch22, @mazvi, @Lemongrass3110, and @cydh!
2018-08-10 13:52:07 -04:00
Aleos
584fcac43a Cleaned up map data storage (#3347)
Follow up to a942853.
Fixes #3336.
Moved map_data storage to std::map container.
Created map_getmapdata to obtain pointer to map_data.
Got rid of MAX_MAP_PER_SERVER define.
Resolved deletion of instances causing other instances to lose their intended map ID.
Refactored warp suggestions

Thanks to @teededung, @anacondaqq, @cydh and @Lemongrass3110!
2018-07-26 01:06:59 +02:00
Aleos
9313922656
Further cleanup to mapflags (#3332)
* Follow up to a942853.
* Removed ADJUST_SKILL_DAMAGE define so that the mapflag is always enabled.
* Cleaned up atcommand mapinfo and skill_damage mapflag interaction.
* Cleaned up atcommand mapflag to not allow setting of special mapflags that require extra arguments (Please use script command setmapflag).
* Using script command setmapflag for MF_NOSAVE will default to SavePoint.
* Using script command setmapflag for MF_PVP_NIGHTMAREDROP will default to normal official drop values.
* Exported constants for skill_damage mapflag types.
Thanks to @ecdarreola, @cydh, and @Lemongrass3110!
2018-07-23 13:40:35 -04:00
Aleos
a942853d55
Cleaned up the mapflag system (#2943)
* Created setter and getter functions.
* Adjusted all calls to use these functions.
* Converted mapflags to C++ map container.
* Converted drop_list to vector.
* Converted skill_damage ERS into vector and increased limit from UINT8 to UINT16.
* Cleaned up several functions to be more dynamic to reduce redundancy that was all over the place.
* Renamed nosumstarmiracle to nosunmoonstarmiracle.
* Adjusted skill_damage mapflag to use proper defined constants.
* Refactored map index into a vector.
Thanks to @Lemongrass3110 for a lot of help and @secretdataz!
2018-07-18 20:00:33 -04:00
Lemongrass3110
a5588dd9ab
Initial Release of Attendance Feature (#3297)
Thanks to @secretdataz and @aleos89 for their help.
Thanks to @Haikenz and @admkakaroto for testing.
Thanks to @Daegaladh for his ideas.
2018-07-16 21:39:42 +02:00
Lemongrass3110
c4d7dc76d3
Hid timer function parameters in a macro (#3311) 2018-07-15 23:17:15 +02:00
Lemongrass3110
91169d7ebc
Fixed a few compiler warnings on clang (#3263)
Mostly pointer-bool-conversion and autological-pointer-compare
2018-07-05 22:53:20 +02:00
Aleos
11b42569fc
Synchronized source file headers (#3212)
* Alphabetically sorted includes.
* Updated copyright and license text to match across all files.
* Removed pragma once define in header files in lieu of ifdef guards.
2018-06-20 18:08:30 -04:00
Lemongrass3110
801d3ed942
Moved common, config and mapcache to C++ (#3200)
Dropped BETA_THREAD_TEST and everything around it
Dropped mt19937
Replaced msinttypes with cinttypes
Removed IRC link and updated README name
2018-06-14 21:51:58 +02:00
Aleos
7c4d769234
Added Old Glastheim Buffs (#3167)
* Fixes #2772.
* Added missing Old Glastheim buffs.
* Added buffs to Old Glastheim script.
* Renamed Glastheim -> Glast Heim.
Thanks to @Atemo and @mrjnumber1!
2018-06-13 15:55:30 -04:00
Aleos
9d176c9f1d
Corrected B.S. Sacramenti behavior (#3149)
* Fixes #611.
* Status is now removed on player log out.
* Status is not given to targets who have the Undead/Demon element.
Thanks to @Atemo!
2018-05-28 12:52:30 -04:00
Jittapan Pluemsumran
e2b9e42b7d Cleaned up custom battleground scripts (#3025)
Added a warning to script command delwall
2018-04-11 11:22:29 +02:00
Aleos
4171cd1801
Updates Rolling Cutter counter behavior (#2837)
* Fixes #2835.
* Rolling Cutter counter should only be reset on physical click-walks, not by any other movement.
Thanks to @ecdarreola and @secretdataz!
2018-01-30 14:15:42 -05:00
Lemongrass3110
fb966a12e0
Turned pet db into a dynamic map (#2727)
Thanks to @Jeybla, @lighta and @aleos89
2018-01-01 22:57:47 +01:00
lighta
716f6c0f29 Duel allocation (#2734)
* Duels are now dynamically created and no longer statically consumes memory.
* Removed max number of duel at once.
* Updated duel modules for multi-thread and safer management.
* Remove various statically allocated tab.
* Removed duplicate code for npc_movenpc.
* Fix few warnings.
Thanks for suggestions from @anacondaqq.
2017-12-27 19:39:45 -05:00
lighta
5ad35eb66b
Fix #2694 (#2732)
* Fix #2694

Move down skill_unit_move(bl,gettick(),4) of unit_remove_map_ to avoid conflict with duel changing realm.
The issue was that skill_unit_onleft was called before the duel_leave handling which was reapplying skill_unit_onplace causing an infinite status duration.
Other skill might had same issue.

* Small optimisation.
Avoid calling status_change_end when we have no status set yet (or no status_change holder).
Move down overrecurent call to status_change_end SC_ROLLINGCUTTER.
2017-12-22 14:29:44 -05:00
Aleos
c4a364be2c
Initial work for map server to C++ (#2565)
* Initial progression of moving the map-server to C++ format.
* Converted all core files to .cpp and header files to .hpp.
* Refactored the refine database parser to utilize native YAML C++.
Thanks to @Jeybla and @lighta for their help!
2017-11-02 17:39:03 -04:00
Lemongrass3110
3b219565d3 Enabled import for translations by default (#2535)
Added possibility to override MAP_MAX_MSG with defines_pre.h
Added possibility to override LANG_ENABLE with defines_pre.h

Thanks to @Daegaladh for the idea with LANG_ENABLE.
2017-10-24 22:36:59 +02:00
Aleos
6a2c1229d0 Updated Rebellion class (#1692)
* Updated Rebellion class
* Information based on Rebellion Awakening patch from kRO.
- http://ro.gnjoy.com/news/update/View.asp?seq=183&curpage=1
* Fixes #859 and fixes #1449.
Thanks to @RagnarokNova and Fyrus for their information!
2017-10-12 11:04:03 -04:00
Jeybla
f197f82f1f Removed reset of monster drops on mobdb reload. (#2394)
Does not clear item_drop_ers on mobdbreload anymore.
- Fixes #2355
- Thanks to @Zellukas.
2017-08-31 19:02:22 +02:00
Jittapan Pluemsumran
71421a4268 Made global variables in header files extern and implement them in their respective source file. (#2318) 2017-08-08 15:33:39 +07:00
Jittapan Pluemsumran
a46e012619 Made cbasetypes.h more C++ compatible (#2315)
* Removed inline macro in cbasetypes.h
* Renamed swap macro to avoid name clash with std::swap
2017-08-07 06:33:47 +07:00
Aleos
7f5411da07 Initial release of the Achievement System (#2044)
* Information based on kRO patch notes.
- http://ro.gnjoy.com/news/update/View.asp?seq=163&curpage=1
* Includes Title System which is integrated into the Achievement System.
* Includes RODEX integration for rewards.
* Added new atcommand reloadachievementdb.
* Added new script commands achievementinfo, achievementadd, achievementremove, achievementcomplete, and achievementexists.
Thanks to @Lux-uri, @RagnarokNova, @Lemongrass3110, and @Tokeiburu for their help!
2017-07-27 09:33:03 -04:00
aleos89
df2c3e1645 Fixed a compile warning for ADJUST_SKILL_DAMAGE
* Fixes #2231.
Thanks to @technoken!
2017-07-17 14:56:08 -04:00
Aleos
5f7a143d3e Updated Summoner class (#1965)
* Fixes #1865.
* Updated and added new Summoner class skills.
* Information based on kRO patch notes.
- http://ro.gnjoy.com/news/devnote/View.asp?category=1&seq=1987966&curpage=1
* Updated previously implemented skills to better mimic official behavior.
Thanks to @RagnarokNova, Fyrus, and Jet for their hard work on gathering the information!
Thanks to @Grimfiend, @Atemo, @feltenc, @Lemongrass3110, @Felleonel, and @sanny1128 for the rapid test and reports!
2017-07-05 19:40:35 -04:00
Jey
809fc35b0e
Follow up to 4a2574c.\r\nThanks to @Jeybla! 2017-06-26 01:24:54 +07:00
Jittapan Pluemsumran
4a2574c599 Migrate core source files to C++. Add yaml-cpp project as dependency (#2207)
By updating to this commit, Linux users have to regenerate Makefiles by re-running the configure script.

* Added yaml-cpp project as a 3rdparty library
* Migrated source files core to C++
* Updated configure scripts
* Make Linux installations compile *.cpp files
* Made server components' main source file C++
* Also made headers CPP-aware.

* Added basic C wrapper for yaml-cpp library
* YAML-node path is delimited by periods.
* Basic integer types and string are supported.
* Strings returned from this wrapper have to be freed with malloc.h::aFree
* Arrays (sequence) is supported with iterator wrapper.
* Remember to free every wrapper you create!

* Add yaml-cpp as dependency of common project
* Made the repo not ignore *.yml files

Thanks to @aleos89 and @Lemongrass3110.
2017-06-25 23:33:24 +07:00