From 64ff966bae99813229dff6629fd9131a91ba7484 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Mon, 2 Mar 2015 17:31:31 +0100 Subject: Send Player HP when setHP (or a setHP caller) is called instead of looping and testing the state change. --- src/server.cpp | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index 6a1e8085b..3536471bf 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -604,17 +604,6 @@ void Server::AsyncRunStep(bool initial_step) if(playersao == NULL) continue; - /* - Handle player HPs (die if hp=0) - */ - if(playersao->m_hp_not_sent && g_settings->getBool("enable_damage")) - { - if(playersao->getHP() == 0) - DiePlayer(*i); - else - SendPlayerHP(*i); - } - /* Send player breath if changed */ @@ -1889,7 +1878,6 @@ void Server::SendPlayerHP(u16 peer_id) DSTACK(__FUNCTION_NAME); PlayerSAO *playersao = getPlayerSAO(peer_id); assert(playersao); - playersao->m_hp_not_sent = false; SendHP(peer_id, playersao->getHP()); m_script->player_event(playersao,"health_changed"); @@ -2588,9 +2576,9 @@ void Server::DiePlayer(u16 peer_id) PlayerSAO *playersao = getPlayerSAO(peer_id); assert(playersao); - infostream<<"Server::DiePlayer(): Player " - <getPlayer()->getName() - <<" dies"<getPlayer()->getName() + << " dies" << std::endl; playersao->setHP(0); @@ -2608,13 +2596,15 @@ void Server::RespawnPlayer(u16 peer_id) PlayerSAO *playersao = getPlayerSAO(peer_id); assert(playersao); - infostream<<"Server::RespawnPlayer(): Player " - <getPlayer()->getName() - <<" respawns"<getPlayer()->getName() + << " respawns" << std::endl; playersao->setHP(PLAYER_MAX_HP); playersao->setBreath(PLAYER_MAX_BREATH); + SendPlayerHP(peer_id); + bool repositioned = m_script->on_respawnplayer(playersao); if(!repositioned){ v3f pos = findSpawnPos(m_env->getServerMap()); -- cgit v1.2.3