1
This commit is contained in:
parent
99889ce6b5
commit
de0ba96b3f
@ -78,16 +78,6 @@ void Player::Update(int delta_time)
|
||||
if (emote) {
|
||||
UpdateEmote();
|
||||
}
|
||||
MakeUpdateMsg();
|
||||
SendNotifyMsg(*update_msg);
|
||||
if (send_gameover) {
|
||||
UpdateGameOver();
|
||||
}
|
||||
{
|
||||
if (!new_objects.empty()) {
|
||||
new_objects.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -586,6 +576,21 @@ void Player::LootInteraction(Loot* entity)
|
||||
room->AddDeletedObject(entity->entity_uniid, false);
|
||||
}
|
||||
|
||||
void Player::SendUpdateMsg()
|
||||
{
|
||||
MakeUpdateMsg();
|
||||
SendNotifyMsg(*update_msg);
|
||||
if (send_gameover) {
|
||||
UpdateGameOver();
|
||||
}
|
||||
{
|
||||
if (!new_objects.empty()) {
|
||||
new_objects.clear();
|
||||
}
|
||||
}
|
||||
++send_update_msg_times;
|
||||
}
|
||||
|
||||
void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
|
||||
{
|
||||
bool has_move_dir = msg.has_move_dir();
|
||||
@ -866,7 +871,7 @@ void Player::MakeUpdateMsg()
|
||||
}
|
||||
}
|
||||
}
|
||||
if (updated_times == 0) {
|
||||
if (send_update_msg_times == 0) {
|
||||
room->FetchBuilding(this);
|
||||
}
|
||||
for (auto& itr : new_objects) {
|
||||
@ -875,12 +880,12 @@ void Player::MakeUpdateMsg()
|
||||
for (auto& itr : part_objects) {
|
||||
itr->FillMFObjectPart(update_msg->add_part_objects());
|
||||
}
|
||||
if (updated_times == 0 || need_sync_active_player) {
|
||||
if (send_update_msg_times == 0 || need_sync_active_player) {
|
||||
update_msg->set_active_player_id(entity_uniid);
|
||||
FillMFActivePlayerData(update_msg->mutable_active_player_data());
|
||||
need_sync_active_player = false;
|
||||
}
|
||||
if (updated_times == 0 || last_sync_gas_frameno < room->gas_data.gas_start_frameno) {
|
||||
if (send_update_msg_times == 0 || last_sync_gas_frameno < room->gas_data.gas_start_frameno) {
|
||||
last_sync_gas_frameno = room->gas_data.gas_start_frameno;
|
||||
FillMFGasData(update_msg->mutable_gas_data());
|
||||
}
|
||||
|
@ -86,6 +86,7 @@ class Player : public Human
|
||||
void ProcInteraction();
|
||||
void ObstacleInteraction(Obstacle* entity);
|
||||
void LootInteraction(Loot* entity);
|
||||
void SendUpdateMsg();
|
||||
|
||||
void _CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg);
|
||||
void _CMEmote(f8::MsgHdr& hdr, const cs::CMEmote& msg);
|
||||
@ -95,8 +96,8 @@ class Player : public Human
|
||||
void FillMFGasData(cs::MFGasData* gas_data);
|
||||
|
||||
private:
|
||||
int send_update_msg_times = 0;
|
||||
cs::SMUpdate* update_msg = nullptr;
|
||||
long long last_sync_gas_frameno = 0;
|
||||
|
||||
void MakeUpdateMsg();
|
||||
};
|
||||
|
@ -18,7 +18,7 @@
|
||||
#include "roommgr.h"
|
||||
|
||||
const int ROOM_MAX_PLAYER_NUM = 50;
|
||||
#if 0
|
||||
#if 1
|
||||
const int ANDROID_NUM = 0;
|
||||
#else
|
||||
const int ANDROID_NUM = 10;
|
||||
@ -61,13 +61,16 @@ void Room::Update(int delta_time)
|
||||
}
|
||||
}
|
||||
if (frame_no % 2 == 0) {
|
||||
for (auto& pair : accountid_hash_) {
|
||||
pair.second->SendUpdateMsg();
|
||||
}
|
||||
ClearDeletedObjects();
|
||||
ProcAddedObjects();
|
||||
{
|
||||
{
|
||||
std::vector<long long> del_ids;
|
||||
for (auto& pair : frame_data.deleted_objects_hash) {
|
||||
if (pair.first < frame_no) {
|
||||
if (pair.first <= frame_no) {
|
||||
del_ids.push_back(pair.first);
|
||||
}
|
||||
}
|
||||
@ -78,7 +81,7 @@ void Room::Update(int delta_time)
|
||||
{
|
||||
std::vector<long long> del_ids;
|
||||
for (auto& pair : frame_data.softdeleted_objects_hash) {
|
||||
if (pair.first < frame_no) {
|
||||
if (pair.first <= frame_no) {
|
||||
del_ids.push_back(pair.first);
|
||||
}
|
||||
}
|
||||
@ -89,7 +92,7 @@ void Room::Update(int delta_time)
|
||||
{
|
||||
std::vector<long long> del_ids;
|
||||
for (auto& pair : frame_data.bullets_hash) {
|
||||
if (pair.first < frame_no) {
|
||||
if (pair.first <= frame_no) {
|
||||
del_ids.push_back(pair.first);
|
||||
}
|
||||
}
|
||||
@ -100,7 +103,7 @@ void Room::Update(int delta_time)
|
||||
{
|
||||
std::vector<long long> del_ids;
|
||||
for (auto& pair : frame_data.shots_hash) {
|
||||
if (pair.first < frame_no) {
|
||||
if (pair.first <= frame_no) {
|
||||
del_ids.push_back(pair.first);
|
||||
}
|
||||
}
|
||||
@ -111,7 +114,7 @@ void Room::Update(int delta_time)
|
||||
{
|
||||
std::vector<long long> del_ids;
|
||||
for (auto& pair : frame_data.explosions_hash) {
|
||||
if (pair.first < frame_no) {
|
||||
if (pair.first <= frame_no) {
|
||||
del_ids.push_back(pair.first);
|
||||
}
|
||||
}
|
||||
@ -122,7 +125,7 @@ void Room::Update(int delta_time)
|
||||
{
|
||||
std::vector<long long> del_ids;
|
||||
for (auto& pair : frame_data.smokes_hash) {
|
||||
if (pair.first < frame_no) {
|
||||
if (pair.first <= frame_no) {
|
||||
del_ids.push_back(pair.first);
|
||||
}
|
||||
}
|
||||
@ -133,7 +136,7 @@ void Room::Update(int delta_time)
|
||||
{
|
||||
std::vector<long long> del_ids;
|
||||
for (auto& pair : frame_data.emotes_hash) {
|
||||
if (pair.first < frame_no) {
|
||||
if (pair.first <= frame_no) {
|
||||
del_ids.push_back(pair.first);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user