* First hit damage: [450 + 50 * skill_lv]%, 90& causing Stun.
* Damage iteration: [800 + 200 * skill_lv] in every 0.5 second for 5 seconds, has chance to inflict Burning efect.
* Thanks to @reigneil and Rytech
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Translated the Kagerou/Oboro skill names in the skill_db.
* Added Critical Food type for newer items.
* Water Barrier should only reduce Weapon ATK and Flee.
* Illusion - Bewitch should not be able to move MVPs.
* Spider Web will no longer be deleted when the target escapes from it. (bugreport:1358)
* Adjusted Absorb Spirits to work in duels. (bugreport:4085)
* Clementia, Canto Candidus, and Praefatio will now cast on the party even if someone is wearing a Holy-type armor. (bugreport:6835)
* Masquerade - Gloomy will now remove a Homunculus who have less than 80% HP. (bugreport:8886)
* Players under the effect of Illusion - Shock will now be able to move and attack. (bugreport:8903)
* Deadly Infection should only pass Guillotine Cross poisons through the Shadow Chaser's attacks only. (bugreport:8968)
* Unlimit now gives the proper statuses when reducing DEF and MDEF. (bugreport:9181)
* Water Screen will now heal 1,000 HP every 10 seconds. (bugreport:9184)
* Tinder Breaker will now properly lock targets. (bugreport:9202)
* Corrected Weapon Blocking SP drain timer from every 3 seconds to 5 seconds. Moved Combo timer to skill_cast_db. (bugreport:9203)
* Players under the influence of Kaite will receive a flat 400% more damage from melee attacks (renewal only). (bugreport:9231)
* Release will now check the preserved skill's SP requirement before releasing. (bugreport:9333)
* Fixes#417 - Charge Attack has a range of 14 cells and can do up to 500% damage.
* Fixes#419 - Magnum Break should not hit hidden targets.
* Fixes#421 - Tension Relax should only increase healing at 1x rate when overweight and 3x when not overweight. Also corrected icon getting removed after a few seconds while sitting.
* Fixes#427 - Auto Guard will force a player to stand when being targeted to avoid client desync.
* Fixes#436 - Corrected Super Novice Spirit not allowing any headgear to be equipped.
* Fixes#438 - Soul Linker's Rebirth Spirit should have a fixed cast of 1 second.
* Fixed#274 Castling (HAMI_CASTLE) makes a whole area attack you!
- Changed skill_changetarget to unit_changetarget
- Also fixed the validation before switching the bl's attacking target from current src to new target.
* Fixed#371, missing entry for Solid Skin (EL_SOLID_SKIN) in skill_cast_db.txt, causing the skill gives effect only for a ms.
* Follow up f19e2dc6 `pc_mapid2jobid` gives wrong value and revert `JOBL_SUPER_NOVICE` flag that was introduced in 82561947.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Fixed#273 - Keeping should end before mob status recalculation when changing class.
* Fixed#324 - BaseJob will now return the correct ID for Super Novice type classes.
* Fixed#357 - Cross Slash should work with 2 daggers, Huuma type weapons, or a dagger + shield.
* Fixed#370 - Corrected a few things with Devotion range checks.
* Corrected the skill fail message that displays when players have no bullets.
* Corrected Howling of Mandragora's duration.
* Updated Kunai Explosion damage.
* Added missing 20% damage reduction for Water Barrier.
* Mado License attack bonus is granted even without Madogear.
* Follow up 46f010cb, cleaned up skill fail checks on `skill_castend_id`. This is should fixed#385
* Fixed#395, changed `mode` field for monster from `smallint` to `int`. Thank @LyndisRain
* Fixed#391, added `0` in fixed cast time field for SM_SELFPROVOKE. Thank @DriwFS
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Fixed#274 Castling (HAMI_CASTLE) makes a whole area attack you!
* Changed `skill_changetarget` to `unit_changetarget`, also fixed the validation before switching the `bl`'s attacking target from current `src` to new `target`.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Fixed#376, status def for Voice of Siren effect (WM_VOICEOFSIREN) is calculated twice
* Fixed SC_DEEPSLEEP effect from Deep Sleep Lullaby (WM_LULLABY_DEEPSLEEP) and Arrullo (SO_ARRULLO)
* WM_VOICEOFSIREN & WM_LULLABY_DEEPSLEEP give effect for all targets except self
* Typos
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Replacing 'rand()' leftwover with 'rnd()' of mt19937ar
* Cleaned up script commands related with item group: 'groupranditem', 'getrandgroupitem', 'getgroupitem'
* Corrected item scripts that are using 'getrandgroupitem'
* Updated script command and item group doc
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Somehow failed to get 'caster' status for calculation.
* A little cleanup for `SC_GT_ENERGYGAIN`, `SC_GT_CHANGE`, & `SC_GT_REVITALIZE` which don't need `bl->id` as `val2`. Caster is `src`, target is `bl`. (Was assumed `val2` to get caster status? `if (src2 = map_id2bl(val2))` but `bl` was target on skill_castend_nodamage_id.
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Fixed#119 - Corrected Flash Combo weapon ATK and to cancel skill cast when target is more than 2 cells away.
* Fixed#148 - Corrected Kings Grace to only cast on guild members in versus type maps and added missing effects. Updated cooldown from 60 to 90 seconds.
* Fixed#341 - Offertorium and Magnificat now cancel each other out (Mimics Kyrie Eleison and Assumptio).
* Follow up to 5a0f8dc. Added missing monster transformation bonuses.
* Updated the Status Icon list with newer icons.
* #331: Fixed Auto Shadow Spell always failed, 9d3d34205fdb424e4a9281c3e6a951a1f0cdbdc1 fault
* #340: Phantom Thrust can be used to pull a party member
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Fixed#167 - Dragon Breath burning chance is now 15% for all levels. Also corrected damage calculation. Thanks to @exneval.
* Fixed#270 - Cleaned up Reverberation and how it's triggered.
* Fixed#321 - Follow up to 1b6be4e. Fixed MATK calculation for for all player, monster, homunculus, mercenary, etc.
* Fixed#332 - Camouflage now hides player from targeting skills. Added missing DEF/DEF2 bonus.
* Fixed#335 - Check to make sure script has data before trying to free null values.
* Fixed Full Throttle SP drain amount and movement speed increase value. Updated cooldown value to 30 minutes.
* Fixed Bloody Lust skill type from magic to none.
* Fixed Mix Cooking, Make Bomb, Special Pharmacy, Change Material, and Rune Mastery success and fail animations.
* Cleaned up some more compile warnings.
* Fixed#145 - Corrected the duration of Frigg's Song ending too quickly.
* Fixed#202 - Added damage bonus for Rifle when using Piercing Shot (renewal).
* Fixed#257 - Adjusted get_status() in athena-start to return the correct string.
* Fixed#272 - Blood Lust not leeching HP from target.
* Fixed#298 - Corrected the renewal calculation of ATK and ASPD for Homunculus.
* Fixed#309 and #313 - Cleaned up warnings during compile.
* Fixed#321 - Monsters not calculating MATK at spawn (renewal).
* Added missing renewal calculations for Mercenary.
* Moved out intimacy required to evo the homun to conf/battle/homunc.conf: 'homunculus_evo_intimacy_need'
* Moved out intimacy reset after evo the homun to conf/battle/homunc.conf: 'homunculus_evo_intimacy_reset'
* Follow up eca4fa0e38c060c0f9918d11899ee00d099a16f7, missed the '/100' for intimacy info.
* Corrected intimacy set after using skill 'HVAN_EXPLOSION' to 1 (100, Hate with passion) instead of 2 (200, is for HFLI_SBR44)
* Init 'hardcoded' homunculus intimacy grade tables for some lookups
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Changed skill_db array to better memory allocation.
* Reduced MAX_SKILL_LEVEL from 100 to 10 (part of Hercules 0f4a50d135), also has changes on skill_get checks for skill level that more than 10.
* Reduced MAX_SKILL from 5020 to 1200 (actually only 1109 skills are used).
* Added macros for checking Homunculus, Guild, Mercenary, & Elemental skill ranges.
* Added skill check & index validation when player logged in and when @reloadskilldb.
* Corrected `enum e_skill_flag` order for SKILL_FLAG_REPLACED_LV_0's sake.
* Merged 'addtoskill' script command just as alias of 'skill' script command.
* Fixed#277
* Changed 'skill' script command flag to constant value
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
NOTE:
* Decreased memory usage by map-server reduced up to 50 MB.
* Decreased memory for each player because of mmo_charstatus::skill[] only has 1200 array, before is 5020.
* Please use skill_get_index() for accessing sd->status.skill[] or skill_db[], don't reckless use skill_id as array index.
* Please import upgrade_20150211_skillset.sql
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Fixed Severe Rainstorm not being able to be copied by Reproduce. (bugreport:9361)
* Fixed#137 - Updated Homunculus S Race and Element values to official.
* Fixed#163 - Proper renewal calculations for Homunculus. Merge from HerculesWS/Hercules@8faef4f
* Fixed#254 - Corrected King's Grace cooldown to be 60 seconds.
* +20 Foods cannot be dispelled or removed by death.
Skill array clean up
- Changed skill_db array to better memory allocation.
- Reduced MAX_SKILL_LEVEL from 100 to 10 (part of Hercules HerculesWS/Hercules@0f4a50d), also has changes on skill_get checks for skill levels greater than 10.
- Reduced MAX_SKILL from 5020 to 1200 (only 1109 skills are used).
- Added macros for checking Homunculus, Guild, Mercenary, and Elemental skill ranges.
- Added skill check and index validation when player logs in and on use of @reloadskilldb.
- Corrected enum e_skill_flag order for SKILL_FLAG_REPLACED_LV_0's sake.
- Merged 'addtoskill' script command just as alias of 'skill' script command.
Summary:
- Decreased memory usage by map-server up to 50 MB.
- Decreased memory for each player because of mmo_charstatus::skill[] array size from 5020 to 1200.
- Please use skill_get_index() for accessing sd->status.skill[] or skill_db[], don't recklessly use skill_id as array index.
NOTE:
- Please import upgrade_20150131_skillset.sql
* Changed skill_db array to better memory allocation.
* Reduced MAX_SKILL_LEVEL from 100 to 10 (part of Hercules 0f4a50d135), also has changes on skill_get checks for skill level that more than 10.
* Reduced MAX_SKILL from 5020 to 1200 (actually only 1109 skills are used).
* Added macros for checking Homunculus, Guild, Mercenary, & Elemental skill ranges.
* Added skill check & index validation when player logged in and when @reloadskilldb.
* Corrected `enum e_skill_flag` order for SKILL_FLAG_REPLACED_LV_0's sake.
* Merged 'addtoskill' script command just as alias of 'skill' script command.
Summary:
* Decreased memory usage by map-server reduced up to 50 MB.
* Decreased memory for each player because of mmo_charstatus::skill[] only has 1200 array, before is 5020.
* Please use skill_get_index() for accessing sd->status.skill[] or skill_db[], don't reckless use skill_id as array index.
NOTE:
* Please import upgrade_20150131_skillset.sql
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
Straight up copied the code from Pyroclastic, as the original skill code for Light of Regen was not applying the status effect to the player. Seems to work just fine, not sure if that second sc_start2 can just be deleted.
* Implemented ALL_REVERSEORCISH as follow up 01ae1ae6126dc8aa91f967eea7d145e10dfb29e3.
* Clean up `rand()` script usage in Fools_Day_Box (12396) and Fools_Day_Box2 (12397).
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Separated pet_db for Renewal & Pre-Renewal to avoid non-existant monster in different mode.
* Cleaned script command in pet_db.txt file, just point it to doc/script_commands.txt. Read them there!
* Separated damage value for petskillattack2 to its own var 'damage', that previously use 'lv' var to store the value.
* Added config 'pet_ignore_infinite_def' in conf/battle/pet.conf,
- If disabled (val:"no"), fixed damage from pet script 'petskillattack2' will be adjusted to 1. Example, just like player attacks Shining Plant.
- Enabled by default. Previously, fixed damage ignore the infinite defense, that's why it's enabled by default.
- TODO: Correcting the logic and maybe also confirm the correct behavior!
* Added validation for pet script commands,
- Skill for petskillattack, petskillattack2, & petskillsupport
- SC range for petrecovery.
* Cleaned up some source documentation.
* SC_FIGHTINGSPIRIT gives no effect for RK_FIGHTINGSPIRIT level < 10
* Fixed RK_FIGHTINGSPIRIT gives no effect if level < 5
* Little optimization on RK_FIGHTINGSPIRIT codes
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Separated pet_db for Renewal & Pre-Renewal to avoid non-existant monster in different mode.
* Cleaned script command in pet_db.txt file, just point it to doc/script_commands.txt. Read them there!
* Separated damage value for petskillattack2 to its own var 'damage', that previously use 'lv' var to store the value.
* Added config 'pet_ignore_infinite_def' in conf/battle/pet.conf,
* If disabled (val:"no"), fixed damage from pet script 'petskillattack2' will be adjusted to 1. Example, just like player attacks Shining Plant.
* Enabled by default. Previously, fixed damage ignore the infinite defense, that's why it's enabled by default.
* TODO: Correcting the logic and maybe also confirm the correct behavior!
* Added validation for pet script commands,
* Skill for petskillattack, petskillattack2, & petskillsupport
* SC range for petrecovery.
* Cleaned up some source documentation.
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* re-Disabled the ADJUST_SKILL_DAMAGE by default (core.h) that enabled by accident since 794c1a8. :P
* Removed MAX_MAP_SKILL_MODIFIER variable.
* Removed fixed array for skill damage adjustment in each map.
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
Align account_id and char_id to uint32 as this is the value they can be
in DB.
Remove src/test folder, unused
Remove useless #include to speedup compilation.
Clean up something RENEWAL_CAST
* Moved additive bonuses (reducing/increasing) to first calculation before the rate adjustment
* Corrected `bonus(2) bFixedCastrate` shouldn't be stacked. Example between Puente_Robe (15012) is -3% and +10 Rafini_Staff (1649) is -10%, only -10% will be used not -13%.
* Reversed some value assignment, `-=` to `+=` and other part that affected by this change.
* Also as follow up c3e488e & 4f4d8fe, fixed `bonus2 bFixedCastrate,"sk",rate;` algorithm
* Corrected `bFixedCastrate` for Krieger_Knuckle2 (1827) only for skill `MO_EXTREMITYFIST`
* Moved default the 20% of fixed cast rate to conf/battle/skill.conf `default_fixed_castrate`