Commit Graph

75 Commits

Author SHA1 Message Date
Lemongrass3110
dade413935 Fixed the renewal mapcache
Fixes #5396

Reverts 9eeeb09

Thanks to @nubspixel and @aleos89
2020-12-07 02:16:44 +01:00
Aleos
9eeeb09ff6 Fixes a potential crash when adding new maps (#5422)
* Fixes a potential crash when adding new maps
* Fixes #5396.
* Fixes a potential crash on start up when adding a map to maps_athena.conf and the map has not yet been added to map_cache.dat.
Thanks to @nubspixel!

* Inverts check
2020-11-30 04:01:17 +01:00
Aleos
2d97ece2a2 Implements new guild skills (#5192)
* Fixes #4183.
* Adds 3 new guild skills: GD_CHARGESHOUT_FLAG, GD_CHARGESHOUT_BEATING, and GD_EMERGENCY_MOVE
* Changes 5 minute guild global cooldown to be 3 minute individual cooldowns for GD_RESTORE, GD_REGENERATION, GD_BATTLEORDER, GD_EMERGENCYCALL, and GD_ITEMEMERGENCYCALL.
* Reduces GD_RESTORE fixed cast time from 10 seconds to 1.
2020-11-28 17:16:22 -05:00
Lemongrass3110
f37990414f Cleanup of MVP mode checking (#5559)
Fixes #5368

Thanks to @mazvi, @attackjom and @aleos89
2020-11-22 02:09:02 +01:00
Aleos
04cfe17b2b Converted item database to YAML (#4335)
* Combines item_avail, item_buyingstore, item_delay, item_flag, item_nouse, item_stack, and item_trade databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
* Includes YAML2SQL conversion tool.
* Adjusts dummy_item from being created by malloc and now creates it by make_shared.
* Item combos are now stored as a STL.
Thanks to @Lemongrass3110, @Atemo, and @cydh!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2020-10-21 19:02:11 -04:00
Aleos
3060865aa0 Adjusts map_foreachindir to include caster's cell (#5314)
* Fixes #3502.
* Adjusts map_foreachindir to include the caster's cell when calculating area of effect.
* Adds battle config 'skill_eightpath_same_cell' to allow toggling of the effect.
Thanks to @mrjnumber1!
2020-08-13 11:16:55 -04:00
Aleos
e2f1bca401 Fixes MF_PVP_NIGHTMAREDROP not clearing on reload (#5160)
* Fixes MF_PVP_NIGHTMAREDROP not being cleared during a script reload and resulting in the drop list reaching the max size.
2020-06-30 10:42:54 -04:00
Atemo
0f9dde4e33 OnTouch support when npc is walking (#5134)
* Added support to trigger 'OnTouch'/'OnTouch_' npc label when a npc is moving through npcwalkto script command.
* Fixed #502

Thanks to @aleos89, @wbgneto !
2020-06-26 15:59:39 +02:00
Aleos
6ce5ba10b4 Corrects Hell's Plant behavior (#4966)
* Skill is no longer a unit skill but a status.
* Adjusts the attack rate timer to official.
* Skill does not proc cards.
* Skill does not reflect damage.
Thanks to @Tokeiburu, @ecdarreola, and @attackjom!
2020-06-12 08:11:25 -04:00
Aleos
14c388b401 Resolves some Battleground issues (#4725)
* Queue data will now be kept available until a Battleground event is over.
* Players can now join an active Battleground.
* Adds a more detailed queue state tracking feature.
* When a battleground is being prepared and not enough players click accept, stop the battleground from beginning.
* When a player logs off or leaves a queue they will now properly be removed from the queue.
* Cleans up MinPlayers and MaxPlayers parsing to not accept values less than 1.
* Resolves players not being able to join an active battleground (up to MaxPlayers) unless someone quit early.
* Adds a team size priority check to avoid adding more players to a larger team.
* Fixes battlechat messages.
* Adds a battle_config to disable the ability for players on maps with MF_NOWARP to join Battlegrounds.
* Adds a new optional ActiveEvent label to the database.
* Fixes a typo in Flavius 2 during unbooking process.
* Cleans up the behavior of the Battle Therapists to use areapercentheal and areawarp.
* Fixes KVM score not properly set on the first Battleground.
* Fixes the global timer checks not ending the main timers on Flavius and Tierra Gorge.
* Added an extra bg_reserve on global timer checks in case someone tries to join the battleground just before it's ended.
* Fixed OnReadyCheck being called on global timer checks, causing the battlegrounds to start when there were no players on the map.
* Fixed a bug on Tierra Gorge where multiple barricade walls could be stacked.
* Fixes Croix also receiving 9 badges when Guillaume wins.
* Adjusts StartDelay default to 0.
* Add a database setting to give the ability to enable or disable joining as an individual, party, or guild.
* Add a database setting to restrict jobs from entering Battlegrounds.
* Better documents script commands bg_reserve and bg_unbook.
* Other fixes and cleanups.
Thanks to @roSBK and @Daegaladh, @admkakaroto, @Artuvazro, and @Atemo!
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
2020-05-25 12:39:36 -04:00
Aleos
15c954ef23 Fixes instance map name faults (#4945)
* Fixes #4915.
* Fixes instance map names when it reaches 1000.
* Fixes instances with more than 8 character crashing the client.
* Other minor cleanups.
Thanks to @voyfmyuh and @Atemo!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
2020-05-17 15:28:13 -04:00
Mark Hester
f60da2b3fa Allow blank SQL passwords (#4827)
* Allow blank password for log and login schema.
Thanks to @marky291!
2020-05-13 22:02:10 -04:00
Aleos
06c159c405 Refactored Instances to utilize C++ features (#3163)
* Fixes #3087 and fixes #3095.
* Converts database file to YAML.
* Converts static array to unordered_map which frees up pre-allocated memory that may never be fully used.
* Got rid of all DBMap/ERS features.
* Removes MAX_INSTANCE_DATA in favor of INT_MAX.
* Includes TXT converter.
Thanks to @Lemongrass3110, @secretdataz, @Atemo, @lighta, @InusualZ, @Angelic234, @Normynator, @cydh, and @ecdarreola!
2020-04-08 12:52:45 -04:00
Aleos
652d77eb02 Job Improvement Project - Genetic (#3284)
* Fixes #2571.
* Updates Homunculus skills from kRO maintenance: http://ro.gnjoy.com/news/update/View.asp?seq=218&curpage=1
* Updates Genetic skills from kRO maintenance: http://ro.gnjoy.com/news/update/View.asp?seq=246&curpage=1
Thanks to @Tokeiburu, @Badarosk0, @Balferian, and @Haydrich!
2020-03-25 13:26:26 -04:00
aleos
0021b6d577 Revert "SQL synchronization"
This reverts commit 53761b952a.
2020-03-24 17:49:00 -04:00
rAthenaAPI
53761b952a SQL synchronization 2020-03-24 18:38:07 +01:00
Aleos
412d90048d Implemented Star Emperor and Soul Reaper classes (#4386)
* Initial implementation of these two classes skills.
* Includes kRO balancing patch: http://ro.gnjoy.com/news/devnote/View.asp?category=1&seq=3921697
Thanks to @Rytech2, @Mateuus, @nubspixel, @exneval, @idamonli, @hotspicy945, @admkakaroto, @cahya1992 and @RagnaWay!
2020-03-24 13:37:58 -04:00
Aleos
5c35ec7d69 Corrects skill_damage_db parsing (#4667)
* Fixes #4574.
* Removes the usage of atoi as any failure returns 0.
* Adds checks for cases of invalid data.
* General cleanups and fixes.
* Fixes the import database documentation.
Thanks to @Skormie!
2020-03-04 12:33:37 -05:00
Aleos
2931c00bd4 Implemented the Battleground Queue System (#3995)
* Fixes #1310.
* Added a battle config which allows toggling of the Battleground Queue client feature and also toggles between the modes of scripts.
* Added script commands bg_reserve, bg_unbook, and bg_desert.
* Removed old custom Battleground scripts.
Thanks to @Lemongrass3110, @Locien, @secretdataz, @InusualZ, @Normynator, @Atemo, @iubantot, @admkakaroto, and @noobzter003!
2020-02-12 08:26:59 -05:00
Lemongrass3110
d12b4fdca0 Added support for RSW 2.2 (#4627)
Merged mapserver and mapcache RSW reading code
2020-02-11 23:49:47 +01:00
Atemo
78eb1bcd7b Additional check in map_mapid2mapname (#4373)
* The mapid2name script command didn't check if the map existed (potential crash)
2020-02-04 15:01:00 +01:00
Lemongrass3110
e72c7360cf Added int64 support to the script engine (#4522)
Added support for signed 64 bit integer value computation into the script engine.
This is required because newer official features require support for bigger numbers inside the scripts.

This also cleans up a lot of messy code and fixes a few issues like script stack corruptions.

Thanks to @aleos89 and everyone who supported me with this.
2020-01-13 14:44:48 +01:00
Lemongrass3110
64b5c3082b Migrated atcommand aliases and help to YAML (#4487)
Merges atcommand_athena.conf and help.txt into a single file.
Removed some leftover settings that were removed before.
Removed CLI support for modifying the atcommand configuration file.
Moved atcommand and charcommand symbol definition into conf/battle/gm.conf
Removed some messages that are not needed anymore

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2019-12-21 19:19:19 +01:00
Atemo
b412c4fcab questinfo requirement update (#4168)
* The <quest ID> is now removed, all the conditions are handled by a <condition> argument. The <condition> is using the achievement_check_condition (like in achievement_db.yml) so any condition (in theory) can be used to display the icon.
* A new script command has been added to refresh the bubble for the given player anytime.

Thanks to @aleos89 and @secretdataz for the review!
2019-10-06 17:15:46 +02:00
Aleos
a548f20c94 Corrected PK Mapflag assignment (#4165)
* Fixes an issue with different player versus player mapflags not being checked before applying the PK mapflag.
Thanks to @LiamKarlMitchell!
2019-06-04 09:34:30 -04:00
Atemo
f8ea43ebc7 getmapflag MF_RESTRICTED (#4193)
* Corrected the value returned by getmapflag script command for MF_RESTRICTED
2019-06-03 20:45:19 +02:00
Aleos
c264d3e94a Corrected script command logmes (#4103)
* Fixed a potential crash with attempting to log a message with a floating NPC.
Thanks to @Akkarinage!
2019-04-18 14:28:49 -04:00
CairoLee
94324bc2d7 Ensure the mysql server host support full length domain (#4092) 2019-04-17 17:59:42 -04:00
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