* Official Gospel chances, effects and duration (fixes#1812)
-- Chance of Gospel to trigger increased from 10%*skill_lv to 50%+5%*skill_lv
-- Gospel's Heal effect now heals 1000-9999 HP instead of 1-9999 HP
-- Blessing and Increase Agi effects now last for 4 minutes instead of 60 seconds
-- Increase Defense now only lasts 10 seconds instead of 60 seconds
-- Gospel's damage is now twice likely to trigger with one of two different effects
-- Fixed Gospel's damage not showing the Holy Cross effect
-- Gospel's first damage effect deals 3000-7999 damage which is reduced by DEF (percentual in pre-re)
-- Gospel's second damage effect deals 1500-5499 damage which cannot be reduced by DEF
-- Curse, Blind and Poison effect now last 30 minutes instead of 60 seconds
-- Provoke lasts infinite, but is removed when changing maps or logging out
-- Fixed Provoke's icon from disappearing whenever a status changes
-- DEF, ATK, Flee and Speed super debuffs now only last 20 seconds instead of 60 seconds
* Official status change base duration for curse (fixes#1811)
-- Curse base duration is 30 seconds in pre-re and 20 seconds in renewal
-- Napalm Vulcan, Tarot Card of Fate, NPC_HELLJUDGEMENT, NPC_WIDECURSE use this duration
-- NPC_CURSEATTACK has a fixed 30 seconds duration
* Official status change base duration for poison (fixes#1811)
-- Poison base duration is 60 seconds in pre-re and 20 seconds in renewal
-- Duration is no longer halved for monsters in pre-re
-- Envenom, Venom Dust, Venom Splasher, Tarot Card of Fate, NPC_POISON, NPC_ACIDBREATH use this duration
* NPC_STOP now has a duration of 15 seconds instead of 10 seconds
* NPC_HELLPOWER and NPC_WIDEHELLDIGNITY now have a duration of 180 seconds instead of 300 seconds
* Tarot Card of Fate uses base duration for Curse, Poison, Stone, Freeze and Stun
-- For Confusion and Stop the duration remains fixed to 30 seconds
* All NPC status skills now have a 20%*skill_lv chance to trigger instead of 50%+10%*skill_lv
-- NPC_HALLUCINATION and NPC_HELLPOWER now only affect you to 20% instead of 100%/60%
* Damage shown by Hallucination is now completely random instead of being multiplied by 6
* The animation is now shown when trying to resurrect someone affected by Hell Power
Special thanks to @mrjnumber1 and Luke for providing various information on these.
In pre-renewal the animation of magic rod only shows up when the user is
attacked with a spell that can be absorbed by it. In renewal it shows
when you cast the skill instead. This has been tested on iRO Chaos and
iRO Classic.
* Added windows specific socket timeout code
Added socket code for windows that respects our given timeout.
Also added some more ifndef checks to some stat reporting functions.
Updated the MSDN reference link.
Fixed the delay being milliseconds on windows, thanks to @theultramage
Fixes#794 on windows.
Cleaned up Item Groups
- Moved constants from const.txt to script_constants.h.
- Removes hard coded item groups into the IG_* database to easily be adjusted/created.
- Renamed IG_FingingOre -> IG_FindingOre.
* The tarot card THE SUN no longer blocks other cards in pre-re (still does in renewal)
* Added a configuration for equal chance for all cards in case someone prefers eAthena behavior
* When you hide and monsters are still on their original chase path, they will no longer spread out
-- This makes Grimtooth mobbing viable again on default settings
-- In all other situations, monsters will still spread out
* Fiber Lock's duration now depends on the map and how many fiber locks have been stacked
-- PVM: 1st - 8s, 2nd - 16s (default - 8s)
-- PVP: 1st - 4s, 2nd - 8s, 3rd - 12s (default - 4s)
* Fiber Lock now always doubles fire damage, even in renewal
* When a unit affected by Fiber Lock takes fire damage, the Fiber Lock that lasts shortest is now removed
* A unit can now only move when all Fiber Locks on it were removed or have expired
* When a unit with multiple Fiber Locks on it dies, not all Fiber Locks are removed
* A unit can no longer be affected by more than 3 Fiber Locks at the same time
When the attached rid of the script was actually not a player, but a monster or something else the script was terminated. A good example for this was to use getarraysize on a OnTouchNPC event.
Thanks to MasterOfMuppets(@Locien) for reporting this.
* Negative values in the attr_fix table will now longer be ignored
* Renewal: Skills that increase elemental damage stack linearly with the attr_fix value
(e.g. if the attr_fix value is -25% and a skill increases elemental damage by 50%, it becomes 25%)
* Pre-Renewal: Skills that increase elemental damage increase damage percentually
(e.g. if damage is 25 and a skill increases elemental damage by 20%, it becomes 30)
* Monsters will now remember which players have spotted them
* If all players that spotted the monster logged out, it will become inactive again
* Inactive monsters neither walk nor use any skills (e.g. Metamorphosis)
* Minor documentation fix
Added an additional parameter to instance_enter
This allows easier usage for instances in IM_NONE, where a player will never be attached to the instance.
All you have to do is remember the created instance id and supply this command with it. That way you do not have to use any workaround like the following anymore:
warp instance_mapname( <mapname>, <instance id> ), <hardcoded enter x coordinate>, <hardcoded enter y coordinate>;
Added usage of the new constants in the existing scripts
Fixed default checks and null pointer output
Thanks to @Atemo
* Implemented official chances for each Tarot Card to occur
-- 15%: LOVERS
-- 10%: FOOL, MAGICIAN, HIGH PRIESTESS, STRENGTH, SUN
-- 8%: TEMPERANCE
-- 7%: CHARIOT
-- 6%: THE HANGED MAN
-- 5%: DEATH, STAR
-- 2%: TOWER
-- 1%: WHEEL OF FORTUNE, DEVIL
* The SUN tarot card will give you the tarot card status change
-- The status change makes you immune to other tarot card effects
-- The affected person will see a tarot card icon and the duration of the effect
* Fixed LOVERS healing self instead of the target
* The LOVERS tarot card now displays on self instead of target
Special thanks to @mrjnumber1
* Added new mapflag `hidemobhpbar` to hides monster's HP bar on a map.
* Added maps for this mapflag, credits to @Atemo and @Lemongrass3110
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Added unit data damage immunity to the GvG targeting function.
* Added unit data and mob mode damage immunity to the reflecting damage calculation function.
Thanks to @admkakaroto!
* Stored bAddMaxWeight into it's own variable for later calculation.
* Created enum constants for status_calc_weight and status_calc_cart_weight for easier readability.
The script command areawarp has been checking the wrong target map for ages. It has been checking the mapindex rather than the mapid and therefore returned a wrong result.
* Only transfers the most recent rune buff to the party.
* The source loses the rune buff that is passed to the party.
* There is a stack limit of 20 Lux Anima Runestones.
-- Stack only applies to renewal as the item isn't implemented in pre-renewal.
* Resolves an invalid operator check for pc_check_available_item.
* Added a new flag for pc_delitem to not calculate a player's status when unequipping an item.
Thanks to @cydh!
* Replaced hardcoded gender codes in source
Introduced a new constant for the account based gender and replaced all hardcoded gender references to code 99 with it.
* Replaced hardcoded gender codes in npcs
Exported the gender constants into the script engine and replaced all usages with references to the constants instead of expecting a value behind them.
* Corrected a typo
Thanks to Machiezmo from Discord.
* Fixed an inverted gender logic
Thanks to @secretdataz
* Moved constants from const.txt to script_constants.h.
* Removes hard coded item groups into the IG_* database to easily be adjusted/created.
* Renamed IG_FingingOre -> IG_FindingOre.
Enabled commented Item Groups
* Follow up to 50d5c14.
* Retains consistency between constant and ID values.
* Renamed duplicate item groups to avoid compile errors.
* Updated Status Change documentation for `SC_SIEGFRIED` and `SC_SCRESIST`
* Fixed `bResEff` cannot be used to increase the rate (for reducing resistance)
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Follow up to 0f1b1af, f296409, and a79d065.
* Fixes several bonuses that are not zeroed out properly since the block order didn't match.
Thanks to @whupdo!