diff options
| author | MitchesD <majklprofik@seznam.cz> | 2015-10-17 18:38:31 +0200 |
|---|---|---|
| committer | Carbenium <carbenium@outlook.com> | 2015-11-07 00:35:24 +0100 |
| commit | 63f253e95ca801966077282f27767cf1d191bfec (patch) | |
| tree | 331e2bc4061ba8f1cd302e605fc55b6dd00b3fff /src/server/game/Entities | |
| parent | 8ceffaef4419d6dffe70ccc2fee1a4d5180ea546 (diff) | |
Merge pull request #15697 from ShinDarth/cd
Core/Player rewritten duel CD reset system
(cherry picked from commit 4204805d47078abf54e8a1c50321e63193a7c68d)
Conflicts:
src/server/game/Spells/SpellHistory.cpp
src/server/game/Spells/SpellHistory.h
src/server/game/World/World.h
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 15 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 6 |
2 files changed, 6 insertions, 15 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ee45cb5bfba..b03532a5975 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7474,18 +7474,13 @@ void Player::DuelComplete(DuelCompleteType type) duel->opponent->SetGuidValue(PLAYER_DUEL_ARBITER, ObjectGuid::Empty); duel->opponent->SetUInt32Value(PLAYER_DUEL_TEAM, 0); - if (sWorld->getBoolConfig(CONFIG_RESET_COOLDOWN_AFTER_DUEL) && - type != DUEL_INTERRUPTED) + if (sWorld->getBoolConfig(CONFIG_RESET_DUEL_COOLDOWNS)) { - if (!HasCoolDownBeforeDuel()) - RemoveArenaSpellCooldowns(true); - else - ChatHandler(GetSession()).PSendSysMessage(LANG_COOLDOWN_NOT_RESET_AFTER_DUEL); + RemoveArenaSpellCooldowns(true); + duel->opponent->RemoveArenaSpellCooldowns(true); - if (!duel->opponent->HasCoolDownBeforeDuel()) - duel->opponent->RemoveArenaSpellCooldowns(true); - else - ChatHandler(duel->opponent->GetSession()).PSendSysMessage(LANG_COOLDOWN_NOT_RESET_AFTER_DUEL); + GetSpellHistory()->RestoreCooldownStateAfterDuel(); + duel->opponent->GetSpellHistory()->RestoreCooldownStateAfterDuel(); } delete duel->opponent->duel; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 1f7dd0549a1..3a1ae5a59c5 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -420,7 +420,7 @@ struct PvPInfo struct DuelInfo { - DuelInfo() : initiator(NULL), opponent(NULL), startTimer(0), startTime(0), outOfBound(0), isMounted(false), hasCoolDownBeforeDuel(false) { } + DuelInfo() : initiator(NULL), opponent(NULL), startTimer(0), startTime(0), outOfBound(0), isMounted(false) { } Player* initiator; Player* opponent; @@ -428,7 +428,6 @@ struct DuelInfo time_t startTime; time_t outOfBound; bool isMounted; - bool hasCoolDownBeforeDuel; }; struct Areas @@ -2190,9 +2189,6 @@ class Player : public Unit, public GridObject<Player> bool RewardHonor(Unit* victim, uint32 groupsize, int32 honor = -1, bool pvptoken = false); uint32 GetMaxPersonalArenaRatingRequirement(uint32 minarenaslot) const; - bool HasCoolDownBeforeDuel() const { return duel->hasCoolDownBeforeDuel; } - void UpdateHasCoolDownBeforeDuel() { duel->hasCoolDownBeforeDuel = GetSpellHistory()->GetArenaCooldownsSize() > 0; } - //End of PvP System void SetDrunkValue(uint8 newDrunkValue, uint32 itemId = 0); |
