mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-02 22:49:41 +00:00
[General] Don't send PlayerAttribute and PlayerSkill packets as werewolf
This will prevent the server from overwriting a player's human form stats with their werewolf form stats. Additionally, share PlayerShapeshift packets last when exchanging data with another player.
This commit is contained in:
parent
93d1aa2e4a
commit
ac3254d85f
2 changed files with 13 additions and 6 deletions
|
@ -34,35 +34,35 @@ namespace mwmp
|
|||
|
||||
LOG_APPEND(Log::LOG_INFO, "- Started information exchange with %s", other->npc.mName.c_str());
|
||||
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->setPlayer(other);
|
||||
playerController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->setPlayer(other);
|
||||
playerController->GetPacket(ID_PLAYER_ATTRIBUTE)->setPlayer(other);
|
||||
playerController->GetPacket(ID_PLAYER_POSITION)->setPlayer(other);
|
||||
playerController->GetPacket(ID_PLAYER_SKILL)->setPlayer(other);
|
||||
playerController->GetPacket(ID_PLAYER_EQUIPMENT)->setPlayer(other);
|
||||
playerController->GetPacket(ID_PLAYER_ANIM_FLAGS)->setPlayer(other);
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->setPlayer(other);
|
||||
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->Send(pl->guid);
|
||||
playerController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->Send(pl->guid);
|
||||
playerController->GetPacket(ID_PLAYER_ATTRIBUTE)->Send(pl->guid);
|
||||
playerController->GetPacket(ID_PLAYER_POSITION)->Send(pl->guid);
|
||||
playerController->GetPacket(ID_PLAYER_SKILL)->Send(pl->guid);
|
||||
playerController->GetPacket(ID_PLAYER_EQUIPMENT)->Send(pl->guid);
|
||||
playerController->GetPacket(ID_PLAYER_ANIM_FLAGS)->Send(pl->guid);
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->Send(pl->guid);
|
||||
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->setPlayer(pl);
|
||||
playerController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->setPlayer(pl);
|
||||
playerController->GetPacket(ID_PLAYER_ATTRIBUTE)->setPlayer(pl);
|
||||
playerController->GetPacket(ID_PLAYER_SKILL)->setPlayer(pl);
|
||||
playerController->GetPacket(ID_PLAYER_EQUIPMENT)->setPlayer(pl);
|
||||
playerController->GetPacket(ID_PLAYER_ANIM_FLAGS)->setPlayer(pl);
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->setPlayer(pl);
|
||||
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->Send(other->guid);
|
||||
playerController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->Send(other->guid);
|
||||
playerController->GetPacket(ID_PLAYER_ATTRIBUTE)->Send(other->guid);
|
||||
playerController->GetPacket(ID_PLAYER_SKILL)->Send(other->guid);
|
||||
playerController->GetPacket(ID_PLAYER_EQUIPMENT)->Send(other->guid);
|
||||
playerController->GetPacket(ID_PLAYER_ANIM_FLAGS)->Send(other->guid);
|
||||
playerController->GetPacket(ID_PLAYER_SHAPESHIFT)->Send(other->guid);
|
||||
|
||||
LOG_APPEND(Log::LOG_INFO, "- Finished information exchange with %s", other->npc.mName.c_str());
|
||||
});
|
||||
|
|
|
@ -93,8 +93,15 @@ void LocalPlayer::update()
|
|||
updateDeadState();
|
||||
updateEquipment();
|
||||
updateStatsDynamic();
|
||||
updateAttributes();
|
||||
updateSkills();
|
||||
|
||||
// Only send attributes and skills if we are not a werewolf, or they will be
|
||||
// overwritten by the werewolf ones
|
||||
if (!isWerewolf)
|
||||
{
|
||||
updateAttributes();
|
||||
updateSkills();
|
||||
}
|
||||
|
||||
updateLevel();
|
||||
updateBounty();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue