113 Commits

Author SHA1 Message Date
Jittapan Pluemsumran
1985662045
Made debug ShowStatus calls easier to disable (#7618)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-02-21 11:34:52 +07:00
Vincent Stumpf
e235c9cab4
Change common and config includes to use <> (#7596) 2023-02-12 12:46:06 -08:00
Vincent Stumpf
eff6131087
Speed up loading of npcs and maps (#7597) 2023-02-12 11:01:14 -08:00
Lemongrass3110
14cb61d598
Removed mapindex from char-server (#7533)
Converted last_point to mapname
Converted save_point to mapname
Converted memo to mapname
Converted start point to mapname
Removed default map
Converted party member to mapname
Converted maplists to mapname
Removed mapindex loading
Fixed instance loading with multiple map-servers
Fixed castle loading with multiple map-servers
Fixed battleground loading with multiple map-servers
Fixed warping between map-servers

Thanks to @aleos89 for his help!
2023-01-11 16:54:53 +01:00
Lemongrass3110
9dda166c0e
Converted cash shop database to YAML (#6299)
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-01-05 18:30:07 +01:00
Lemongrass3110
39d5a02a31
Initial release of adventure agency (#7224)
Thanks to @Dia, @OptimusM, @Balferian and @ecdarreola
2022-12-21 01:17:42 +01:00
Lemongrass3110
2c4ee64b59
Start refactoring the core to C++ (#7303) 2022-12-20 23:37:31 +01:00
Singe Horizontal
8eac71f57f
Cleaned struct tokens for map_session_data and status_change (#7490)
Fixes #7492
2022-12-16 19:16:29 +01:00
Vincent Stumpf
1f4c068c39
Refactor status change entries (#7356)
* Make map_session_data a class, call constructor/destructor on alloc/free

* add getSCE

* add create, delete, clear SCE

* Use getSCE, make data access private

* add a cache for last-fetched status
2022-12-13 23:47:53 -08:00
Vincent Stumpf
4661016445
Generate Reputation UI bson files (#7340) 2022-11-27 00:53:54 -08:00
Jittapan Pluemsumran
bc4934373d
Implemented itemmoveinfov5.txt generator (#7457) 2022-11-26 17:33:27 +07:00
Lemongrass3110
a763ad0629
Implemented dynamic NPCs (#7402)
This is required for features like #6640
Added COLOR_LIGHT_YELLOW
Cleaned up color definitions, its useless to store them as string first.
Dynamic NPCs will stay when you switch map and come back in time.
Dynamic NPCs will be removed instantly when you log out.
You can only create one dynamic NPC at a time.

Thanks to @Atemo!
2022-11-07 00:41:10 +01:00
Aleos
d7bf5ebb58
Adds support for macro detection (#7315)
* Adds the official client macro detection system.
* Includes the ability to load imagery at server boot.
* See doc/captcha_db.txt for more information!
Thanks to @Asheraf and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-14 10:54:19 -04:00
Lemongrass3110
5b396bf7f1
Fixed some more hardcoded directions (#7317)
Replaced hardcoded numbers with their respective constants to increase maintainability and readability.
2022-10-12 22:38:22 +02:00
Vincent Stumpf
47c9a36215
Refactor generator to support future features (#7214)
Co-authored-by: Akkarinage <mike.langford@industrial-illusions.net>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-09-25 00:37:21 -07:00
Vincent Stumpf
c751ca6b74
Client Navigation Generator (#6023)
Creates navigation files for the client.
2022-08-26 21:31:45 -07:00
Lemongrass3110
b1b371f4b8
Cleaned up status_change_end (#7211)
* Removed leftover old debug info that made it necessary to the hide the real function behind a define.
* Introduced a C++ default argument for timer id, as the timer id is only needed a single time, when the status expires naturally.
* Replaced all currently existing calls that had INVALID_TIMER as argument and made use of the new default argument.
2022-08-26 22:23:40 -04:00
Vincent Stumpf
0ac52d0bb4
Initial support for web service for newer clients (#5731)
Co-authored-by: Jittapan Pluemsumran <secret@rathena.org>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-08-16 15:10:18 +02:00
Atemo
c5031982d2
Allow the player to stand on a cell occupied by disabled/hidden npc (#7154)
Fixed #7153
2022-08-07 21:54:53 +02:00
Aleos
c2303c8f65
Resolves a mapflag overlap warning with PK Mode (#7109)
* Fixes #7099.
* Hides a warning message when PK Mode is enabled and a Battleground mapflag is attempted to overwrite the PvP mapflag.
Thanks to @LolyAll!
2022-07-18 11:08:44 -04:00
Aleos
a7a9b68ed2
Increases the server config character limit (#7006)
* Fixes #5324.
* Adjusts the Login, Character and Map server's ID, password, schema, and codepage character limit from 31 to 1023.
* Adjusts the Login, Character, and Map server's IP character limit from 63 to 1023.
* Removes password echos during failed connections.
Thanks to @reunite-ro!
2022-06-07 11:23:50 -04:00
Aleos
9bf78ee5a3
Clean up to how map cache is loaded by mode (#6984)
* The db/(pre-)re/map_cache.dat now contain maps that are only different between the modes.
* Moves all general maps into db/map_cache.dat for loading across both modes.
* Adds support for the new RSW water height.
* Adds an error message when loading GRFs if the file size is over 2GB.
2022-05-26 09:55:46 -04:00
Cydh Ramdh
16ccad42e8
Update vending and buyingstore on warp (#6718)
Fixed #6671, vendor & buyer location never been updated if the location is changed
Added MF_NOBUYINGSTORE and CELL_NOBUYINGSTORE to separate from MF_VENDING & CELL_NOVENDING
Added some missing check for buyingstore states
Updated mapflag doc
Added new constants

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-03-31 23:08:35 +02:00
Cydh Ramdh
f28d207274
Implementation of Status Changes in YAML (#1685)
* Removes the initialization of Status Changes via hard-code and puts it into YAML form.
* From this database it is much easier to delegate icons, calc flags, opt flags, miscellaneous flags, and several other things for all stats changes.
* Statuses can quickly be reloaded via atcommand reloadstatus.
Thanks to @cydh, @Atemo, @Lemongrass3110, and the others who helped!
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Co-authored-by: atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-03-10 13:11:59 -05:00
Aleos
47e515888c
Changes mapflag storage type to vector (#6624)
* Changes the mapflag storage type from an unordered_map to vector giving it a performance boost.
* This changes all lookups and modifications to O(1) rather than a possible O(log).
2022-02-18 08:10:57 -05:00
Sader Fawall
ac7292c92d
Allow creating instance without timer or data (#5112)
* Allow creating instance with no timer
* Added NoNpc to prevent copying NPCs from the source map
* Added NoMapFlag to prevent copying Mapflags from the source map
* Added instance_list script command to retrieve the instance IDs for the given map name/instance mode

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <3517879+Lemongrass3110@users.noreply.github.com>
2022-02-11 18:45:17 +01:00
Lemongrass3110
e40da669ed
Initial release of barter shops (#6508)
Fixes #5062

Thanks to @Atemo and @aleos89

Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-01-21 00:59:16 +01:00
Lemongrass3110
7556453dfc
Merge of Rytech's 4CrAM (#6414)
Merged Rytech2/4CrAM-Open@978d4fc406

Original author is @Rytech2 and all credits belong to him.
Cleanups by @Lemongrass3110, @aleos89 and @Atemo.

Co-authored-by: Rytech2 <rytech16@gmail.com>
Co-authored-by: aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <capucrath@gmail.com>
2021-12-30 20:25:19 +01:00
Atemo
4a778815a3
Converted mercenary_db to YAML format (#6101)
* Converts the Mercenary Tables file into YAML.
* Includes CSV2YAML converter.
* Fixed mercenary name not properly displayed after moving

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2021-12-07 00:49:44 +01:00
Atemo
a205287307
Converted elemental_db to YAML (#6102)
* Converts the Elemental Summons Tables file into YAML.
* Includes CSV2YAML converter.

Thanks to @Lemongrass3110, @aleos89, @secretdataz !
2021-11-26 00:53:35 +01:00
HAO YAN
2eebafb703
Enable makeitem to display DropEffect (#6303)
Enable item to special effect if the item has DropEffect flag.
2021-10-20 15:45:07 +02:00
Aleos
393ec53272
Fixes a potential map crash for atcommand mapflag (#6255)
* Fixes #6254.
* Adds a few checks for MF_RESTRICTED so the status is not disabled if other zones are active for the same map.
Thanks to @xEasycore and @Lemongrass3110!
2021-09-16 16:56:18 -04:00
Aleos
1cbf6aefdd
Cleans up checks for leaving active Battlegrounds (#6124)
* When a player deserts an active Battleground they will no longer receive the  SC_ENTRY_QUEUE_APPLY_DELAY status from leaving the queue. This makes it so that the proper Battleground desertion message is shown when trying to join another Battleground.
2021-07-29 15:33:47 -04:00
Atemo
f230b13ded
Converted statpoint.txt to YAML (#6010)
* Converts the Statpoint Database into YAML.
* Includes CSV2YAML converter.
* Added start_status_points to inter_athena.conf

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2021-07-05 19:06:49 +02:00
Aleos
16b4cbfca1
Resolves players warping to freed maps (#5922)
* Fixes #4363.
* Resolves players warping to freed maps resulting in a crash.
* Clear out the instance_id from mapdata when clearing.
Thanks to everyone who reported and helped get to the bottom of the issue!
2021-05-06 15:48:17 -04:00
Atemo
95c671a95d
Initial release of Sky Fortress Invasion Instance (Official Conversion) (#3586)
* Implemented skills
NPC_HALLUCINATIONWALK
NPC_POISON_BUSTER
NPC_CLOUD_KILL
NPC_IGNITIONBREAK
NPC_PHANTOMTHRUST
NPC_FIREWALK
NPC_ELECTRICWALK

Thanks to @aleos89 @Lemongrass3110 @Angelic234 @Latiosu @Akaineko-astasi !
2021-03-08 15:12:40 +01:00
Vincent Stumpf
ca779dad59
Clean up instance map name generation (#5704)
Put the instance map name generation in a seperate function
Fix some compiler warnings
Fixes #5691
Thanks @RadianFord
2021-02-25 15:01:44 -08:00
Atemo
a33887b59f
Questinfo correction (#5523)
* Corrected questinfo bubble not always being displayed
* Docs updated
* Changed qi_display to std::vector

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>

Thanks to @lighta @aleos89 @Lemongrass3110 !
2021-01-15 22:49:35 +01:00
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