Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Core/Packet): SMSG_DURABILITY_DAMAGE_DEATH #10894

Merged
merged 77 commits into from
Mar 23, 2022
Merged
Show file tree
Hide file tree
Changes from 76 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
6ffd096
Merge pull request #1 from azerothcore/master
IntelligentQuantum Jan 6, 2020
04f7991
Merge pull request #2 from azerothcore/master
IntelligentQuantum Jan 13, 2020
942da5a
Merge pull request #3 from azerothcore/master
IntelligentQuantum Mar 3, 2020
d4e2625
Merge pull request #6 from azerothcore/master
IntelligentQuantum Mar 28, 2020
a525e0c
Merge pull request #7 from azerothcore/master
IntelligentQuantum Apr 1, 2020
243b2ed
Merge pull request #8 from azerothcore/master
IntelligentQuantum Apr 8, 2020
dc983d5
Merge pull request #9 from azerothcore/master
IntelligentQuantum Apr 10, 2020
8843607
Merge pull request #11 from azerothcore/master
IntelligentQuantum Jun 27, 2020
b21d205
Merge pull request #12 from azerothcore/master
IntelligentQuantum Aug 10, 2020
f3e1887
Merge branch 'azerothcore:master' into Master
IntelligentQuantum Nov 8, 2021
c5b4d79
Merge branch 'azerothcore:master' into Master
IntelligentQuantum Nov 9, 2021
b39e8b5
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 10, 2021
6ca8a43
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 11, 2021
da7aee3
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 14, 2021
df6ee84
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 17, 2021
fc45792
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 17, 2021
aa1171d
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 18, 2021
dafd680
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 19, 2021
817e365
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 21, 2021
d3da71e
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 23, 2021
194d69f
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 29, 2021
2f7ae2f
Merge branch 'azerothcore:master' into master
IntelligentQuantum Nov 30, 2021
bb7868f
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 1, 2021
29434c0
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 3, 2021
834374b
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 4, 2021
be43c91
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 5, 2021
e58e2e2
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 7, 2021
55cbab8
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 8, 2021
2a22ce0
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 9, 2021
65eb431
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 10, 2021
c1603a3
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 11, 2021
7a67a15
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 12, 2021
76d03a3
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 13, 2021
1782e62
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 14, 2021
e167d14
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 15, 2021
b3c2447
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 16, 2021
afe6523
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 18, 2021
c2d2f7a
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 20, 2021
608e27f
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 23, 2021
f025d69
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 25, 2021
63f6863
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 27, 2021
0ebedeb
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 27, 2021
1c7d0d4
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 29, 2021
8071f68
Merge branch 'azerothcore:master' into master
IntelligentQuantum Dec 31, 2021
26528c3
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 1, 2022
77d4fb9
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 2, 2022
5c0ba36
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 3, 2022
8ee6fd4
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 4, 2022
e090073
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 4, 2022
ee125d0
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 5, 2022
4785364
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 6, 2022
3c37e11
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 6, 2022
d3dd268
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 7, 2022
457e349
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 7, 2022
0774fad
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 9, 2022
24414ab
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 11, 2022
683007d
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 16, 2022
d484d13
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 17, 2022
00d83d4
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 18, 2022
f86b2d8
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 21, 2022
9f75e16
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 24, 2022
dc1cb6e
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 25, 2022
b0fc357
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 25, 2022
f262176
Merge branch 'azerothcore:master' into master
IntelligentQuantum Jan 30, 2022
7a25d63
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 1, 2022
73c6ca1
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 3, 2022
64d771a
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 4, 2022
5a074d7
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 7, 2022
6d5d9d1
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 9, 2022
6311683
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 13, 2022
05c556e
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 17, 2022
ecf2aa1
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 21, 2022
5068793
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 23, 2022
073eae5
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 26, 2022
456b911
Merge branch 'azerothcore:master' into master
IntelligentQuantum Feb 27, 2022
76022ef
.
IntelligentQuantum Mar 4, 2022
f27c42f
Merge branch 'master' into packet1
IntelligentQuantum Mar 18, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions src/server/game/Entities/Player/Player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -805,11 +805,11 @@ uint32 Player::EnvironmentalDamage(EnviromentalDamage type, uint32 damage)
{
if (type == DAMAGE_FALL) // DealDamage not apply item durability loss at self damage
{
LOG_DEBUG("entities.player", "We are fall to death, loosing 10 percents durability");
DurabilityLossAll(0.10f, false);
LOG_DEBUG("entities.player", "Player::EnvironmentalDamage: Player '{}' ({}) fall to death, losing {} durability",
GetName(), GetGUID().ToString(), sWorld->getRate(RATE_DURABILITY_LOSS_ON_DEATH));
DurabilityLossAll(sWorld->getRate(RATE_DURABILITY_LOSS_ON_DEATH), false);
// durability lost message
WorldPacket data2(SMSG_DURABILITY_DAMAGE_DEATH, 0);
GetSession()->SendPacket(&data2);
SendDurabilityLoss();
}

UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM, 1, type);
Expand Down Expand Up @@ -4593,6 +4593,11 @@ Corpse* Player::GetCorpse() const
return GetMap()->GetCorpseByPlayer(GetGUID());
}

void Player::SendDurabilityLoss()
{
SendDirectMessage(WorldPackets::Misc::DurabilityDamageDeath().Write());
}

void Player::DurabilityLossAll(double percent, bool inventory)
{
for (uint8 i = EQUIPMENT_SLOT_START; i < EQUIPMENT_SLOT_END; i++)
Expand Down
1 change: 1 addition & 0 deletions src/server/game/Entities/Player/Player.h
Original file line number Diff line number Diff line change
Expand Up @@ -1971,6 +1971,7 @@ class Player : public Unit, public GridObject<Player>
void BuildPlayerRepop();
void RepopAtGraveyard();

void SendDurabilityLoss();
void DurabilityLossAll(double percent, bool inventory);
void DurabilityLoss(Item* item, double percent);
void DurabilityPointsLossAll(int32 points, bool inventory);
Expand Down
3 changes: 1 addition & 2 deletions src/server/game/Entities/Unit/Unit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17301,8 +17301,7 @@ void Unit::Kill(Unit* killer, Unit* victim, bool durabilityLoss, WeaponAttackTyp
LOG_DEBUG("entities.unit", "We are dead, losing {} percent durability", sWorld->getRate(RATE_DURABILITY_LOSS_ON_DEATH));
plrVictim->DurabilityLossAll(sWorld->getRate(RATE_DURABILITY_LOSS_ON_DEATH), false);
// durability lost message
WorldPacket data(SMSG_DURABILITY_DAMAGE_DEATH, 0);
plrVictim->GetSession()->SendPacket(&data);
plrVictim->SendDurabilityLoss();
}
// Call KilledUnit for creatures
if (killer && killer->GetTypeId() == TYPEID_UNIT && killer->IsAIEnabled)
Expand Down
8 changes: 8 additions & 0 deletions src/server/game/Server/Packets/MiscPackets.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,14 @@ namespace WorldPackets
uint32 Result = 0;
ObjectGuid Roller;
};

class DurabilityDamageDeath final : public ServerPacket
{
public:
DurabilityDamageDeath() : ServerPacket(SMSG_DURABILITY_DAMAGE_DEATH, 0) { }

WorldPacket const* Write() override { return &_worldPacket; }
};
}
}

Expand Down
1 change: 1 addition & 0 deletions src/server/worldserver/worldserver.conf.dist
Original file line number Diff line number Diff line change
Expand Up @@ -2466,6 +2466,7 @@ DurabilityLoss.InPvP = 0
#
# DurabilityLoss.OnDeath
# Description: Durability loss percentage on death.
# Note: On 3.3.5 client always shows log message "Your items have lost 10% durability"
# Default: 10

DurabilityLoss.OnDeath = 10
Expand Down