* Resolves an issue where the invincible time as not getting applied to maps without the MF_INVINCIBLE_TIME flag.
* Move the logic checks for MF_INVINCIBLE_TIME, MF_FLEE_PENALTY, MF_WEAPON_DAMAGE_RATE, MF_MAGIC_DAMAGE_RATE, MF_MISC_DAMAGE_RATE, MF_LONG_DAMAGE_RATE, and MF_SHORT_DAMAGE_RATE to map_setmapflag_sub() from npc_parse_mapflag().
* Update the mapflag documentation.
* Removed the limit of RES/MRES and remove max_res_mres_reduction battle config
* Added a limit of RES/MRES ignored by items and skills in max_res_mres_ignored battle config
*Removed potentially dangerous map_additemfloor calls
*Added weight/inventory checks for marry atcommand
*Fixed overweight message for box items
*Fixed inventory space check for box items to match official requirement (the total number of the items the box will give you *r min 10, plus 1)
*Fixed inventory space message for box items
*Fixed pet egg creation not deleting the pet data when failed to add it to the inventory
*Fixed pet egg creation dropping the egg on the floor when failed to add it to the inventory
*Fixed pet equipment dropping on the floor when failed to retrieve the item
*Added a battle configuration to prevent removing the pet equipment (and disappear into nothingness) when failed to retrieve the item
*Added missing skill_drop_items_full checks on several skills (official behavior makes the items disappear)
---------
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
- When a monster is killed, its first item will now always drop at the exact cell the monster was on
- When a monster drops more than one item, the items will be deployed on 3 cells around the monster (looping): SE, W and N
- Fixed drop position of looted items (similar to regular drops but independent to it and starts north)
- Fixed item drop order (script-granted -> regular drops -> looted drops)
- Fixed looted items showing special drop effects
- Searching for a free cell to drop an item on now uses the official algorithm
- When a monster drops an item, it will no longer drop on cells that are occupied by characters or pets
- When a player drops an item, it will now drop in a 5x5 area around the player
- Items dropped by players can now stack on the same cell unless the new "item_stacking" config is disabled
- When an MVP drop drops to the floor because the player's inventory was full, it will now always drop on that player's cell
- Fixes#8345
- Added a new monster stat "ClientAttackMotion" to mob_db.yml which is the time from when a monster attacks until which the damage shows on the client at 1x speed
- Added a new config synchronize_damage; when set to "yes", the client will display the damage of normal monster attacks at the exact time it is applied on the server, removing position lag (fixes#259)
Special thanks to all people who worked together to make this possible.
Co-authored-by: aleos, Lemongrass3110, Atemo
- When searching for a map-wide free cell, the tiles 15 cells from the edge are no longer considered
* Added a configuration to change the edge size to any value between 1 and 40
- When searching for a free cell, the tiles 4-5 cells from the edge are now considered invalid and trigger a retry
* If you make the edge size smaller than this, it will use edge size instead
- Searching for a free cell now defaults to 50 tries, but if the "no spawn on player" option is active, those failed attempts are not counted towards the limit anymore
- When a monster spawns in a defined area there will now be 8 attempts to spawn it on a valid cell within the area and then one attempt on the center cell; if all 9 attempts fail, there will now be 50 tries to spawn it map-wide before it gives up
- When a monster has fixed spawn coordinates, but those coordinates are a wall, it will now spawn in a random location map-wide instead
* This also applies to icewall blocking the cell unless the boss_monster command was used
- Each monster in an area spawn will now receive its own spawn center within the spawn area on server start
* This results in the spawn area being larger but having a bias towards the center
* Added a configuration to disable this behavior
- Fixed slave monsters always being active and constantly calling the "search freecell" function even though neither them nor their master have been spotted yet
- Fixed map server crash when setting no_spawn_on_player to 100 (follow-up to 33b2b02)
- Updated prontera field spawns to official episode 18+
- Updated all champion mob respawn times to 3 minutes and sorted them by map name
- Fixes#8300
- Monsters will now properly run away when using NPC_RUN (fixes#7941)
- Introduced a new function unit_get_walkpath_time that returns the time the unit needs to walk its current walkpath
* This is now used for NPC_RUN and random walking
- Fixed an issue with mismatching timer warnings when a monster casts NPC_RUN multiple times in row
- Monsters will now always attempt to use non-berserk-state skills once per second (fixes#1700)
* This completely replaces the "ugly" solution to use a walk_count for idle, walk and chase skills
* This interval is now a lot more accurate and no longer influenced by external factors such as canact delay
* This interval is now also used for lazy monsters rather than MIN_MOBTHINKTIME*10 so that MIN_MOBTHINKTIME can be reduced without having to worry about skills being cast more often
* Angry skills no longer replace the normal attack and now follow the once per second rule; they will always first be attempted at the end of the walk delay after a normal attack
- The special follow-up attack skill monsters use when you move out of their attack range, now is only used when they are in Angry state
* Also fixed a bug that this was checked every 100ms until the monster used a skill, instead of just once per second
- Monsters now can use chase skills even before they start moving (assuming one second has already passed since last skill check)
- Removed "hack" to make monsters cast chase skills when trapped in icewall
* This was solved by implementing checking for chase skills before starting to move
- Monsters will now receive an aMotion walk delay after having used a skill
- A monster that could not walk randomly because of walk delay will now walk immediately once the walk delay expires
- Using angry or berserk skills will now set a monster's attack delay
- Coma item bonus is no longer an additional effect / status change, but instead replaces the attack damage with setting HP/SP to 1
* That means Coma attacks will never kill someone, even if the original attack would be lethal
* When doing a Coma attack, the attack displays the original damage and this is also what counts towards the mob damage log
- Coma is checked for every single event that applies damage, including reflect damage, and for Provoke / Self Provoke
* Some Renewal-only effects couldn't be tested and were left unchanged (e.g. damage from White Imprison)
- Coma now sets SP to 1 instead of 0
- bComaRace, bWeaponComaRace and bWeaponComaEle won't work on bosses, GVG and battlefield objects
- bComaClass and bWeaponComaClass no longer work on GVG and battlefield objects, but can work on bosses if you specify Class_Boss or Class_All
- Edge is now defined to only work on normal monster
- The default exp_calc_type 0 no longer counts the first attacker twice and instead works like on official servers
- Added a new exp_calc_type 2 that counts the first attacker twice as previously
- The damage logged will now include overkill damage on exp_calc_type 0 and 2, but not count Coma damage (it will count the damage you would have originally dealt instead)
- Fiber Lock now has a range of 9 instead of 7
- Fixes#8279
- Added config setting mob_unlock_time that defines how long a monster can be trapped (immobile) before it unlocks its target
* Default is 2000ms, which makes Clashing Spiral no longer cause monsters to drop their target, but Ankle Snare still will even at minimum duration
- Monsters will now promptly use idle skills while trapped (there was a delay before)
- Increased the time the AI is still active when there are no players left on the map from 0ms to 5000ms
* This fixes an issue that monsters never unlocked their target if it was the last player to leave the map
- Clashing Spiral now has a range of 4 instead of 5
- Skid Trap no longer has a stop effect in pre-re, but it will make monsters unlock their target and become idle
- Skid Trap still stops targets for 3 seconds in renewal, but will no longer activate on bosses
- Throw Stone now deals 30 damage when used by monsters
- Fixes#7846
- Monster damage is now always reduced by items that reduce BF_WEAPON damage
- Monster damage is now never reduced by items that reduce BF_MAGIC damage
- Asprika now reduces all damage from monsters by 30%
- Asprika now reduces all physical damage from players by 30%
- Asprika now reduces damage regardless of range of the attack
- Shaman Hat will no longer reduce damage from monsters, but will still reduce magic damage from players
- This also affects all custom items using bonus3 bSubEle and bonus3 bSubRace
- Added a config to battle/items.conf to return to old behavior
- Fixes#8171
* Implements Map Zones which allows easier configuration of map settings.
* The restricted mapflag has been removed as they will no longer be needed.
* General cleanups and optimizations.
* Added new items
* Item scripts corrections
* Updated item prices
* Updated mapcache
* Corrected Royal Guardian Ring and Lich Lord Card Position
Thanks to @mazvi
* Adds missing documentation for mf_norodex.
* Updates atcommand mapflag to display information on some missing mapflags.
* Removes "Other Flags2" and combine list with "Other Flags" for atcommand mapflag.