460 Commits

Author SHA1 Message Date
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
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
Aleos
7f82194eca
Adds SC_WEAPONBREAKER status (#7265)
* Fixes #6915.
* Adds the SC_WEAPONBREAKER status which is applied via NPC_WEAPONBRAKER's self cast ability.
* Adds a chance to break a target's weapon at 2 * skill_lv% for 30 seconds.
Thanks to @Playtester!
2022-10-12 16:53:49 -04:00
Aleos
3d3a5159e3
Updates NPC_SIEGEMODE comment to known behavior (#7327) 2022-10-11 08:03:30 -04:00
Aleos
4ae56ba94c
Fixes Marine Sphere behavior (#7333)
* Fixes #7332.
* Resolves an issue where Marine Sphere were not casting their skills after being hit.
Thanks to @violent01 and @Daegaladh!
2022-10-07 15:54:07 -04:00
Aleos
c2e19bcf06
Fixes to Lullaby, Pang Voice, and Wink of Charm (#7264)
* Fixes #6916.
* Corrects the interval of Lullaby to every 4 seconds in pre-renewal.
* Corrects the success chance of Lullaby to INT * 0.2 + rand(10%, 30%) for Sleep.
* Corrects the duration of Lullaby's Sleep to 18 + 2 seconds in renewal and 30 seconds in pre-renewal.
* Corrects the success chance of Pang Voice to 70% for Confusion.
* Corrects the success chance of Wink of Charm versus players to 10% for Confusion.
* Corrects the success chance of Wink of Charm versus monsters to [(srcBaseLevel - tarBaseLevel) + 40]% for Charm.
Thanks to @Playtester and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-09-22 13:25:30 -04:00
munkrej
4800b5bf72
adds missing mob skill conditions MSC_GROUNDATTACKED and MSC_DAMAGEDGT (#7138) 2022-09-22 15:30:17 +02:00
Aleos
f8cd4aa8c7
Implements petautobonus script commands (#7053)
* Fixes #7038.
* Implements script commands: petautobonus, petautobonus2, and petautobonus3.
* This allows pets to utilize the same autobonus features that players can use without having to check for the equipped item position.
Thanks to @EditorFc's suggestion and @Lemongrass3110!
2022-09-16 12:46:53 -04:00
Jittapan Pluemsumran
ee5ba2d889
Fixed potential crash via skill GN_FIRE_EXPANSION. (#7267) 2022-09-16 00:40:26 +07: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
Aleos
4a43856271
Adjusts Enchanting Shadow behavior (#7124)
* Fixes #7104.
* Implements Shadow Scar as a timer on units.
* Implements the official packet for Shadow Scar counter.
* Enchanting Shadow can now be triggered by skills as well as melee.
* Removes the hit count limit.
* Adjusts the damage rate of Shadow Wounds to increase by 3%.
* Adjusts the duration of Shadow Scar from 30 seconds to 15.
Thanks to @eppc0330 and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-09-06 17:05:19 -04:00
Lemongrass3110
6cb5b5bac6
Implemented the /call command (#7225)
Fixes #7139.
Thanks to @idk-whoami
2022-09-01 16:01:13 -04:00
Lemongrass3110
5f4fd5c98b
Fixed some more SC_STONEWAIT issues (#7212)
Fixed PR_STRECOVERY not clearing SC_STONEWAIT
Fixed that ending SC_STONEWAIT manually still triggered SC_STONE

Thanks to @Singe-Horizontal and @aleos89
2022-08-28 17:02:37 +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
Aleos
77b4b3ccea
Fixes a couple mob skill conditions (#7151)
* Fixes #7141.
* Follow up to 36b9b94.
* Fixes an issue with mob skill conditions closedattacked and longrangeattacked not triggering for skills with no aMotion.
Thanks to @datawulf!
2022-08-12 15:13:26 -04:00
Aleos
3418221dba
Fixes skill_keep_using timer mismatch (#7127)
* Fixes #7095.
* Resolves an issue where skill_keep_using was not resetting the timer ID after the timer ends.
* Cleans up the check when applying the timer to confirm a timer doesn't already exist.
Thanks to @eppc0330!
2022-08-12 14:55:21 -04: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
Aleos
97b5f3b4ac
Fixes a RENEWAL_CAST compile warning (#7137)
* Fixes a compile warning when RENEWAL is enabled but RENEWAL_CAST is disabled.
Thanks to @Pokye and @Lemongrass3110!
2022-07-28 12:56:04 -04: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
Joam
e3cb3fa01f
Renewal Physical damage cleanup (#6997)
Corrected bAtkRate item bonus behavior to be the same as official.
Correction order of calculation of physical attack
Enchant Deadly Poison now grants 25% poison pseudo elemental bonus. also Magnum break also grants 20% fire pseudo elemental damage.
Advanced Katar Mastery bonus formula is corrected.
Critical attacks now always use max attack value like Maximize Power-buffed attacks.
Correction item-script of many items/combo from bAddClass,Class_All to bAtkRate according to official sources.

Co-authored-by: Daegaladh <4557962+Daegaladh@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Jittapan Pluemsumran <nightsheep@outlook.com>
2022-07-21 16:29:42 +07:00
Aleos
78b4f4420d
Fixes AddEffWhenHit not triggering Magic or Misc (#5628)
* Fixes #5623.
* Fixes an issue with AddEffWhenHit not triggering on Magic or Misc type attacks.
Thanks to @24msz6eo and @Atemo!
2022-07-18 13:46:41 -04:00
eppc0330
85454cc7ae
Minor change of TF_BACKSLIDING behavior (#7094)
Fix Backsliding blow only when a character is moved by the skill.

If wall is placed behind the character, skill will show casting animation.

Thanks to @Haydrich!
2022-07-17 06:57:38 +07: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
Daegaladh
eff452fa35
Fixed intimacy reduction for Vanilmirth Self-destruction and S.B.R.44 (#6400)
* Fixed homun intimacy reduction for S.B.R.44 and Self-destruction

* Self-destruction must lower intimacy even if doesn't hit any enemies

* Fixed intimacy for SBR44

* Added extra checks as suggested by @aleos89

Thanks to @Daraen1, @Lemongrass3110 and @aleos89!

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-06-16 18:59:02 +02: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
Aleos
038c1778e1
Player skills no longer proc equip break on mobs (#7005)
* Fixes #5906.
* Player skills and items that have the ability to break a target's equipment will no longer "break" a non-player's equipment.
* WS_MELTDOWN (Shattering Strike) is able to bypass the non-player check as it does affect all target types.
* Adds a battle config to toggle the behavior.
Thanks to @Tydus1, @Xelliekins, @Atemo, @Daegaladh, and @Lemongrass3110!
2022-06-06 10:42:42 -04:00
Aleos
4aba94ca01
Updates Poisonous Smoke behavior (#6263)
* Fixes #6199.
* Adjusts the interval to every 2 seconds.
* Adjusts the success rate to 50%.
* Fixes the Poison Weapon effect not applying the 'enemy' status to those inside of Poisonous Smoke.
* Venom Bleed should only be active for 15 seconds, not 5 minutes like the rest of the poisons.
* Pyrexia will now cancel skill cast on each damage input.
Thanks to @Everade!
2022-06-01 14:27:23 -04:00
Playtester
cfa9776a28
Fixed Grand Cross and Grand Darkness (#6927)
- Fixes #6647 (b)
- Related to #1140
- Follow-up to ce4aed2
- Re-implemented Grand Cross / Grand Darkness
- Both skills can hit up to 4 times
- Each cell of both skills will stop dealing damage if it dealt damage at least 3 times
- The interval is now fixed to 300ms regardless of how many targets are on a single cell
2022-05-09 19:14:48 +02:00
Playtester
5ec5f4891c
Fixed status change chance from items being too high (#6907)
- Fixes #6906
- Chance was too high by factor 100
2022-05-01 09:30:41 +02:00
Aleos
3b9c28aa46
Minor SC_STONEWAIT fixes (#6892)
* The SC_STONEWAIT status should not be applicable to the Undead element.
* Fixes the overall duration for SC_STONEWAIT and SC_STONE because of incorrect order of resistance application.
* Adds the delay parameter to sc_start functions since some statuses, if not most, have a delay of some sort before being applied to a target.
* Swaps the duration values for Stone Curse related skills.
Thanks to @Playtester!
2022-04-27 12:40:38 -04:00
Aleos
d617d9f083
Updates SC_CHANGEUNDEAD behavior (#6867)
* Fixes #6834.
* Versus Players
- Animation will be properly displayed for Blessing/Increase Agility when the target has Change Undead active (buffs are not applied even though animation is displayed).
- Target can no longer be killed through the single damage applied by Blessing/Increase Agility and Change Undead.
- If the target has Curse and Stone active, only Curse is removed by Blessing first (buffs are not applied).
- Shadow or Undead armor have no impact on Blessing or Increase Agility at all.
* Versus Monsters
- Blessing is applied normally to the target as long as it's not an Undead element or Demon race.
- Blessing does not cancel out Curse or Stone.
Thanks to @Playtester!
2022-04-22 11:46:28 -04:00
Aleos
53bc2376a6
Updates stacking for common statuses (#6807)
* Fixes #6798.
* Updates the Fail, End, and EndReturn lists for OPT1 and OPT2 statuses.
* Removes the hardcoded OPT1 overwrite prevention check.
* OPT1 that have RemoveOnDamaged flag should not get applied again in the same attack.
* Fixes Stone status not properly being inflicted by the bAddEff, bAddEff2, bAddEffWhenHit, and bAddEffOnSkill item bonuses.
* Fixes Stone status not properly being inflicted by The Hanged Man from Tarot Card of Fate.
Thanks to @Playtester!
2022-04-21 09:31:27 -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
Playtester
da93c190c5
Correct Implementation of NPC_CHANGEUNDEAD (#6837)
- Fixes #6832
- NPC_CHANGEUNDEAD is now a single target attack skill
- 100% physical, undead property damage
- When it deals damage, 10%*skill_lv chance to cause SC_CHANGEUNDEAD for 60 seconds
- Skill range is 2
- All NPC status skills now have 120% hit rate
2022-04-15 09:00:53 +02:00
Aleos
cee161e677
Implements SC_STONEWAIT (#6794)
* Fixes #6748.
* Implements SC_STONEWAIT to be used with OPT1_STONEWAIT.
* Removes a lot of hard coded OPT1_STONE checks now that the two states are split to their own statuses.
* Fixes SC_STONE not ending when the target receives damage.
* Fixes SC_STONE getting overwritten by other statuses the have OPT1 states.
* SC_STONE should damage the target by 1% of MaxHP, not CurrentHP.
* All skills that give StoneWait aside from Stone Curse are 100ms.
* Confirmed that Sienna Execrate is 8 + 2 * SkillLv seconds of Stone.
* Moves Provoke and Mind Breaker status clearings to the status database.
* Converts EndReturn in the status database from a boolean to a list of statuses. Statuses defined in this list will be ended and then the status making the call will not take affect.
Thanks to @Singe-Horizontal, @Playtester, and @Lemongrass3110!
2022-04-08 13:16:18 -04:00
CairoLee
3b47defa35
Fixed ItemCost is invalid when specified level (#6796)
* Fixed #6573.
* Fixes ItemCost being invalid when specifying level.
Thanks to @dimasshotta and @CairoLee!
2022-04-08 11:26:38 -04:00
Aleos
41da8646ff
Fixes an issue with Joint Beat resistance (#6805)
* Follow up to cb2c553.
* Fixes a math error in the status resistance and duration for Joint Beat.
Thanks to @Tokeiburu and @Playtester!
2022-04-07 14:41:15 -04:00
Aleos
2993c0baa6
Updates the status resistances for renewal (#6764)
* Fixes #4694.
* Updates the status resistance formulas for several of the common statuses.
* Updates a few skills to their appropriate durations.
* When the caster is a higher base level, some statuses now take this difference into effect.
* Item resistances are also applied to the duration.
* Fixes Chaos Panic not reading the skill database duration.
* Points Bash's Stun duration to itself and not Fatal Blow.
* Adjusts SC_CURSE to look up the duration from NPC_WIDECURSE as it's set to the the default 18 seconds.
* Burning will fail if the target is under the effect of White Imprison.
* Burning will fail on level 2 Fire targets.
Thanks to @Playtester!
2022-04-06 10:53:32 -04:00
Aleos
436e5a6f7d
Fixes SQL mob database parsing (#6789)
* Fixes #6787.
* Resolves the SQL monster database not being properly parsed into YAML nodes.
* Also resolves the skill database improperly reporting issues.
Thanks to @L4M3573R and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-04-03 19:14:00 -04:00
Playtester
5df808d5fd Restored chance of NPC_PETRIFYATTACK, see issue #1811 2022-04-03 23:24:05 +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
Aleos
47cb6dc637
Minor corrections to Break Through (#5917)
* Fixes the attack bonus not properly applying to masteries.
* Fixes the healing bonus not increasing per skill level learned.
2022-04-02 08:19:28 -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
Lemongrass3110
db540124ad
Fixed some LGTM warnings (#6767)
Co-authored-by: aleos <aleos89@users.noreply.github.com>
2022-03-31 22:20:17 +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
Aleos
aebf99c32b
Fixes Reading Spellbook behavior (#6711)
* Fixes #6705.
* Comet should now give the target Magic Poison instead of Burning.
* Confirmed on kRO that Reading Spellbook persists through relog but not death.
* Converts the Reading Spellbook function to use by reference.
* Removed some left over content from the YAML database conversion.
Thanks to @Relliksuriv!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-03-29 10:55:54 -04:00
Aleos
0323aa37c8
Adds INF2_ISTOGGLEABLE skill flag (#6737)
* Adds the INF2_ISTOGGLEABLE skill flag which is used to enable or disable a skill's status. When toggled off the skill doesn't consume HP/SP.
Thanks to @Lemongrass3110!
2022-03-24 12:50:02 -04:00
Aleos
7c275f3130
Updates Quest skills from kRO patch (#6736)
* Fixes #6732.
* kRO Changelog: https://ro.gnjoy.com/news/notice/View.asp?BBSMode=10001&seq=7177&curpage=1
Thanks to @Atemo, @attackjom, and @Lemongrass3110!
2022-03-24 12:31:56 -04:00
Aleos
302168d1f3
Fixes SCB calculations (#6733)
Follow up to d739e8f.
Resolves issues with status calculations getting improperly checked.
Thanks to @mazvi, @kaninhot004, and @Rayvakarian!
2022-03-23 10:40:35 +01:00