* Upgraded the script engine variables to no longer be limited.
* Increased array limit from 127 to 2 billion.
* Improvement in overall speed and storage size.
* All variable types now support arrays.
- Merge from HerculesWS/Hercules@82b583b. Thanks to those who worked on it.
* Fixed#445, fixed Health Conversion cast time & cooldown.
* Fixed#404:
* Added new item bonus `bonus2 bSubDefEle,e,x;` to reduce x% damage received from monster with element e.
* Fixed item script for item 4442 until 4449.
* Added config `subdef_ele` in conf/battle/items.conf to change bSubDefEle behavior.
* Follow up 111eb0c1c1a048219cb7c908cf8be0b0a24afdde, added state requirement for skill 'elementalspirit2' for skill that need summoned Elemental Spirit and removes it.
* Fixed monster that `is_infinite_defense` ignored Safety Wall && Pneuma effect.
* Also fixed bugreport:6741.
* But the effects are still ignored for Emperium when WOE time, and BG monsters in BG Arena (like previous).
* Item Updates:
* Transformation chance to becomes Atroce as combo of Fidelity_Necklace (2959) and Black_Shiba_Inu_Hat (18756).
* Transformation chance to becomes Eddga as bonus of King_Tiger_Doll_Hat (5497) and W_King_Tiger_Doll_Hat (18856).
* Cooldown reduction for skill WL_RECOGNIZEDSPELL in Naqsh (2904).
* Fixed bonus damage for WS_CARTTERMINATION as combo of Gigant_Helm (19021) and Giant_Axe (1387).
* Changed `bonus3 bSPDrainRate` to `bonus2 bSPGainAttackRate` and `bonus3 bHPDrainRate` to `bonus2 bHPGainAttackRate` in db/re/pet_db.txt.
* Corrected calculation in `battle_calc_cardfix` for BF_MISC, it's should be `if( cardfix != 1000 )`!.
* Source documentation updates for `battle_calc_cardfix`.
* Typo at MOBID_GUARIDAN1 and MOBID_GUARIDAN2.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Fixes#158 - Implemented 'getvar' script command to avoid blindly attaching players and messing up their NPC progress.
* Fixes#449 - Fixed 'unitskilluseid' and 'unitskillusepos' not casting skills that require stat info when the NPC's status wasn't loaded.
* Implemented 'getunittype' script command to return the object type of the given GID.
* Adjusted 'unitwalk' to support an Event Label which is executed when the object reaches the target.
* Added 'unitwalkto' when giving a target GID rather than coordinates. Also supports Event Labels.
- Thanks to @cydh.
* Follow up 2b870c24, 'missing' rate explanation for status_percent_change.
* Follow up 2ef7a7da, revert documentation rate for bHPVanishRate and bSPVanishRate
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Not only for Gate of Hell, other skill that has negative 'Number of hits' with VVVS, the damage will be reduced.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* 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>
* Added items from idRO. Was compared until last idRO patch on June 3rd.
* Follow up 549f491fe6a0f879b5d4b647cac8307b8123e181
* Type on subskill's array check
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Added `bonus2 bSubSkill,sk,n;` -> Reduces n% damage received from skill sk.
* Added `bonus bHPGainAttack,n;` -> Heals +n HP with a normal attack.
* Added `bonus bSPGainAttack,n;` -> Heals +n SP with a normal attack.
* Added `bonus bHPGainAttackRate,n;` -> Heals +n% HP of inflicted damage on every hit when attacking an enemy.
* Added `bonus bSPGainAttackRate,n;` -> Heals +n% SP of inflicted damage on every hit when attacking an enemy.
* Added `bonus2 bHPGainAttackRate,n,x;` -> Has chance x/10% to heals +n% HP of inflicted damage on every hit when attacking an enemy.
* Added `bonus2 bSPGainAttackRate,n,x;` -> Has chance x/10% to heals +n% SP of inflicted damage on every hit when attacking an enemy.
* Replaced `bonus2 bHPDrainValue,n,x;` for x = 0 to `bonus bHPGainAttack,n;`. Since x = 1 is same as `bonus bHPDrainValue,n;` and if there are items with bonus with 'x' is different, the value will be sum'd but the type switched.
* Replaced `bonus2 bSPDrainValue,n,x;` for x = 0 to `bonus bSPGainAttack,n;`. Since x = 1 is same as `bonus bSPDrainValue,n;` and if there are items with bonus with 'x' is different, the value will be sum'd but the type switched.
* Replaced `bonus3 bSPDrainRate,n,x,y;` for y = 0 to `bonus2 bSPGainAttackRate,n,x;`. Since y = 1 is same as `bonus2 bSPDrainRate,x,n;` and if there are items with bonus with 'x' is different, the value will be sum'd but the type switched.
* Updated the documentations.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* `bonus2 bHPGainRaceAttackRate,r,n;`: Heals +n% HP of inflicted damage on every hit when attacking an enemy of race r
* `bonus2 bSPGainRaceAttackRate,r,n;`: Heals +n% SP of inflicted damage on every hit when attacking an enemy of race r
* `bonus bAbsorbDmgMaxHP,n;`: If the damage received is more than n% of Max HP, the damage received is [TotalDamage] - [n% of MaxHP]
* Thank @nanakiwurtz.
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.
- There will no longer be warnings in the log if HP/SP decreases from level 99 to 100 as this happens officially
- At level 99 only Super Novice will now get +2000 HP in both pre-renewal and renewal
- At level 150 all Novice classes get +2000 HP
* Separated HP table between Novices & Super Novices, since the hardcoded HP bonus for Super Novice (+2000) was disabled when `HP_SP_TABLES` is enabled. The bonuses are written in job_basehpsp_db.txt.
* Highly assumed there was typo for Gunslinger/Rebellion HP at level 95 (3834). If refer to Star Galaditor tables, those both use same HP values (even see their HP Factor & Multiplicator are some, no chance result different only one value in the middle of the table).
* Changed warning message to info if the previous HP/SP is higher and the next level.
* Follow up f19e2dc6c7497c530bb48f0898d50d611e59bd0f, changed `rand()` to `rnd()` (follow up 27ba6c5002d8fac002d7aa8ff309abc5f352ee9f)
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
- Updated the HP/SP tables to be 100% official for level 1 to 150
* The only differences between pre-renewal and renewal are for HP of Novice, Ninja and Gunslinger
* Level 151 to 500 is now an auto-calculated continuation of the progress from level 99 to 150 (not normal for all classes)
- HP/SP tables will now be used by default
- The code variation does not perfectly work for all classes, but I tried to get it to work as far as possible
* This includes an even better estimation for Ninja/Gunslinger HP/SP which now also works for renewal
* This also includes fixing the SP values of the 3-2 classes in renewal
* But I really recommend to just use the HP/SP tables for exact values
Special thanks to MrAntares.
* 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 df2f850c, correcting `class_idx` usage that should be compared with `enum e_job` in `pc_calc_basesp` and also in `pc_calc_basehp`
* Follow up 308c4779, fixed typo fix
* Makes `instance_id()` doesn't show debug message when it return 0 for instance id
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
- Changed "ACTIVEPATHSEARCH" to only work with real walls and not walls you can shoot through
* Seems the position lag for which I have implemented this no longer occurs on my client (was something changed?)
* Previous implementation prevented monsters from attacking you through shootable walls
* Special thanks to Michi for notifying me about this issue
Credit @Playtester
- Fixed max HP/SP of extended classes being way too low in pre-renewal (related to #358)
* It's impossible to make it 100% accurate without tables, but I made it as accurate as possible for now
* More updates to max HP/SP will follow when I have time
* 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>
* Clean up MSVS vcxproj files. Added new filter for `config` files and moving the files to their filter.
[ci skip]
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>
* Moved Bank Vault from `login` table (login-server level) to `global_reg_value` as #BANKVAULT (char-server level)
* IMPORTANT: Read & import upgrade_20150408.sql
* Follow up cbdc0127, another fix for Point Shop NPC.
* Follow up 022d7289, corrected picklog initial for bound items that removed when member of guild/party or guild/party is broken. Please import upgrade_20150408_log.sql
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Due to this being OPTION_WUG before, Rangers who had a Warg but weren't riding it were unable to use Reins of Mount, but once you got on your Warg you were able to get on your mount while on a Warg.