结算Ok
This commit is contained in:
parent
2b5fbdb306
commit
7e61dc58eb
@ -88,7 +88,11 @@ void Human::FillMFPlayerStats(cs::MFPlayerStats* stats_pb)
|
|||||||
stats_pb->set_player_id(entity_uniid);
|
stats_pb->set_player_id(entity_uniid);
|
||||||
stats_pb->set_player_avatar_url(avatar_url);
|
stats_pb->set_player_avatar_url(avatar_url);
|
||||||
|
|
||||||
stats_pb->set_time_alive(dead_frameno * 1000.0f / SERVER_FRAME_RATE);
|
if (!dead) {
|
||||||
|
stats_pb->set_time_alive(room->frame_no * 1000.0f / SERVER_FRAME_RATE);
|
||||||
|
} else {
|
||||||
|
stats_pb->set_time_alive(dead_frameno * 1000.0f / SERVER_FRAME_RATE);
|
||||||
|
}
|
||||||
stats_pb->set_kills(stats.kills);
|
stats_pb->set_kills(stats.kills);
|
||||||
stats_pb->set_damage_amount(stats.damage_amount);
|
stats_pb->set_damage_amount(stats.damage_amount);
|
||||||
stats_pb->set_heal_amount(stats.heal_amount);
|
stats_pb->set_heal_amount(stats.heal_amount);
|
||||||
@ -355,8 +359,8 @@ void Human::FillSMGameOver(cs::SMGameOver& msg)
|
|||||||
msg.set_team_id(0);
|
msg.set_team_id(0);
|
||||||
msg.set_team_rank(rank);
|
msg.set_team_rank(rank);
|
||||||
msg.set_team_allcnt(1);
|
msg.set_team_allcnt(1);
|
||||||
msg.set_game_over(true);
|
msg.set_game_over(room->game_over);
|
||||||
msg.set_victory(false);
|
msg.set_victory(!dead);
|
||||||
|
|
||||||
cs::MFPlayerStats* p = msg.add_player_stats();
|
cs::MFPlayerStats* p = msg.add_player_stats();
|
||||||
FillMFPlayerStats(p);
|
FillMFPlayerStats(p);
|
||||||
@ -364,7 +368,7 @@ void Human::FillSMGameOver(cs::SMGameOver& msg)
|
|||||||
|
|
||||||
void Human::BeKill(int killer_id, const std::string& killer_name)
|
void Human::BeKill(int killer_id, const std::string& killer_name)
|
||||||
{
|
{
|
||||||
if (!dead) {
|
if (!dead && !room->game_over) {
|
||||||
Entity* hum = room->GetEntityByUniId(killer_id);
|
Entity* hum = room->GetEntityByUniId(killer_id);
|
||||||
if (hum && hum->entity_type == ET_Player) {
|
if (hum && hum->entity_type == ET_Player) {
|
||||||
((Human*)hum)->stats.kills++;
|
((Human*)hum)->stats.kills++;
|
||||||
|
@ -47,7 +47,6 @@ class Human : public Entity
|
|||||||
bool poisoning = false;
|
bool poisoning = false;
|
||||||
long long poisoning_time = 0;
|
long long poisoning_time = 0;
|
||||||
long long dead_frameno = 0;
|
long long dead_frameno = 0;
|
||||||
bool game_over = false;
|
|
||||||
|
|
||||||
Weapon default_weapon;
|
Weapon default_weapon;
|
||||||
std::vector<Weapon> weapons;
|
std::vector<Weapon> weapons;
|
||||||
|
@ -280,13 +280,6 @@ void Room::FillSMJoinedNotify(Player* self_hum, cs::SMJoinedNotify& msg)
|
|||||||
void Room::ResetFrameData()
|
void Room::ResetFrameData()
|
||||||
{
|
{
|
||||||
frame_data.deleted_objects.clear();
|
frame_data.deleted_objects.clear();
|
||||||
#if 0
|
|
||||||
{
|
|
||||||
frame_data.explosions_hash.clear();
|
|
||||||
frame_data.smokes_hash.clear();
|
|
||||||
frame_data.emotes_hash.Clear();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
frame_data.bullets.Clear();
|
frame_data.bullets.Clear();
|
||||||
frame_data.shots.Clear();
|
frame_data.shots.Clear();
|
||||||
}
|
}
|
||||||
@ -674,10 +667,16 @@ void Room::UpdateGas()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (gas_data.gas_mode != GasInactive) {
|
if (gas_data.gas_mode != GasInactive) {
|
||||||
|
if (alive_count_ <= 1) {
|
||||||
|
game_over = true;
|
||||||
|
}
|
||||||
for (auto& pair : human_hash_) {
|
for (auto& pair : human_hash_) {
|
||||||
if (pair.second->dead) {
|
if (pair.second->dead) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (game_over) {
|
||||||
|
pair.second->send_gameover = true;
|
||||||
|
}
|
||||||
bool b1 = CircleContainCircle(gas_data.pos_old,
|
bool b1 = CircleContainCircle(gas_data.pos_old,
|
||||||
gas_data.gas_progress,
|
gas_data.gas_progress,
|
||||||
pair.second->pos,
|
pair.second->pos,
|
||||||
|
@ -22,6 +22,7 @@ public:
|
|||||||
RoomFrameData frame_data;
|
RoomFrameData frame_data;
|
||||||
long long frame_no = 0;
|
long long frame_no = 0;
|
||||||
GasData gas_data;
|
GasData gas_data;
|
||||||
|
bool game_over = false;
|
||||||
|
|
||||||
void Initialize();
|
void Initialize();
|
||||||
void Update(int delta_time);
|
void Update(int delta_time);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user