- Offizieller Beitrag
Mainserver:
- Updated/optimized/fixed monster AI.
-Monsters no longer use rudeattacked skills when they receive reflected damage from a player who died.
-Fixed a behavior which didn't unlock target when it was out of range.
-Corrected mob_warpslave_sub call with CLR_TELEPORT instead of CLR_RESPAWN.
-Fixed behavior of looter monsters:
--They will now by default always target the oldest item in their view range (which makes it seemingly random), rather than always the most south-western item available
--Their loot range is now "0" meaning they need to be on the same cell as the item to loot it
--Their AI will no longer get stuck in an endless loop when someone drops an item around the corner - Pathfinding now works exactly as on the client
-This should solve most of the position lag problems, especially ones that caused monsters to suddenly appear next to you (happened especially often when using icewall)
-Added a new heap implementation to db.h (POP2, PUSH2, SIFTUP, SIFTDOWN, UPDATE) that simulates the heap that the client uses, there was no other way to reproduce 100% exact behavior
-Updated path.c to use the new heap macros and also fixed the order in which the different possible directions are pushed into heap - Direction fixes
-Updated the config setting attack_direction_change from 15 to 0 (official value); that means that a unit's direction will no longer change when it attacks; knock-back effects from e.g. Firewall will depend on the last direction the target walked into instead.
-Ensured that the default direction of a monster is always "north", so that immobile monsters will now always be knocked back to the south by e.g. Firewall on default settings, unless a skill like e.g. Backstab changes their direction. - Fixed a bug that stopped characters server-sided and caused position lag when closing a skill menu.
- Walkpath loop fix
-Move requests one cell west will now be ignored if the target cell is occupied - Small changes to Izlude Academy warp checks.
-uses isbegin_quest instead of checkquest now. - Autotrader data is now probably deleted when you re-login with that account.
- Added support for ZC_CHANGE_GROUP_MASTER packet.
- Rewrite of clif_getareachar_skillunit to support target value instead of always sending to self only.
-Also split ZC_SKILL_ENTRY2 part (new function: clif_graffiti) since it is only used for Graffiti.
-Updated & fixed trap visibility to official behavior.
--Already placed traps are invisible by enemies entering the screen by default. - Fixed an issue that caused the damage output to be halved in some cases with high forged weapons.
- Fixed wrong var in SP_ADD_ITEMGROUP_HEAL_RATE statement.
- Weapon endow removal updated
-Now weapon endow effects will no longer be removed when unequipping / changing a shield.
-Now weapon endow effects will be removed when dual wielding and unequipping / changing one of the two weapons. - Guild Bound items are now removed when someone is offline and expelled.
- Some misc cleaning & fixing.
- Changed Guild/Party Bound Item Retrieval Methods:
-Now resend the list to map-server from char/inter-server to avoid "weird" item allocation on guild storage. Example, previously you will meet stacked item like GUID does, but it shouldn't!
-Also will check the maximum amount that can be store in guild store. If guild storage is full (the slots or item stack limit is reach) the rest value/item will be dropped.
-Withdrawn members will now lose guild bound items - they will be stored in guild storage.
-The withdrawn guild member will now prevented to login when retriving items are in progress.
-Delete guild bound items from guild master when guild is disbanded! Previously, the bound type just changed to NONE. Also for party bound item.
-If withdrawn guild/party member is trading bound item when be withdrawn, the trade will be canceled!
-If the guild member is being withdrawn when open guild storage, storage will be closed first waiting for next item retrieval.
-Added `picklog` type 'F' for logging deleted bound item because of kicked from guild/party. - Fixed an issue with the 'item_check' config not saving the unique ID when enabled.
- Fixed ammo type fail messages for different ammo types.
- Monster Vulture's Eye and Snake's Eye range bonus removed.
- Official monster/MVP target selection
-Monsters with mode MD_CHANGETARGET_MELEE will now only change targets on "attack" state if they are attacked by a normal attack
-Monsters will change targets if the target is within "attack range+1" distance instead of a static distance of 3
-When a monster gets attacked, it will now switch to the attacker even if the attacker is farther away than its current target and the current target is auto-attacking it
-Angry mode monsters will now always switch target to the first person that attacked them - Implemented proper behavior of range when players use skills
-All skills with range 4 or higher are considered ranged and can be blocked by Pneuma instead of Safety Wall
-This mainly affects Spear Stab which is now ranged instead of melee - Fixed 'Elemental Resistance Potions' doesn't work without changing any equipment.
-Moved player's Elemental resistance & attack bonus from status_calc_pc_ that need SCB_BASE to status_calc_atk_ele_pc and status_calc_def_ele_pc as a child of SCB_ATK_ELE and SCB_DEF_ELE (doesn't need to calculate everything just for these points). - Monster random walk code optimized
-Monsters will now always find a cell to walk to on first attempt as long as there is at least one cell available
-Performance for searching a cell improved, a monster no longer tries the same cell twice
-Removed the "MOB can't move" warning by default; the warning could appear with legit behavior like using Icewall and actually made the monster re-spawn - Implemented the official line of damage algorithm that official servers use; it will calculate the direction between caster and target and apply one of eight possible AoEs
-Updated Brandish Spear(5x5), Focused Arrow Strike(13x3), First Wind(5-9x3), NPC Breath attacks(14x7), Flame Launcher(5x3) and Cannon Spear(11x3) to use this algorithm and corrected range, splash and maxcount values for all these skills
-Fixed Brandish Spear's AoE being completely wrong and having holes in its AoE when attacking diagonally; also fixed the knock back being 3 instead of 2 and not working at all for the longest reach; Brandish Spear's AoE width and length can now be defined in skill_db.txt
-Focused Arrow Strike, First Wind and NPC breath attacks will at least hit one target, if no enemy is on the AoE, the target will be hit instead; Brandish Spear, Flame Launcher and Cannon Spear can completely miss - aMotion delay is now set at cast begin.
-When casting a spell with cast time shorter than aMotion, the delay will now be set to aMotion or min_skill_delay_limit
-aMotion and min_skill_delay_limit are no longer applied at cast end nor by auto spells
-Aftercast delay can only increase the delay and never decrease it
-When there is no aftercast delay, the client will no longer show a non-existent 10 second delay
-Removed "double cast" code of Jupitel and Waterball, it's no longer needed as it fits into the official delay system
-Added a constant SECURITY_CASTTIME, which is added at cast begin and subtracted at cast end to prevent hackers to send in skill packets before the timer triggers cast end
-Set skill_amotion_leniency to 0 by default as it applies delay at cast end and would consequently block the official system from working - Official status change base durations for Freeze and Blind
-Snowflake Draft now has a skill-specific duration of 5s*level
-Items, Storm Gust, Frost Joke, NPC_ICEBREATH and NPC_WIDEFREEZE use the default freeze duration
-All items and skills that cause blind now have a base duration of 30s
-Fixed NPC_DARKCROSS and NPC_GRANDDARKNESS not giving the blind status change - Fixed status base chances of Jack Frost and Status Traps
-Jack Frost: 200% freeze chance instead of 100%
-Land Mine: 10% stun chance instead of 35%-55%
-Flasher: 100% blind chance instead of 40%-80%
-Freezing Trap: 100% freeze chance of instead 38%-50%
-Sandman Sleep and Throw Stone Blind base duration is now 30s - When monsters switch modes from or to angry mode, the aggressive bit will now be set properly
- Line of Sight System updated
-You can now target walls with ground skills
-Updated path check to not check the last cell
-Unit skills will now place units depending on line of sight to the caster rather than the cast center
-Implemented a new algorithm that retrieves all units in an area that are in line of sight with the area center
-Arrow Shower, Dragon Breath, Cold Slower, Wind Cutter and Arms Cannon now use the new algorithm (Arrow Shower is no longer a unit skill)
-Nodamage skills will no longer fail when the target walked around a corner
-The following damage skills will no longer damage through walls:
--Raging Thrust, Tornado Kick, Splash Attack, Venom Splasher, Fireball, Meteor Assault, Desperado, Spread Attack, Pulse Strike, Hell's Judgment, Vampire Gift, Magnum Break, Sightrasher, Frost Nova, Explosion, Self Destruction, Firing Trap, Icebound Trap, Cluster Bomb, Claymore, Fire Pillar - Changed more remaining tick values to int64.
- Status changes that cause damage reworked
-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
-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 - Fixed Sg_Weapon_Supply_Box.
- Improved Performance on Mob DB loading.
- Updated some item effects.
- Added skill flag INF2_HIT_TRAP (0x20000) to remove hardcoded 'skill that can hit traps'.
-NOTE: Client-side's factor also determines that skill can be targeted to trap-type skill or not. - Changed Sara's Memory & Ghost Palace monsters to fit pre-renewal calculations.
- Added some missing quest_db entries.
- Some more fixes to new Intro warps
-Added some missing end;
-Fixed wrong warp of izlude. - Fixed delequip.
-Now it won't get scripts stucked anymore.
-Fixes several not working entchantment scripts. - NPC_KEEPING no longer remains on monster after its class is changed.
- Fixed a glitch which caused running skills from not stopping when recasted.
- Fixed swapped value between 'nk' and 'inf' for MH_LIGHT_OF_REGENE & MH_OVERED_BOOST
- Updated MH_LIGHT_OF_REGENE skill.
- Fixed Shockwave Trap (HT_SHOCKWAVE) SP reduction, should be % of MaxSP not % of 'current' SP.
- Fixed Pneuma / Arrow Shower / Ranges
-Pneuma now also protects against knockback from ranged skills
-Arrow Shower cast by monsters is now always a melee skill and cannot be blocked by Pneuma, but can always be blocked by Safety Wall
-When monsters cast a skill that has no specific rule, it will be considered melee when the target is within a 7x7 area around the monster, rather than a 11x11 area - Fixed Charge Attack
-Damage: 0-3 cells 100%, 4-6 cells 200%, 7-9 cells 300%, 10-12 cells 400%, 13 cells 500%
-Cast time: 0-3 cells 500ms, 4-6 cells 1000ms, 7+ cells 1500ms
-The caster will now move to the cell next to the target rather than right on it
-When the attack misses, there won't be knockback (but the caster will still move) - Fixed the Spear Mastery riding bonus not working
- Fixed Spear Stab only giving +15% per level instead of +20% (it used to be +15% pre-trans, but is +20% in pre-re and re)
- The following monster level 10 skills now have their official effect
-Two-Hand Quicken: Increases ASPD by 70%. Duration 300s.
-Lord of Vermilion: Deploys units in a 15x15 area that splash 1 cell into LP each. 520% damage per wave.
-Thunderstorm: 20 Hits, 7x7 AoE. Splashes 3 cells into LP.
-Decrease Agility: Reduces Agi by 50. Duration 130s.
-Hammer Fall: 25x25 AoE. 100% base stun chance.
-Monster level 10 Frost Diver now deals 500% damage and has a 100% freeze base chance - Thunder Storm, Exploding Dragon, Lightning Jolt and Snowflake Draft can now damage more than just once every 500ms
- Leap now has a shorter distance when used diagonally
- Ground Drift fixes
-The damage is now delayed by aMotion; as the status effect kicks in immediately, damage will break Freeze
-The base chance for a status change is now 50% instead of 5% - Snap, Ganbantein, Gravitational Field, Flying Kick fixes
-Snap now has a server-sided range of 14
-Snap, Ganbantein and Gravitational Field will no longer cause you to move if you target a cell out of range
-Snap and Flying Kick will now check for obstacles on a linear path rather than on the normal walkpath
-Range specified in skill_db is now equal to the client-sided range
-Some range code cleanup