// public
m_moved(false),
m_inventory_not_sent(false),
- m_breath_not_sent(false),
m_wielded_item_not_sent(false),
m_physics_override_speed(1),
m_physics_override_jump(1),
// Some flags used by Server
bool m_moved;
bool m_inventory_not_sent;
- bool m_breath_not_sent;
bool m_wielded_item_not_sent;
float m_physics_override_speed;
}
playersao->setBreath(breath);
- m_script->player_event(playersao,"breath_changed");
+ SendPlayerBreath(pkt->getPeerId());
}
void Server::handleCommand_Password(NetworkPacket* pkt)
u16 breath = luaL_checknumber(L, 2);
// Do it
co->setBreath(breath);
- co->m_breath_not_sent = true;
+
+ // If the object is a player sent the breath to client
+ if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER)
+ getServer(L)->SendPlayerBreath(((PlayerSAO*)co)->getPeerID());
+
return 0;
}
if(playersao == NULL)
continue;
- /*
- Send player breath if changed
- */
- if(playersao->m_breath_not_sent) {
- SendPlayerBreath(*i);
- }
- /*
- Send player inventories if necessary
- */
if(playersao->m_moved) {
SendMovePlayer(*i);
playersao->m_moved = false;
}
+
+ /*
+ Send player inventories if necessary
+ */
if(playersao->m_inventory_not_sent) {
UpdateCrafting(*i);
SendInventory(*i);
DSTACK(__FUNCTION_NAME);
PlayerSAO *playersao = getPlayerSAO(peer_id);
assert(playersao);
- playersao->m_breath_not_sent = false;
- m_script->player_event(playersao,"breath_changed");
+
+ m_script->player_event(playersao, "breath_changed");
SendBreath(peer_id, playersao->getBreath());
}
playersao->setBreath(PLAYER_MAX_BREATH);
SendPlayerHP(peer_id);
+ SendPlayerBreath(peer_id);
bool repositioned = m_script->on_respawnplayer(playersao);
if(!repositioned){
std::string* vers_string);
void SendPlayerHPOrDie(u16 peer_id, bool die) { die ? DiePlayer(peer_id) : SendPlayerHP(peer_id); }
+ void SendPlayerBreath(u16 peer_id);
+
// Bind address
Address m_bind_addr;
void SendChatMessage(u16 peer_id, const std::wstring &message);
void SendTimeOfDay(u16 peer_id, u16 time, f32 time_speed);
void SendPlayerHP(u16 peer_id);
- void SendPlayerBreath(u16 peer_id);
+
void SendMovePlayer(u16 peer_id);
void SendLocalPlayerAnimations(u16 peer_id, v2s32 animation_frames[4], f32 animation_speed);
void SendEyeOffset(u16 peer_id, v3f first, v3f third);