1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-31 05:36:42 +00:00

[Client] Add die() method to LocalPlayer

This commit is contained in:
David Cernat 2020-11-15 01:02:58 +02:00
parent cd835104b7
commit ae0e4a929f
3 changed files with 16 additions and 8 deletions

View file

@ -831,6 +831,19 @@ void LocalPlayer::removeSpellsActive()
}
}
void LocalPlayer::die()
{
creatureStats.mDead = true;
MWWorld::Ptr playerPtr = MWBase::Environment::get().getWorld()->getPlayerPtr();
MWMechanics::DynamicStat<float> health = playerPtr.getClass().getCreatureStats(playerPtr).getHealth();
health.setCurrent(0);
playerPtr.getClass().getCreatureStats(playerPtr).setHealth(health);
Main::get().getNetworking()->getPlayerPacket(ID_PLAYER_DEATH)->setPlayer(this);
Main::get().getNetworking()->getPlayerPacket(ID_PLAYER_DEATH)->Send();
}
void LocalPlayer::resurrect()
{
creatureStats.mDead = false;

View file

@ -53,6 +53,7 @@ namespace mwmp
void removeSpells();
void removeSpellsActive();
void die();
void resurrect();
void closeInventoryWindows();

View file

@ -17,18 +17,12 @@ namespace mwmp
virtual void Do(PlayerPacket &packet, BasePlayer *player)
{
LOG_MESSAGE_SIMPLE(TimedLog::LOG_INFO, "Received ID_PLAYER_DEATH from server");
if (isLocal())
{
LOG_APPEND(TimedLog::LOG_INFO, "- Packet was about me");
player->creatureStats.mDead = true;
MWWorld::Ptr playerPtr = MWBase::Environment::get().getWorld()->getPlayerPtr();
MWMechanics::DynamicStat<float> health = playerPtr.getClass().getCreatureStats(playerPtr).getHealth();
health.setCurrent(0);
playerPtr.getClass().getCreatureStats(playerPtr).setHealth(health);
packet.setPlayer(player);
packet.Send(serverAddr);
static_cast<LocalPlayer*>(player)->die();
}
else if (player != 0)
{