* Resolved a potential map-server crash.
* If a party bound item is attempted to be removed because the player was offline during party destruction, delete the item without recalculating the status.
Thanks to @Tokeiburu!
While refactoring those events the following other changes were made:
Introducing OnInstanceDestroy event. This event can be used to hook script code right in front of the instance destruction. This can be useful if you have any stored references to an instance id for example.
The script command cmdothernpc will now check if the target event exists and report failures. Therefore it now returns true or false.
All agit(FE,SE,TE) start and end commands from atcommand and script commands have been merged in their respective guild function which now returns a bool value of true for successful actions and false if it did not succeed(if the specific WoE was [not] running).
All global triggered events with mapserver status output now call the same function and therefore have the same mapserver output(including their respective event name of course).
Renamed a few events in the script configuration to match the other names
Added constants for months and weekdays
Additionally added constants for gettime types to make it easier to read.
Replaced all existing usages I found with their proper new syntax or better fitting functions.
With this parameter the caller can decide if he wants to enable or disable partial name scan support.
Generally it was disabled in a lot of functions(clif,channel,script commands).
It is still available for some "non-critical" atcommands as well as for all charcommands.
With this script command you can look up information about a specific instance. This way you do not have to hardcode values specified in the database in the script if you need it.
Thanks to @aleos89 for the script documentation.
Homunculus also have their HP stored as int from 2014-10-16 onward.
Please note that the information windows is to small to show the numbers correctly, because Gravity certainly does not intend that the HP can become that high.
Added a special error message for timeout, since it does not set an error code when a timeout occurs.
Also added a message when the socket is not writeable after successful connection.
Big thanks to @RagnarokNova for creating this script with the help of
@tokeiburu, Diablo and others. I simply converted it to be compliant
with rAthena master standard. Hope you guys enjoy it and report any bugs
:)
To clarify on the semi-official part: This script was made from scratch
by playing on iRO and may have inconsistencies with the official
version. If you want to use this on your server you must enable it
yourself by uncommenting the entry in scripts_athena.conf.
* Songs and Dances can no longer be dispelled by Dispell and Vanishing Buster
* Added a configuration to simulate the old behavior: Dispelling works if target not inside song area
* Fixed musical lessons not having any effect on Song of Lutie's MaxHP bonus (lesson/2)
* Song of Lutie now heals 1 HP more every 2 vit instead of 5 HP more every 10 vit
* Perfect Tablature's flee bonus in renewal is now 3*skill_lv + agi/15 + lesson/2
* Perfect Tablature's perfect dodge bonus is now (skill_lv+1)/2 + luk/30 + lesson/5
* Focus Ballet's hit bonus in renewal is now 20 + 2*skill_lv + dex/15 + lesson
* Focus Ballet's hit bonus in pre-re is now 1 + 2*skill_lv + dex/10 + lesson
* Slow Grace's ASPD decrease in renewal is now 3*skill_lv + dex/15 + lesson
* Slow Grace's ASPD decrease in pre-re is now 5 + 3*skill_lv + dex/10 + lesson
* Slow Grace's speed decrease in renewal is now 2*skill_lv + agi/20 + lesson/2
* Slow Grace's speed decrease in pre-re is now 5 + 3*skill_lv + agi/10 + lesson
* Impressive Riff's ASPD increase in pre-re is now 5 + skill_lv + agi/20 + lesson/2
* Lady Luck's critical bonus is now 10 + skill_lv + luk/10 + 0.5*lesson (not rounded down)
* NPC_HELLPOWER is now a "no damage" skill and works similar to NPC_HALLUCINATION
* NPC_HALLUCINATION now has a fixed duration
* Both skills have a max level of 5 (for activation chance)
* Fixed Gospel's activation chance being 1% higher than it should be
* Fixed a compiler warning (see #1816)
* Added parameters for `savepoint are range for `x` and `y` for random savepoint coordinates.
* Added documentation for new savepoint params. Credits to @aleos89
* Updated savepoint on script to follow official behaviour (random save in 3x3). All credits to @Atemo
* Added party config `change_party_leader_samemap`
* Prevent changing the party leader if the specified player is not on the same map (Note 1)
* Default is `yes` as official does
* This config will be ignored by `party_changeleader` script command
* Thanks to @aleos89 and @Lemongrass3110
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Consistency changes for script unit commands
Made it so that all unit commands(except for unitexists) take 0 as the
unit ID argument which will reference the activator of the script.
Unitwarp has since previously had this functionality and it's very
useful. Example use: When a monster walks over an npc script with the
OnTouchNPC label unitkill 0; will kill the monster.
* Clean up and fixes to unit script commands self referencing with ID 0
Added a script_rid2bl function that will return the block list beloning
to an RID specified or the activator of the script if 0 is specified as
RID.
* 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