307 Commits

Author SHA1 Message Date
Atemo
b2ceb30e30
Added missing items equipment up to 02/10/2023 (#7606)
* Added missing items equipment up to 02/10/2023
* Implemented the item bonuses bIgnoreResRaceRate and bIgnoreMResRaceRate

Thanks to @attackjom for the review!
2023-02-15 16:15:11 +01:00
Vincent Stumpf
e235c9cab4
Change common and config includes to use <> (#7596) 2023-02-12 12:46:06 -08:00
Vincent Stumpf
6938722f02
Replace the bitshift optimizations for multiplication (#7590)
* These were originally bitshifts because it was 'faster', but now with modern compilers and hardware, the only thing it does now is confuse developers who have to read the code
2023-02-08 16:00:11 -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
e64c5bce35 Fixed item restrictions for noreturn
Fixes #7537

Thanks to @mazvi
2023-01-09 15:12:31 +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
64228cd18f
Fixed bAddMonsterDropItemGroup (#7516)
Fixes #7515

Thanks to @AcDczZ
2022-12-30 22:03:55 +01:00
Balfear
3b71f77c27
pc_isUseitem: update flywings list (#7487)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-12-20 14:03:59 +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
Aleos
ee2dcf816e
New macro detection features (#7359)
* Adds battle config macro_detection_punishment to ban or jail characters.
* Adds battle config macro_detection_punishment_time to adjust the duration of ban/jail for players who fail the captcha challenges.
* Adds script command macro_detector which invokes the captcha challenge.
* General cleanups to the jail functions to remove duplicate code.
* General cleanups to the macro punishment calls to remove duplicate code.
* Ending SC_JAILED will now properly remove the jail status rather than trying to reset the timer to 1 second resolving any possibility of players getting stuck.
Thanks to @Lemongrass3110!
2022-12-13 15:44:42 -05:00
Vincent Stumpf
4661016445
Generate Reputation UI bson files (#7340) 2022-11-27 00:53:54 -08:00
Lemongrass3110
eb8587f5b5
Removed the strange ACK function concept (#7404)
Cleans up packet database a little more.
Turned some more packets into structs.

Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
2022-11-17 22:09:12 +01:00
Balfear
4cb1af31f8
Don't show attendance UI (#7424) 2022-11-10 13:35:27 +01:00
Aleos
4a5b8e33dc
Follow up to c3a171d (#7375)
* Fixes a compile warning.
2022-10-21 10:44:17 -04:00
HAO YAN
c3a171da81
Add skill_plagiarism script commands (#6304)
* Allow players to copy skills with script command skill_plagiarism.
* Plagiarized skills can be cleared with script command skill_plagiarism_reset.
2022-10-20 11:16:46 -04: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
Atemo
bbc516a4d5
Deprecated itemdb_exists (#7353)
Deprecated itemdb_exists to use item_db.exists() or item_db.find() instead

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-13 16:39:40 +02:00
Lemongrass3110
99faa588ad
Fixed names of two timer functions (#7319)
Blame it on me in 01f61cfa
2022-10-05 16:31:03 +02:00
Lemongrass3110
fa4666d7af
Fixed some packets for 2022 clients (#7276)
Migrates a few packets from FIFO to structs.
Migrates friendlist to struct and fixed invalid version check.
Added a new guild related packet that does nothing for the time being.
Synced to latest Hercules' packet definitions.
Fixed name of ZC_SOULENERGY.

Thanks to @Dia and @Pokye.
2022-09-22 01:50:24 +02:00
idk-whoami
58a7f36c92
Corrected script for some item #10 (#7177)
* Corrected script for some item #10
* add some items JRO costume

Thanks to @Atemo
2022-09-12 14:29:08 +02:00
Lemongrass3110
96e3981c68
Fixed some issue with clif_loadConfirm (#5204)
Fixes #5203
Fixes #5278
Fixes #5376

Thanks to @aleos89 for his help and everyone else involved in reporting, commenting and testing.
2022-09-11 20:49:31 +02: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
Lemongrass3110
ae74eb8404
Initial release of reputation UI (#7184)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-08-18 17:50:40 +02: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
Aleos
e3c2db65c4
Updates the behavior of Overheat (#7157)
* Overheat is now triggered via damage received, not damage dealt.
* Corrects an issue where the HP damage would not trigger because the Overheat status would end too early.
* Damage will no longer cause a flinch.
* General cleanups.
2022-08-06 21:55:20 -04:00
Keitenai
cda284f123
Cleaned up (#7164)
minor follow up to 7336058
2022-08-05 11:47:55 +02:00
Aleos
8038e71322
Speed up item and mob information commands (#7084)
* Fixes #7081.
* Small refactor of the atcommands: iteminfo, mobinfo, whodrops, and idsearch.
* Item information gathering is now sped up.
* Refactored itemdb_searchname_array to store results in a std::map so that the data is sorted by ID automatically.
* Cleanups across the board to remove extra calls for itemdb_exists().
Thanks to @voyfmyuh, @CairoLee, and @Lemongrass3110!
2022-07-22 15:11:44 -04:00
Balfear
79b97bdc51
Auto Spell rate fix (#7068)
* Updates the check for Auto Spell rate values to range from -1000~1000.
Thanks to @Balferian!
2022-06-30 12:40:27 -04:00
Aleos
394dab1237
Cleans up Thief's Double Attack item bonuses (#7070)
* Items that grant TF_DOUBLE now no longer require bDoubleRate.
* Adds pc_checkskill_flag() to return a skill's flag value.
Thanks to @eppc0330 and @secretdataz!
2022-06-28 12:01:57 -04:00
Aleos
256735a136
Fixes mob and item atcommand sorting issues (#7058)
* Fixes #7055.
* Fixes several atcommands used for mob and item information were not properly accounting for order.
* Resolves an issue where YAML databases were not properly utilizing the cache feature.
* Increased MAX_SEARCH to 10 by default as in renewal there are many more items with duplicated names.
Thanks to @Playtester!
Co-authored-by: Playtester <Kenji.Ito@gmx.de>
2022-06-24 09:53:31 -04:00
Aleos
354d2605f2
Corrects Doram healing skill effects (#6978)
* Fixes #6962.
* Tuna Belly and Fresh Shrimp don't apply normal green heal effects.
* Resolves an issue with the HP bars not properly updating for party members as well.
Thanks to @KrokusPokus!
2022-06-07 11:05:37 -04:00
Lemongrass3110
001981cf66
Initial implementation of enchantgrade UI (#6913)
Includes walkscript conversion of kRO scripts

Thanks to @Asheraf, @Balferian, @JohnnyPlayy, @aleos89, @Atemo, @eppc0330 and @Pokye.

Co-authored-by: JohnnyPlayy <lenon32@gmail.com>
Co-authored-by: Asheraf <Asheraf@users.noreply.github.com>
Co-authored-by: Balferian <balfear@yandex.ru>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
2022-06-07 16:45:35 +02:00
Aleos
0615b843d7
Removes the 100% rate cap for SC defense (#6926)
* Status changes are simply not capped to 100%.
* Adjusts to utilize util::safe_addition_cap.
Thanks to @Playtester!
2022-05-09 17:12:59 -04:00
eppc0330
9acb50006a
Fix equip order (#6876)
* Fixes equip order
* Accessoires now prioritize the left side of the equipment window (if both slots are occupied)
* Weapons now prioritize the left side (right hand) in renewal
* Weapons still prioritize the right side (shield hand) in pre-renewal
2022-05-07 17:48:20 +02:00
Playtester
64f10ed10b
Fixes HPFactor being way too high (#6909)
- Fixes #6908
- HpFactor default changed from 20000 to 0
- Renamed HPMultiplicator to HpIncrease and SPFactor to SpIncrease so the naming is more consistent
- Fixed an issue with case-sensitivity (HP/SP -> Hp/Sp)
- YAML version of JOB_STATS is now 2
- "csv2yaml" and "yamlupgrade" converters updated accordingly
- Improved documentation

Special thanks to @Lemongrass3110
2022-05-02 13:50:09 +02:00
Aleos
3c36814c1f
Adjusts swapping equipment behavior (#6869) 2022-04-22 17:15:43 -04:00
Lemongrass3110
51ddc63a02
Converted player groups to YAML (#6488)
Finally adds import functionality for player groups and therefore atcommand and permission defining.

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-04-15 23:47:44 +02:00
Lemongrass3110
6e58ab7d40
Disabled random options for stolen items (#6836)
Added a battle config to enable/disable random options for stolen items.

Fixes #6833
2022-04-14 15:21:49 +02:00
Lemongrass3110
14d6052e5b
Fixed some 4th class ex issues (#6806)
Added all required skill and skill unit constants - thanks to @Rytech2
Fixed the order of some jobchange checks
Added missing MAPID to JOBID conversion
Fixed pc_calc_skilltree_normalize and added support for gaps in the job tree
2022-04-14 15:04:02 +02:00
Lemongrass3110
01261dbf3d
Cleanup after RYML merge (#6785)
Speeded things up even more by making use of C++'s reference feature.
Fixed #6770 warning while at it.
Added back support for case insensitive booleans.
Fixed a very rare issue with cached databases.
Removed .children() calls
Added back type safety reports
Added ryml to login-server makefile

Thanks to @aleos89, @Atemo and @idk-whoami
2022-04-03 04:02:13 +02: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
Jittapan Pluemsumran
d1b7061f5a
YAML loading optimization (#5997)
* Use rapidyaml library to parse YAML databases instead of yaml-cpp.
* Drastically reduces the parse time for yaml databases.
* Removes yaml-cpp content from main servers, except for tool emitter.
Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-03-30 16:38:52 -04:00
Aleos
9bc1c53db4
Fixes Elemental Converter behavior (#6743)
* Fixes #6627.
* Elemental Converters will now be removed on weapon unequip/swap.
* Adds RemoveOnUnequip, RemoveOnUnequipWeapon, and RemoveOnUnequipArmor status flags and dehardcoded statuses to utilize these flags.
* Hovering Booster's cancellation of SC_HOVERING now takes place in the UnEquipScript, releasing the hard coded check.
Thanks to @Everade, @Daraen1, @Toshiro90, and @Lemongrass3110!
2022-03-30 10:19:27 -04:00
Playtester
414d43dd05
Natural recovery formula and interval behavior (#6755)
* Implemented official natural recovery formula and interval behavior (fixes #6754)
* Fixed HP recovery per tick being 1 too high (after reaching 200 HP)
* The interval will now work similar to official servers where it remembers the time of the last recovery and checks if the interval has passed since that time
* The natural recovery interval will now be continuous even when at full health (i.e. if you are full while the interval passes and afterwards you lose HP/SP, you will have to wait for the next interval)
* Fixed anything blocking recovery, such as walking, not resetting the natural recovery tick (e.g. you have to wait 6 seconds to recover HP after you stop walking, unless you have moving recovery)
* Applies to players, homunculus, mercenaries and elementals
* Note: This also works with custom intervals, but you should make sure they are multiples of 4*NATURAL_HEAL_INTERVAL, otherwise it will round to the closest possible interval (you can reduce the timer interval in map.hpp when needed)
2022-03-30 12:13:42 +02:00
Jittapan Pluemsumran
695de6313a
Implemented new bonus for official Sarah Card behavior. Fixes #6189 (#6281) 2022-03-29 15:35:15 +07:00
HAO YAN
00be4ee9ca
Update Item Card slot count (#6301)
Should cover all card slots since these slots doesn't only store card anymore.
2022-03-17 18:20:17 +01:00
Lemongrass3110
0449f39015
Fixed SL_HIGH (#6699)
Added a central random function for chance calculation
Added a missing status change end for SC_SPIRIT on jobchange
2022-03-16 21:28:38 +01: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
84248255b7
Implements MF_NOPETCAPTURE (#6618)
* Fixes #6556.
* Implements the nopetcapture mapflag which is used to stop pet-type monsters from being caught.
Thanks to @RagnaWay and @Lemongras3110!
2022-02-16 12:51:25 -05:00