From 8aa190606e63cd5f27dbab27d2e4c7a70cd1e1ef Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Sun, 6 Jan 2013 15:32:23 +0100 Subject: Disable all HP handling if enable_damage is false --- src/server.cpp | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index f635bc676..0a8288324 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1368,11 +1368,16 @@ void Server::AsyncRunStep() /* Handle player HPs (die if hp=0) */ - if(playersao->getHP() == 0 && playersao->m_hp_not_sent) - DiePlayer(client->peer_id); + if(playersao->m_hp_not_sent && g_settings->getBool("enable_damage")) + { + if(playersao->getHP() == 0) + DiePlayer(client->peer_id); + else + SendPlayerHP(client->peer_id); + } /* - Send player inventories and HPs if necessary + Send player inventories if necessary */ if(playersao->m_moved){ SendMovePlayer(client->peer_id); @@ -1382,9 +1387,6 @@ void Server::AsyncRunStep() UpdateCrafting(client->peer_id); SendInventory(client->peer_id); } - if(playersao->m_hp_not_sent){ - SendPlayerHP(client->peer_id); - } } } @@ -2311,7 +2313,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) SendInventory(peer_id); // Send HP - SendPlayerHP(peer_id); + if(g_settings->getBool("enable_damage")) + SendPlayerHP(peer_id); // Send detached inventories sendDetachedInventories(peer_id); @@ -2764,17 +2767,20 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) std::istringstream is(datastring, std::ios_base::binary); u8 damage = readU8(is); - actionstream<getName()<<" damaged by " - <<(int)damage<<" hp at "<getPosition()/BS) - <getBool("enable_damage")) + { + actionstream<getName()<<" damaged by " + <<(int)damage<<" hp at "<getPosition()/BS) + <setHP(playersao->getHP() - damage); + playersao->setHP(playersao->getHP() - damage); - if(playersao->getHP() == 0 && playersao->m_hp_not_sent) - DiePlayer(peer_id); + if(playersao->getHP() == 0 && playersao->m_hp_not_sent) + DiePlayer(peer_id); - if(playersao->m_hp_not_sent) - SendPlayerHP(peer_id); + if(playersao->m_hp_not_sent) + SendPlayerHP(peer_id); + } } else if(command == TOSERVER_PASSWORD) { @@ -2850,7 +2856,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) } else if(command == TOSERVER_RESPAWN) { - if(player->hp != 0) + if(player->hp != 0 || !g_settings->getBool("enable_damage")) return; RespawnPlayer(peer_id); -- cgit v1.2.3