* Follow up to 32c829d.
* Added a missing break on guild type instance creation.
- Thanks to @Canoe!
* Added instance name back to script command instance_enter.
- This will present the proper error message when trying to enter another instance.
Expanded the instance system to support new modes
* New modes include: No player attached, single player, and guild.
* Modified the instance_db to allow instance idle time to be adjustable.
* Removed Map1 from the instance_db as the EnterMap is always the same value.
* Adjusted the stored maps of instances to dynamic arrays to conserve memory.
- Max amount of possible maps increased to 255.
* Instances will now be destroyed even if the owner cannot be found.
* Corrected the return value when entering an instance when a character, party, or guild does not have an instance.
* Expanded script command instance_create to take in an owner ID and an optional mode.
* Added a new script command instance_check_guild (works the same as instance_check_party).
* Corrected a few script commands to properly stop the script engine on failures for instance script commands.
* Removed the instance name lookup for when entering an instance as instance_id is now passed.
- Adjusted script command instance_enter to no longer require the instance name.
* Cleaned up script command instance_warpall.
* Adjusted script command instance_announce to check when instance ID is 0 rather than -1 since instance IDs are stored as unsigned now.
* Refactored all instance_id to unsigned short.
* Updated documentation to reflect changes.
* Follow up to 2cfb844.
* Adjusted the instance_db documentation.
* Adjusted script command instance_announce to check when instance ID is 0 rather than -1 since instance IDs are stored as unsigned now.
* Added a couple of checks when sending instance information to the client.
* Fixed a compile warning.
* Follow up to c97be60.
* Added some safety measures when sending the instance name to the client.
* Adjusted the stored maps of instances to dynamic arrays to conserve memory.
- Max amount of possible maps increased to 255.
* Removed Map1 from the instance_db as the EnterMap is always the same value.
* Instances will now be destroyed even if the owner cannot be found.
* Corrected the return value when entering an instance when a character, party, or guild does not have an instance.
* Corrected a few script commands to properly stop the script engine on failures for instance script commands.
* Removed the instance name lookup for when entering an instance as instance_id is now passed.
- Adjusted script command instance_enter to no longer require the instance name.
* Adjusted script command instance_create to keep backwards compatibility.
* Cleaned up script command instance_warpall.
* Updated script documentation to reflect changes.
* Updated instance_db to reflect changes.
* Works the same as script command transform and can be stacked with it as well.
* active_transform has display priority if transform is active.
Thanks to Ziu and @Darkelfen!
* New modes include: No player attached, single player, and guild.
* Expanded script command instance_create to take in an owner ID and an optional mode.
* Added a new script command instance_check_guild (works the same as instance_check_party).
* Refactored all instance_id to unsigned short.
* Increases an equipped weapon's ATK/MATK by given rate.
* bWeaponMatkRate does not work in pre-renewal as there is no MATK for weapons in pre-renewal.
* Renamed 'bonus2 bWeaponAtkRate' to 'bonus2 bWeaponDamageRate'.
- Seems to be unused in the current item database.
- Damage fits the bonus name better as it increased the final damage, not the weapon's attack specifically.
* This rewrite allows for better adaptation from the Aegis Class and Attribute fields.
* Refactored the renewal level penalty function.
* Slaves are now properly assigned an official slave mode of CanWalk, CanAttack, and NoRandomWalk.
* Removed extra Boss checks and adjusted others to use their proper functions.
* Properly implemented Skill Immunity mode to match Aegis.
* Separated MVP and Boss modes.
-- MVP mode defines when mobs should give MEXP, MVP Drops, and show the MVP sign.
-- MVP now have their own item drop configurations.
* Updated the mob_db and mob_skill_db to match the new mode structure.
-- Included a Perl tool (tools/convert_monstermode.pl) to allow people to convert their custom mobs to the new mode structure.
Thanks to @Playtester and @Lemongrass3110 for help with debugging and information!
* Script commands getunitdata and setunitdata will return -1 when the given GID is not found.
* Script commands getunitname and setunitname will return Unknown when the given GID is not found.
Made a new argument for script command getequipweaponlv
* Added -1 which will return the weapon level that the item is compounded on.
Thanks to @secretdataz!
* Small follow up to 894d6f2.
* Resolves Chemical Protection flag coinciding with the Lux Anima flag.
* Changed all bitmask values to readable constants.
These functions are based on the pull request #1091 from @jezznar.
They now are combined in one internal function using function pointers and alias names.
It is also supported to mix normal integer values and arrays now.
* Added bonus `bonus bCriticalLong,n;`.
* Add critical rate for normal long range attack.
* Bonus value won't be showed in status window.
* Updated item script following official (Aegis) script for:
* Sharp Arrow (1764/Incisive_Arrow)
* Drosera Card (4421/Drosera_Card)
* Upd Bow Guardian Card (4550/Upd_Bow_Guardian_Card)
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Requires client 2015-10-01 and newer.
* All skills are usable from from the base list to all 3 branch types.
-- Some skills still need their official activation chance and durations.
* Adjusted the char-server start point and start item split functions to be more dynamic.
Thanks to Rytech and @NovaRagnarok for their information!
* Boarding Halter will now properly be removed on expiration when a player is logged out. (fixes#1035)
* Removed hard coded checks for other official rental items.
* Rental items now call the OnUnequip Script of the item which can be used to remove player states.
* Updated various items in the database to match the new format.
* Fear now causes the SC_ANKLE status change for 2 seconds rather than having a weird custom implementation
* Fear now removes blind and makes you immune to it
* Fixed SC_ANKLE not properly blocking teleportation
* Some code optimizations
* Created a better structure for status changes with intervals and integrated the status changes Stone, Poison, Deadly Poison, Bleeding, Magic Mushroom, Burning, Pyrexia, Leech's End and Toxin into the new structure
-- The exact remaining duration of these status changes will now be stored
-- The correct duration is reloaded when logging back in, you can't avoid a single tick be re-logging
-- It will now show the correct duration on the icon of the status change after re-logging, no longer negative values
-- The durations are now accurately transferred when using Deadly Infect
-- These status changes now use unified code, which makes it much easier to integrate more status changes into this structure with low risk of breaking something
* Removed all the status change specific logging of damage and integrated it into the normal logging behavior
-- The following skills deal "No source" damage: Stone, Poison, Deadly Poison, Bleeding, Coma, Magic Mushroom
-- The following skills deal "Self" damage: Burning, Pyrexia, Leech's End, Toxin
-- "No source" will neither be logged nor contribute to the total damage, your exp share doesn't increase from the damage, but it also won't cause the monster to give less EXP, it won't break freeze or similar status changes, it won't make you stand up, it won't make you stop moving, it won't prevent you from logging out
-- "Self" damage will now be logged and contribute to the total damage, it makes monster give the exp tap bonus, but also makes monsters give less exp the more "self damage" they've taken, it will break freeze and similar status changes, it will make you stand up properly now, it will make you flinch and stop moving, it will prevent you from logging out, but angry type monsters will not lose their aggressive bit from it and it will not cause monsters to use their rude-attack skill
-- Monsters will now use their rude-attack skill on the first rude-attack as long as the damage does not come from self
-- When a monster takes damage from a status change, its HP meter will now be updated
* Burning now has an interval of 3s and a minimum duration of 10s
* Pyrexia now causes blind for Pyrexia's duration instead of just 30s
* Ground Drift's poison base duration is now 60s in pre-re (follow-up to e7150ee)
* Fixed a bug where the minimum duration failed to apply when the received duration was below 1ms
* map_foreachindir and map_foreachinshootarea will now properly print their function names in case of an error
* Updated documentation (transferring source ID is no longer required, remaining tick should now always be in val4)
If this breaks anything, please report asap.
* Monster level 10 Frost Diver now deals 500% damage and has a 100% freeze base chance
* Added the remaining explanations and corresponding rAthena level to mob_skill_db_powerskill.txt, now all powered-up skills are listed
* Damage of Fire Pillar is now multiplied by number of hits when used by monsters
* Storm Gust's freeze duration is now 30 seconds in renewal
* The following monster level 10 skills now have their official effect
-- Brandish Spear: 5x5 line of damage. 562% damage to all cells.
-- Magnum Break: 9x9 AoE. 600% damage to all cells.
-- Mammonite: 1200% damage.
-- Fireball: Renewal: 1020% damage. Pre-renewal: 510% damage.
* Added explanations and corresponding rAthena level to mob_skill_db_powerskill.txt
* When used by monsters, Brandish Spear and Magnum Break now always deal full damage, independent of distance