* 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
Adds a new script command for itemlink generation for usage inside NPC dialogs (mes "").
A few cleanups related to the normal itemlink feature.
Thanks to @Atemo and @aleos89 for their help!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
* Implemented NPC_BLEEDING2
Copy from NPC_BLEEDING for now except
* element always Neutral
* differents rates
* Implemented NPC_HELLJUDGEMENT2
Copy from NPC_HELLJUDGEMENT except
* element neutral
* skills inflicts a random status effect
* Implemented NPC_WIDEFREEZE2
Copy from NPC_WIDEFREEZE
* Implemented NPC_ICEBREATH2
Copy from NPC_ICEBREATH except
* Chance 100% instead of 70%
* Splash area 4 instead of 3
* Implemented NPC_WIDEBLEEDING2
Copy from NPC_WIDEBLEEDING
* Implemented NPC_WIDECONFUSE2
Copy from NPC_WIDECONFUSE
* Implemented NPC_WIDESILENCE2
Copy from NPC_WIDESILENCE
* Implemented NPC_WIDESTUN2
Copy from NPC_WIDESTUN
* Implemented NPC_WIDESILENCE2
Copy from NPC_WIDESILENCE
* Implemented NPC_WIDESLEEP2
Copy from NPC_WIDESLEEP
* Implemented NPC_WIDECURSE2
Copy from NPC_WIDECURSE
* Implemented NPC_WIDESTONE2
Copy from NPC_WIDESTONE
Thanks to @OptimusM, @Lemongrass3110, @aleos89 !
Introduces the cashmall
Added Cachua_Coupon exchange NPC
Enabled Devil Enchant Master and moved to Cash Mall
Moved Mergician
Added Basta, Mighty Hammer and Brock
Moved Shadow Blacksmith
Added Cash Hair Stylist
Added a feature switch for Stylist UI
Updated Hair Stylist
Thanks to @aleos89, @Atemo and @eppc0330!
Co-authored-by: aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Adjusts the minimum respawn time of a monster to be 1 second as it is officially.
* Adds a battle config to allow for easy adjustment.
* Monsters that don't define a delay1 for permanent spawn scripts are defaulted to 5 seconds.
Thanks to @mrjnumber1, @vstumpf, @Lemongrass3110, and @Atemo!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* 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
* 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!
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!
* Max Pain will deal reflect damage to all characters on screen.
* Caster of Max Pain will get damaged.
* Max Pain will reflect both weapon and magic damage.
* Max Pain damages as special physical melee attack. PR_KYRIE, MG_SAFETYWALL, etc. can block the damage.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
* 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>
* Fixes#7248.
* Resolves an issue where skills defined in the Skill Damage Database would always reflect at least 1 damage even when no reflective gear or skills are active.
Thanks to @dev1-juan!
* Fixes#7256.
* Adds battle config guild_skill_relog_type to allow the ability to save Guild Skill cooldowns on relog or reset them.
* Adjusts the check to account for any new Guild Skills.
Thanks to @Xypr0 and @Lemongrass3110!
* If the target is dead, break out of the remaining checks and calculations.
Thanks to @Lemongrass3110!
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
* 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>
* 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.
* Fixes#7143.
* Resolves an issue where Dragon Breath, Dragon Breath - Water, Cart Cannon, and Arms Cannon were not properly reducing damage based on the target's defense.
Thanks to @LadyNanuia, @Lemongrass3110, @attackjom!
* 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!
* 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.
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>
* 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!
* Fixes#6886.
* Weapon Blocking is able to trigger on missed attacks.
* Weapon Blocking can still be triggered even if the target has Kyrie, Safety Wall, or other damage nullification statuses.
Thanks to @Atemo!
* Fixes#4455 and fixes#6274.
* Reflected damage will now take into account if a skill has a modified damage ratio from skill_damage_db.
* Includes the GvG, Battlegrounds, and PK damage config adjustments as well.
Thanks to @cydh and @imaqtdan!
* Poisoning Weapon will now only increase the caster's short weapon damage.
* Pyrexia will now only increase the caster's critical damage and normal attack damage.
Thanks to @eppc0330!
* 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!
* 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!
* Fixes#6524.
* Finger Offensive will now have 5 hits across all levels.
* Fixes the HP bonus damage formula of Tiger Cannon.
Thanks to @Akaineko-astasi!
* 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!
- Fixes#6884
- Updated skill ranges of NPC and Homunculus skills to their official values
- Implemented the official skill selection mechanic where when a mob picks a skill but can't cast it due to range, it will not check for any skills below
- Added a configuration to reset this to the previous behavior
- Fixes#6899
- Monsters will now always walk to the end of their chase path before checking for their target again (you can still change this by changing monster_chase_refresh in monster.conf)
- A monster's chase range is now exactly as defined in mob_db.yml except when it was just attacked
- A just-attacked monster's chase range is now only enhanced until it reaches its original target cell
- Ranged monsters will now always stop when their target is in attack range, even if they still have attack delay
- Fixed a small math error when calculating chase path
- When a monster loses its target, it will now always spread to an empty cell when it was chasing something and reaches the end of its chase path, but will no longer spread when it was already attacking the target that disappeared (it will still spread if you set the custom mob_ai setting for this)
- Fixed monsters not starting to chase a target while they are randomly walking
Thanks to @aleos89 for support.
* Kihop now applies physical damage bonus directly no longer depending on the number of party members. Physical damage bonus: (10 + (15 x skill level))%.
* Catnip Meteor:
- Reduces fixed casting time from 3 seconds to 1.5 seconds.
- Reduces variable casting time from 4 seconds to 2 seconds.
- From base level 100, deals additional damage depending on the user's base level and INT.
- Adjusts splash to 7x7 for all levels.
* Lunatic Carrot Beat now deals additional damage (from base level 100) depending on user's base level and STR.
- 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
* Fixed Pre-Re SoftDEF Formula
* Fixes#6648
Note: This does not fix the order of processing which is also wrong, but at least the damage is official now in 1vs1 combat when if no item bonuses or status changes are involved that directly impact DEF.