Treeston 34c7810fe5 Core: Combat/threat system rewrite (PR #19930)
- PvE combat is now always mutual. UNIT_FLAG_IN_COMBAT is backed by actual references to the units we're in combat with.
- PvP combat is now also tracked, and almost always mutual; spells like Vanish and Feign Death can break this rule. That means we can easily determine a list of players we're fighting.
- By extension, IsInCombatWith now has sensible behavior when invoked on nonplayers.
- Threat and combat systems are no longer the same.
  - They still have an enforced relationship (threat implies combat - clearing combat clears threat)...
  - ...but we can have combat without threat. A creature (with threat list) isn't considered to be engaged until it has an entry on its threat list...
  - ...which means we can now faithfully replicate retail engage behavior. Combat on projectile launch - engagement start on projectile impact. Yay for progress!
- AI method refactor, as already ported in 6113b9d - `JustEngagedWith`, `JustEnteredCombat` and `JustExitedCombat`.
- Vehicle threat is now properly pooled on the main vehicle body (fixes #16542).
- Various edge case bug fixes for threat redirects (Misdirection "cancelling" Vigilance and similar).
- Target re-selection is now significantly faster.
- Fixed a ton of other smaller edge case bugs, probably.

Closes #7951 and #19998.

(cherry picked from commit 532ab1c7f8)
2021-05-16 21:56:01 +02:00
2021-05-15 02:14:37 +02:00
2020-01-02 06:44:10 +01:00
2017-10-16 22:54:23 +02:00
2021-01-01 00:19:41 +01:00
2013-01-21 02:47:51 +00:00
2018-01-01 00:40:17 +01:00
2021-01-16 23:59:20 +01:00
2020-01-02 06:44:10 +01:00
2020-01-04 18:59:26 +01:00

logo TrinityCore (master)

Average time to resolve an issue Percentage of issues still open


Build Status

master 3.3.5
master Build Status 3.3.5 Build Status
master Build status Build status
Coverity Scan Build Status Coverity Scan Build Status

Introduction

TrinityCore is a MMORPG Framework based mostly in C++.

It is derived from MaNGOS, the Massive Network Game Object Server, and is based on the code of that project with extensive changes over time to optimize, improve and cleanup the codebase at the same time as improving the in-game mechanics and functionality.

It is completely open source; community involvement is highly encouraged.

If you wish to contribute ideas or code, please visit our site linked below or make pull requests to our Github repository.

For further information on the TrinityCore project, please visit our project website at TrinityCore.org.

Requirements

Software requirements are available in the wiki for Windows, Linux and macOS.

Install

Detailed installation guides are available in the wiki for Windows, Linux and macOS.

Reporting issues

Issues can be reported via the Github issue tracker.

Please take the time to review existing issues before submitting your own to prevent duplicates.

In addition, thoroughly read through the issue tracker guide to ensure your report contains the required information. Incorrect or poorly formed reports are wasteful and are subject to deletion.

Submitting fixes

C++ fixes are submitted as pull requests via Github. For more information on how to properly submit a pull request, read the how-to: maintain a remote fork. For SQL only fixes, open a ticket; if a bug report exists for the bug, post on an existing ticket.

License: GPL 2.0

Read file COPYING.

Authors & Contributors

Read file AUTHORS.

Description
Server emulator for World of Warcraft 3.3.5.12340 and other versions
Readme 10 GiB
Languages
C++ 89%
C 10.4%
CMake 0.4%