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:
parent
cd835104b7
commit
ae0e4a929f
3 changed files with 16 additions and 8 deletions
|
@ -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;
|
||||||
|
|
|
@ -53,6 +53,7 @@ namespace mwmp
|
||||||
void removeSpells();
|
void removeSpells();
|
||||||
void removeSpellsActive();
|
void removeSpellsActive();
|
||||||
|
|
||||||
|
void die();
|
||||||
void resurrect();
|
void resurrect();
|
||||||
|
|
||||||
void closeInventoryWindows();
|
void closeInventoryWindows();
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue