1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-28 20:06:41 +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() void LocalPlayer::resurrect()
{ {
creatureStats.mDead = false; creatureStats.mDead = false;

View file

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

View file

@ -17,18 +17,12 @@ namespace mwmp
virtual void Do(PlayerPacket &packet, BasePlayer *player) virtual void Do(PlayerPacket &packet, BasePlayer *player)
{ {
LOG_MESSAGE_SIMPLE(TimedLog::LOG_INFO, "Received ID_PLAYER_DEATH from server"); LOG_MESSAGE_SIMPLE(TimedLog::LOG_INFO, "Received ID_PLAYER_DEATH from server");
if (isLocal()) if (isLocal())
{ {
LOG_APPEND(TimedLog::LOG_INFO, "- Packet was about me"); LOG_APPEND(TimedLog::LOG_INFO, "- Packet was about me");
player->creatureStats.mDead = true; static_cast<LocalPlayer*>(player)->die();
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);
} }
else if (player != 0) else if (player != 0)
{ {