295 Commits

Author SHA1 Message Date
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
Aleos
33a99b5993
Fixes reflected damage from overflowing (#6717)
* Fixes #6693.
* Reflected damage should never be negative.
* Reflect Damage no longer has a 'reflect counter'.
* Reflect Damage is removed on log out.
* Reflect Damage Reduction should only reduce in normal cases (outside of WoE/BG).
* Adjusts the variable names to better match their use.
* General cleanups to speed up certain scenarios.
Thanks to @kaninhot004 and @Lemongrass3110's review!
2022-05-19 12:24:34 -04:00
Aleos
f1b181ec9c
Removes SCF_OVERLAPFAIL in favor of Fail list (#6865)
* Removes the SCF_OVERLAPFAIL status flag in favor of adding the status to the Fail list.
* Confirmed that Burning does renew itself.
2022-05-17 16:45:07 -04: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
Playtester
b25fda1370
Added HP/SP bonus from VIT/INT equips (#6914)
- Fixes #6911
- Each VIT on an equipment gives an additional +1 MaxHP
- Each INT on an equipment gives an additional +1 MaxSP
- Bonus is applied before % equip bonus
- Only applies for VIT/INT bonus directly on an equipment, but not for cards
- Replaced some hard-coded values with constants

Special thanks to @aleos89 and @secretdataz
2022-05-03 09:42:49 +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
Lemongrass3110
b42dbe4a9f
Fixed RES/MRES for players (#6857)
* Fixes #6841.
Co-authored-by: Playtester <Kenji.lto@gmx.de>
2022-04-22 09:42:00 -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
1a7a26bc39
Added speed bonus to Serenade of Jawaii (#6842) 2022-04-17 21:32:27 +02:00
Aleos
f083caf28d
Fixes Status Database All CalcFlag (#6826)
* Fixes #6812.
* Resolves an issue with the All CalcFlag not properly being parsed for the Status Database resulting in these statuses not starting and ending the bonuses.
Thanks to @eppc0330!
2022-04-13 13:37:40 -04: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
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
a7ee51da7d
Fixes statuses with SCB_ALL not recalculating (#6793)
* Fixes #6784.
* Adds a missing call for statuses that give the "All" CalcFlags.
Thanks to @eppc0330!
2022-04-04 11:03:21 -04: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
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
Atemo
de990f71ad
Fixes mobs res/mres always 0 (#6760)
Fixes an issue where status_calc_misc resets the value of res/mres (potentially defined in mob_db.yml) to 0.

Thanks to @limitro !
2022-03-29 22:47:45 +02: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
5a7d2dc2a1
Fixes remaining status calculation flag issues (#6740)
* Follow up to d739e8f and 302168d.
* Resolves the status_calc_bl_main call not properly assigning any sub status calculation effects based on any primary stat changes.
Thanks to @Singe-Horizontal!
2022-03-24 11:54:33 -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
Aleos
bf3b12bc3d
Fixes NoWalkDelay item bonus (#6707)
* Fixes #6636.
* Resolves an issue with NoWalkDelay being checked too late and not properly giving the bonus to the player.
Thanks to @iraciz!
2022-03-17 14:36:50 -04:00
Lemongrass3110
5193fd6c92
Fixed some status related issues (#6702)
Fixed stone curse not ending
Fixed SR_GENTLETOUCH_CURE not being able to cure poison, silence and blind
Cleaned up SR_GENTLETOUCH_CURE formula
Fixed casting SR_GENTLETOUCH_CURE on self during status change
Added missing NoMove state to PF_SPIDERWEB
Fixed GN_HELLS_PLANT being removed on mapchange

Fixes #6701

Thanks to @mazvi
2022-03-17 15:05:35 +01:00
Lemongrass3110
79d978e010
Cleanup for some Soul Reaper skills (#6700) 2022-03-16 21:54:12 +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
Aleos
d739e8f44e
Converts the SCB flags to bitset (#6661) 2022-03-16 15:59:23 -04:00
Lemongrass3110
a62859fdb0
Fixed soul linking (#6697)
Fixes #6696

Thanks to @mazvi and @aleos89
2022-03-16 16:46:48 +01:00
Aleos
6787f68452
Expands the SC start check (#6690) 2022-03-15 17:15:01 -04:00
Singe Horizontal
4ef2f33284
Fixes Can't attack when casting is disabled (#6687)
* Fixes #6686.
* Expands upon the status checks to allow physical attacks when casting is disabled.
2022-03-15 14:22:02 -04:00
Singe Horizontal
25212bf8b9
Fixes Mounted characters immune to freeze/stone (#6689)
* Fixes #6688.
* Adds a missing break.
2022-03-15 10:34:30 -04:00
Lemongrass3110
213406013d
Fixed EFST initialization (#6683)
Fixes #6675

Thanks to @jofvgaming, @Singe-Horizontal, @secretdataz and @aleos89.
2022-03-14 23:15:34 +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
a8e516730a
Fixes Tuna Belly and Shrimp Party behaviors (#6616)
* Fixes #6611.
* Resolves an issue with Tuna Belly not sending the visual update to healed players.
* Resolves Shrimp Party SP recovery not increasing the heal rate.
Thanks to @Balferian!
2022-02-15 09:49:33 -05:00
Aleos
3deb3e2048
Updates Golden Thief Bug card behavior (#6562)
* Fixes #5918.
* Target magic skills should get blocked even when cast on self.
* Self magic skills should get blocked on all targets except self.
* Adds an IgnoreGtb skill flag to explicitly allow a skill to bypass these checks.
Thanks to @Playtester!
2022-02-01 15:53:27 -05:00
Atemo
c8d1d1ea1e
Converted item_combo_db txt to yml (#6162)
* Converts item_combo_db.txt into YAML.
* Includes CSV2YAML converter.

Thanks to @llchrisll and @Everade 

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-01-11 20:33:27 +00: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
Lemongrass3110
081b5c86bd
Cleanup as follow up to a205287 (#6377)
Removes unused constants
Cleans up some wrong usages of e_mode
Cleans up a mistake introduced in 62a2813a
Fixed a mismatching header
2021-12-05 22:34:52 +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
Atemo
424e05d8f7
Implemented some NPC skills (#6343)
* Implemented NPC_CHEAL
* NPC_MILLENNIUMSHIELD
* NPC_STORMGUST2
* NPC_ARROWSTORM
* NPC_DRAGONBREATH
* NPC_WIDEWEB
* NPC_REVERBERATION
* NPC_COMET
* NPC_VENOMIMPRESS
* NPC_SR_CURSEDCIRCLE
* NPC_DARKPIERCING
* NPC_FATALMENACE
* NPC_PSYCHIC_WAVE
* NPC_DRAGONBREATH
* NPC_MAGMA_ERUPTION
* NPC_RAYOFGENESIS
* Uncommented NPC_LEX_AETERNA skills in mob_skill_db.txt
* NPC_MANDRAGORA
* NPC_DANCINGBLADE
* Uncommented NPC_DARKPIERCING
* NPC_PULSESTRIKE2

Thanks to @attackjom and @Lemongrass3110 !
2021-11-21 18:24:55 +01:00
Aleos
6bc0dff20d
Converts Job databases to YAML (#4759)
* Converts the job_db, job_db2, job_basehpsp_db, job_exp, and job_param_db to YAML.
* Optimizes several places utilizing C++ features.
* Removes 3rd class job data from pre-renewal.
* Adds minimal support for 4th jobs.
* Job level bonus stats now supports multiple bonuses per level as well as an integer for the specific stat instead of only being limited to 1.
* Includes CSV2YAML converter.
Thanks to @Lemongrass3110, @Atemo, @Balferian, @attackjom, @dimasshotta!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2021-11-17 16:13:07 -05:00
Atemo
5933ab8304
Temple of the demon god instance (#5611)
* Implemented Temple of the Demong God instance
Implemented the skills NPC_WIDEWEB, NPC_WIDESUCK and NPC_FIRESTORM from https://github.com/idathena/trunk
Credit to @exneval

Thanks to @Badarosk0 @idk-whoami @Everade @aleos89
2021-10-26 18:21:12 +00:00
Lemongrass3110
04d9e33112
Added new refine information (#6298)
Added the refine information for weapon level 5 and armor level 2.
Added the event refine information for weapon level 5 and armor level 2 to the import template.
Additionally added TODOs for missing bonuses that will be added later on.

Thanks to @Phaicm and @Balferian for their help.
2021-10-10 11:52:15 +02:00
Lemongrass3110
d54076d2f6
Added some additional SP heal bonuses (#6292)
Fixes #6076

Thanks to @idk-whoami and @Atemo
2021-10-10 11:17:41 +02:00
Lemongrass3110
c4df5caa00
Added support for level 2 armors (#6251)
Thanks to @Atemo and @aleos89 for their help.

Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2021-10-06 16:57:25 +02:00
Aleos
e8da0c0d44
Fixes skill aftercast delay (#6240)
* Fixes #6232.
* Follow up to 9e4dc7d.
* Fixes the aftercast delay of skills so that status and item bonuses properly stack before calculating the final result.
* bSkillDelay should add directly to the time and not be included in the rate formula.
Thanks to @AsurielRO!
2021-09-27 10:00:40 -04:00
Lemongrass3110
373d724bdf Follow up to df7ccca 2021-09-20 20:40:57 +02:00
Jittapan Pluemsumran
c410caecdf
Fixed opt_flag collision in status_change_end. Fixes #6192 (#6262)
The issue caused skills in skill tree to disappear in some circumstances.

Thanks to @hnomkeng for the report and @Lelouzh for the help in testing and discovering the cause of this bug

Co-authored-by: Lelouzh <lelouzh@lelouzh.com>
2021-09-20 21:41:52 +07:00