azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.56k stars 2.63k forks source link

Most (every?) AoE ranges are wrong (too high) #14367

Open Rdyx opened 1 year ago

Rdyx commented 1 year ago

Current Behaviour

AoEs are hitting further than they should. Radius ranges seems correct from DBC. Don't know if it's server or client related. i.e: holy nova should heal/hit in a 10y range. Yet, when checking with .dist, got 11.33y (example), then casting holy nova heal/hit.

Expected Blizzlike Behaviour

AoEs should not hit above determined range.

Source

image image

Steps to reproduce the problem

  1. Learn any AoE spell
  2. Get someone to be able to test (either friendly or ennemy, depending on the used spell)
  3. Check range with .dist while targetting your buddy
  4. Get a little above the determined range told in the tooltip (i.e: 10y in the tooltip, get somewhere around 11y)
  5. Use your spell, check if it heal/hits

Extra Notes

Reducing all ranges in SpellRadius.dbc (iirc) by 1-1.5y could do the trick but I think it would not be a real proper solution as it could lead into unintended too small radius for some other AoEs that are working properly maybe (but found none).

AC rev. hash/commit

AzerothCore rev. d0561c56df19+ 2022-07-26 14:29:17 -0300 (master branch) (Unix, Release, Static) Using SSL version: OpenSSL 1.1.1f 31 Mar 2020 (library: OpenSSL 1.1.1f 31 Mar 2020) Using Boost version: 1.71.0 Using MySQL version: 80031 Using CMake version: 3.16.3 Compiled on: Linux 5.15.0-1023-aws Worldserver listening connections on port 8085 Realmlist (Realm Id: 1) configured in port 8085 VMAPs status: Enabled. LineOfSight: 1, getHeight: 1, indoorCheck: 1 MMAPs status: Enabled maps directory located in ./maps. Total size: 291014951 bytes vmaps directory located in ./vmaps. Total size: 658130721 bytes mmaps directory located in ./mmaps. Total size: 2320900676 bytes Using enUS DBC Locale as default. All available DBC locales: enUS Using World DB: ACDB 335.7-dev LoginDatabase queue size: 0 CharacterDatabase queue size: 0 WorldDatabase queue size: 0 No modules enabled

Operating system

Ubuntu 20.04

Custom changes or Modules

No response

Santaria94 commented 1 year ago

Just a guess, maybe the .dist command takes points from the center of the players' frames when determining the distance between them? AoE spells take effect if they hit the border of the frame. That is, the distance from the center of one player to the edge of another player's frame may be 10 yards, but the distance between the centers of the frames is just 11.33 yards.

Rdyx commented 1 year ago

Indeed, never though of the borders of the hitboxes! This sounds logic, is there any way to check hitboxes sizes? I mean, visually. Some hitboxes looks very huge compared to their model sometimes (typically thinking about yogg saron and the explosion range of beacons which are sometimes providing yogg the heal buff even when the explosion looks really far).

Nyeriah commented 1 year ago

Spells use the border of the hitbox as contact point (wrong), they should use the center so they all have the same range/radius regardless of the target size (e.g taurens are easier to hit than gnomes currently)

Rdyx commented 1 year ago

I agree with that statement because I find it more consistent, but is that a server side problem or was the 3.3.5 client version like this when it was released by blizz? My guess is it would be a client side thing because I don't get how server would interfer in hit calculations but I didn't get deeper in this check atm.

Ovahlord commented 1 year ago

Spells use the border of the hitbox as contact point (wrong), they should use the center so they all have the same range/radius regardless of the target size (e.g taurens are easier to hit than gnomes currently)

this is not entirely correct. There are spells which are suposed to use the hitbox sum of caster and target but that's some spell attributes fuckery which is not fully researched yet,