* Follow up to 55e4df1.
* Added an extra check to make sure block list is not null on skill use.
Thanks to @Vomaito, @keitenai, @spinzaku, @Playtester, and @Tokeiburu!
Bug:
It was Initially declared as size of UINT16_MAX (0xffff) but as the skill-id itself which will be used
as offset can reach this value, it's too small.
- Marionette Control now has a range of 7 (fixes#1239)
- Mechanic Back/Front Slide skills are no longer blocked by gear that makes you knock-back immune (fixes#1227)
Fixes#1234, thanks to @julia40124009.
Please note that it is currently not supported to resend the cashshop data to the players. It is only transmitted once during login as per request from the client.
* The monster modes were stored in decimal format so the converter created invalid hexadecimal modes.
* Resolved a few issues with the Monster Converter tool.
-- Fixed some run time errors.
-- Added support to check for decimal format when converting.
This commit makes those item scripts a little more readable and decreases the chance of mistakenly using an incorrect weapon type id.
Follow up to c6187fa.
- Lunatic Carrot Beat and Catnip Meteor now deal 300% to 700% damage which is calculated once and split between multiple hits rather than calculating damage per hit; despite this, they can still hit plants
- Reduced cast time of Lunatic Carrot Beat from 3000ms to 1500ms and cooldown from 8000ms to 6000ms according to latest tests on kRO
- Fixed Catnip Meteor still having a fixed cast time
- Increased stun chance of Lunatic Carrot Beat from 10% to 20%
- Increased curse chance of Catnip Meteor from 10% to 20%
- Increased cast time of Grand Cross in pre-re to 3000ms (see #1140)
- Fixed Grand Cross sometimes having 4 intervals instead of 3 (see #1140)
Updated stack logic in atcommand item2
* Resolves shadow equipment stacking.
* Cleaned up how pet eggs are created.
Thanks to @julia40124009 and @Lemongrass3110!
Small refactor of pc_setpos
* pc_setpos now delivers an enum for the error that happened.
* Additionally it now returns a different return value when the targeted player is in autotrade state.
* Added usage of this new return value to all recall commands.
* Cleaned up some outdated conf translations.
Thanks to @Lemongrass3110!
pc_setpos now delivers an enum for the error that happened.
Additionallly it now returns a different return value when the targeted player is in autotrade state.
Added usage of this new return value to all recall commands.
Removed a redundant death check in atcommand recallall.
* This check is also done in pc_setpos.
-- It additionally corrects recallall ignoring a configuration by doing the check in the atcommand.
As a skill ID is UINT16 && our skill index is also UINT16 - there is absolutly NO need for a B-Tree.
The lookup id2idx is done really often. so a tree-traversal is a bit too costly here.
The new -array based- implementation will consume 256 KiB on 32 Bit && 512 KiB memory to provide
a static lookup table.
* 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!