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