youhua room player android bullet Update
This commit is contained in:
parent
3381f31ba0
commit
61946d50bf
@ -102,7 +102,7 @@ void AndroidAI::DoMove()
|
|||||||
if (hum->room->waiting_start) {
|
if (hum->room->waiting_start) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (owner->updated_times % 2 == 0) {
|
if (owner->UpdatedTimes() % 2 == 0) {
|
||||||
Human* hum = (Human*)owner;
|
Human* hum = (Human*)owner;
|
||||||
int speed = std::max(1, (int)hum->GetSpeed());
|
int speed = std::max(1, (int)hum->GetSpeed());
|
||||||
for (int i = 0; i < speed; ++i) {
|
for (int i = 0; i < speed; ++i) {
|
||||||
@ -129,7 +129,7 @@ void AndroidAI::DoAttack()
|
|||||||
if (hum->room->gas_data.gas_mode == GasInactive) {
|
if (hum->room->gas_data.gas_mode == GasInactive) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (owner->updated_times % 10 == 0) {
|
if (owner->UpdatedTimes() % 10 == 0) {
|
||||||
Human* enemy = owner->room->FindEnemy((Human*)owner);
|
Human* enemy = owner->room->FindEnemy((Human*)owner);
|
||||||
if (enemy) {
|
if (enemy) {
|
||||||
Human* sender = (Human*)owner;
|
Human* sender = (Human*)owner;
|
||||||
|
@ -35,6 +35,20 @@ void Android::Initialize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Android::Update(int delta_time)
|
void Android::Update(int delta_time)
|
||||||
|
{
|
||||||
|
if (UpdatedTimes() <= 0) {
|
||||||
|
if (room->frame_no % 2 != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
InternalUpdate(delta_time);
|
||||||
|
if (room->frame_no % 2 == 0) {
|
||||||
|
SendUpdateMsg();
|
||||||
|
}
|
||||||
|
++updated_times_;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Android::InternalUpdate(int delta_time)
|
||||||
{
|
{
|
||||||
if (a8::HasBitFlag(status, HS_Disable)) {
|
if (a8::HasBitFlag(status, HS_Disable)) {
|
||||||
return;
|
return;
|
||||||
|
@ -20,4 +20,6 @@ class Android : public Human
|
|||||||
virtual void Update(int delta_time) override;
|
virtual void Update(int delta_time) override;
|
||||||
void GiveEquip();
|
void GiveEquip();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void InternalUpdate(int delta_time);
|
||||||
};
|
};
|
||||||
|
@ -56,7 +56,7 @@ static void SavePerfLog()
|
|||||||
{
|
{
|
||||||
a8::UdpLog::Instance()->Info
|
a8::UdpLog::Instance()->Info
|
||||||
("mainloop_rundelay:%d room_num:%d player_num:%d online_num:%d alive_count:%d "
|
("mainloop_rundelay:%d room_num:%d player_num:%d online_num:%d alive_count:%d "
|
||||||
"sys_request_delay:%d user_request_delay:%d http_pending_num:%d",
|
"sys_request_delay:%d user_request_delay:%d http_pending_num:%d active_count:%d",
|
||||||
{
|
{
|
||||||
App::Instance()->perf.max_run_delay_time,
|
App::Instance()->perf.max_run_delay_time,
|
||||||
RoomMgr::Instance()->RoomNum(),
|
RoomMgr::Instance()->RoomNum(),
|
||||||
@ -65,7 +65,8 @@ static void SavePerfLog()
|
|||||||
App::Instance()->perf.alive_count,
|
App::Instance()->perf.alive_count,
|
||||||
f8::HttpClientPool::Instance()->max_sys_request_delay,
|
f8::HttpClientPool::Instance()->max_sys_request_delay,
|
||||||
f8::HttpClientPool::Instance()->max_user_request_delay,
|
f8::HttpClientPool::Instance()->max_user_request_delay,
|
||||||
f8::HttpClientPool::Instance()->GetPendingNum()
|
f8::HttpClientPool::Instance()->GetPendingNum(),
|
||||||
|
App::Instance()->perf.active_count
|
||||||
});
|
});
|
||||||
App::Instance()->perf.max_run_delay_time = 0;
|
App::Instance()->perf.max_run_delay_time = 0;
|
||||||
App::Instance()->perf.max_dispatchmsg_time = 0;
|
App::Instance()->perf.max_dispatchmsg_time = 0;
|
||||||
|
@ -28,6 +28,7 @@ void Bullet::Initialize()
|
|||||||
void Bullet::Update(int delta_time)
|
void Bullet::Update(int delta_time)
|
||||||
{
|
{
|
||||||
MapServiceUpdate();
|
MapServiceUpdate();
|
||||||
|
++updated_times_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bullet::RecalcSelfCollider()
|
void Bullet::RecalcSelfCollider()
|
||||||
|
@ -39,7 +39,7 @@ class Bullet : public MoveableEntity
|
|||||||
void OnHit(std::set<Entity*>& objects);
|
void OnHit(std::set<Entity*>& objects);
|
||||||
void ProcBomb();
|
void ProcBomb();
|
||||||
bool IsBomb();
|
bool IsBomb();
|
||||||
void MapServiceUpdate();
|
inline void MapServiceUpdate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CircleCollider* self_collider_ = nullptr;
|
CircleCollider* self_collider_ = nullptr;
|
||||||
|
@ -8,6 +8,9 @@
|
|||||||
#include "metamgr.h"
|
#include "metamgr.h"
|
||||||
#include "app.h"
|
#include "app.h"
|
||||||
|
|
||||||
|
#define METAMGR_READ(field_name, def_val) MetaMgr::Instance()->field_name = \
|
||||||
|
a8::XValue(MetaMgr::Instance()->GetSysParamAsString(#field_name, #def_val));
|
||||||
|
|
||||||
class MetaDataLoader
|
class MetaDataLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -180,6 +183,25 @@ public:
|
|||||||
MetaMgr::Instance()->newbie_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("newbie_fill_interval", 5000);
|
MetaMgr::Instance()->newbie_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("newbie_fill_interval", 5000);
|
||||||
MetaMgr::Instance()->other_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("other_fill_interval", 2000);
|
MetaMgr::Instance()->other_fill_interval = MetaMgr::Instance()->GetSysParamAsInt("other_fill_interval", 2000);
|
||||||
MetaMgr::Instance()->map_cell_width = MetaMgr::Instance()->GetSysParamAsInt("map_cell_width", 64 * 8);
|
MetaMgr::Instance()->map_cell_width = MetaMgr::Instance()->GetSysParamAsInt("map_cell_width", 64 * 8);
|
||||||
|
{
|
||||||
|
METAMGR_READ(level0room_shua_robot_min_time, 5);
|
||||||
|
METAMGR_READ(level0room_shua_robot_max_time, 7);
|
||||||
|
METAMGR_READ(level0room_shua_robot_min_num, 1);
|
||||||
|
METAMGR_READ(level0room_shua_robot_max_num, 3);
|
||||||
|
METAMGR_READ(level0room_die_robot_min_time, 10);
|
||||||
|
METAMGR_READ(level0room_die_robot_max_time, 20);
|
||||||
|
METAMGR_READ(level0room_die_robot_min_num, 2);
|
||||||
|
METAMGR_READ(level0room_die_robot_max_num, 5);
|
||||||
|
|
||||||
|
METAMGR_READ(level1room_shua_robot_min_time, 5);
|
||||||
|
METAMGR_READ(level1room_shua_robot_max_time, 7);
|
||||||
|
METAMGR_READ(level1room_shua_robot_min_num, 2);
|
||||||
|
METAMGR_READ(level1room_shua_robot_max_num, 5);
|
||||||
|
METAMGR_READ(level1room_die_robot_min_time, 10);
|
||||||
|
METAMGR_READ(level1room_die_robot_max_time, 20);
|
||||||
|
METAMGR_READ(level1room_die_robot_min_num, 1);
|
||||||
|
METAMGR_READ(level1room_die_robot_max_num, 5);
|
||||||
|
}
|
||||||
if (MetaMgr::Instance()->K < 0.01f) {
|
if (MetaMgr::Instance()->K < 0.01f) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
@ -195,10 +217,54 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Check();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
void Check()
|
||||||
|
{
|
||||||
|
|
||||||
|
{
|
||||||
|
if (MetaMgr::Instance()->level0room_shua_robot_min_time >
|
||||||
|
MetaMgr::Instance()->level0room_shua_robot_max_time) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
if (MetaMgr::Instance()->level0room_shua_robot_min_num >
|
||||||
|
MetaMgr::Instance()->level0room_shua_robot_max_num) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
if (MetaMgr::Instance()->level0room_die_robot_min_time >
|
||||||
|
MetaMgr::Instance()->level0room_die_robot_max_time) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
if (MetaMgr::Instance()->level0room_die_robot_min_num >
|
||||||
|
MetaMgr::Instance()->level0room_die_robot_max_num) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
if (MetaMgr::Instance()->level1room_shua_robot_min_time >
|
||||||
|
MetaMgr::Instance()->level1room_shua_robot_max_time) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
if (MetaMgr::Instance()->level1room_shua_robot_min_num >
|
||||||
|
MetaMgr::Instance()->level1room_shua_robot_max_num) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
if (MetaMgr::Instance()->level1room_die_robot_min_time >
|
||||||
|
MetaMgr::Instance()->level1room_die_robot_max_time) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
if (MetaMgr::Instance()->level1room_die_robot_min_num >
|
||||||
|
MetaMgr::Instance()->level1room_die_robot_max_num) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void BindToMetaData()
|
void BindToMetaData()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -73,6 +73,24 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
|||||||
int newbie_first_robot_distance = 0;
|
int newbie_first_robot_distance = 0;
|
||||||
std::vector<int> newbie_buff_list;
|
std::vector<int> newbie_buff_list;
|
||||||
|
|
||||||
|
int level0room_shua_robot_min_time = 0;
|
||||||
|
int level0room_shua_robot_max_time = 0;
|
||||||
|
int level0room_shua_robot_min_num = 0;
|
||||||
|
int level0room_shua_robot_max_num = 0;
|
||||||
|
int level0room_die_robot_min_time = 0;
|
||||||
|
int level0room_die_robot_max_time = 0;
|
||||||
|
int level0room_die_robot_min_num = 0;
|
||||||
|
int level0room_die_robot_max_num = 0;
|
||||||
|
|
||||||
|
int level1room_shua_robot_min_time = 0;
|
||||||
|
int level1room_shua_robot_max_time = 0;
|
||||||
|
int level1room_shua_robot_min_num = 0;
|
||||||
|
int level1room_shua_robot_max_num = 0;
|
||||||
|
int level1room_die_robot_min_time = 0;
|
||||||
|
int level1room_die_robot_max_time = 0;
|
||||||
|
int level1room_die_robot_min_num = 0;
|
||||||
|
int level1room_die_robot_max_num = 0;
|
||||||
|
|
||||||
int other_fill_interval = 0;
|
int other_fill_interval = 0;
|
||||||
float android_attack_range = 0;
|
float android_attack_range = 0;
|
||||||
float android_pursuit_range = 0;
|
float android_pursuit_range = 0;
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
class MoveableEntity : public RoomEntity
|
class MoveableEntity : public RoomEntity
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int updated_times = 0;
|
|
||||||
virtual void Update(int delta_time) {};
|
virtual void Update(int delta_time) {};
|
||||||
|
int UpdatedTimes() { return updated_times_;}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
int updated_times_ = 0;
|
||||||
};
|
};
|
||||||
|
@ -38,16 +38,24 @@ void Player::Initialize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Player::Update(int delta_time)
|
void Player::Update(int delta_time)
|
||||||
|
{
|
||||||
|
if (UpdatedTimes() <= 0) {
|
||||||
|
if (room->frame_no % 2 != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
InternalUpdate(delta_time);
|
||||||
|
if (room->frame_no % 2 == 0) {
|
||||||
|
SendUpdateMsg();
|
||||||
|
}
|
||||||
|
++updated_times_;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Player::InternalUpdate(int delta_time)
|
||||||
{
|
{
|
||||||
if (poisoning) {
|
if (poisoning) {
|
||||||
poisoning_time += delta_time;
|
poisoning_time += delta_time;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
if (a8::HasBitFlag(status, HS_Fly)) {
|
|
||||||
SetPos(room->plane.curr_pos);
|
|
||||||
room->grid_service.MoveHuman(this);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (moving) {
|
if (moving) {
|
||||||
UpdateMove();
|
UpdateMove();
|
||||||
}
|
}
|
||||||
|
@ -102,4 +102,5 @@ class Player : public Human
|
|||||||
private:
|
private:
|
||||||
void InternalAdCancel();
|
void InternalAdCancel();
|
||||||
void InternalAdOk();
|
void InternalAdOk();
|
||||||
|
void InternalUpdate(int delta_time);
|
||||||
};
|
};
|
||||||
|
@ -89,27 +89,16 @@ void Room::Update(int delta_time)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
real_alive_count_ = 0;
|
||||||
elapsed_time_ += delta_time;
|
elapsed_time_ += delta_time;
|
||||||
while (elapsed_time_ >= 50) {
|
while (elapsed_time_ >= 50) {
|
||||||
if (frame_no % 2 == 0) {
|
if (frame_no % 2 == 0) {
|
||||||
UpdateGas();
|
UpdateGas();
|
||||||
}
|
}
|
||||||
for (auto& pair : moveable_hash_) {
|
for (auto& pair : moveable_hash_) {
|
||||||
if (pair.second->entity_type == ET_Player &&
|
|
||||||
pair.second->updated_times <= 0) {
|
|
||||||
if (frame_no % 2 == 0) {
|
|
||||||
pair.second->Update(50);
|
pair.second->Update(50);
|
||||||
pair.second->updated_times++;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
pair.second->Update(50);
|
|
||||||
pair.second->updated_times++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (frame_no % 2 == 0) {
|
if (frame_no % 2 == 0) {
|
||||||
for (auto& pair : human_hash_) {
|
|
||||||
pair.second->SendUpdateMsg();
|
|
||||||
}
|
|
||||||
frame_event.Clear();
|
frame_event.Clear();
|
||||||
}
|
}
|
||||||
++frame_no;
|
++frame_no;
|
||||||
@ -145,6 +134,16 @@ int Room::AliveCount()
|
|||||||
return alive_count_;
|
return alive_count_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Room::RealAliveCount()
|
||||||
|
{
|
||||||
|
return real_alive_count_;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Room::ActiveCount()
|
||||||
|
{
|
||||||
|
return active_count_;
|
||||||
|
}
|
||||||
|
|
||||||
void Room::AddPlayer(Player* hum)
|
void Room::AddPlayer(Player* hum)
|
||||||
{
|
{
|
||||||
assert(gas_data.gas_mode == GasInactive);
|
assert(gas_data.gas_mode == GasInactive);
|
||||||
@ -1675,6 +1674,10 @@ void Room::NotifyGameStart()
|
|||||||
room->waiting_start = false;
|
room->waiting_start = false;
|
||||||
},
|
},
|
||||||
&xtimer_attacher_.timer_list_);
|
&xtimer_attacher_.timer_list_);
|
||||||
|
if (room_type == RT_MidBrid) {
|
||||||
|
ShuaAndroidTimerFunc();
|
||||||
|
DieAndroidTimerFunc();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Room::InitObstacleDatas()
|
void Room::InitObstacleDatas()
|
||||||
@ -1753,4 +1756,132 @@ void Room::ShuaNewBieAndroid(Human* target)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ShuaAndroidTimerFunc();
|
||||||
|
DieAndroidTimerFunc();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::ShuaAndroidTimerFunc()
|
||||||
|
{
|
||||||
|
if (room_type == RT_NewBrid || room_type == RT_MidBrid) {
|
||||||
|
int shua_time = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level0room_shua_robot_min_time,
|
||||||
|
MetaMgr::Instance()->level0room_shua_robot_max_time
|
||||||
|
);
|
||||||
|
int shua_num = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level0room_shua_robot_min_num,
|
||||||
|
MetaMgr::Instance()->level0room_shua_robot_max_num
|
||||||
|
);
|
||||||
|
if (room_type == RT_MidBrid) {
|
||||||
|
shua_time = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level1room_shua_robot_min_time,
|
||||||
|
MetaMgr::Instance()->level1room_shua_robot_max_time
|
||||||
|
);
|
||||||
|
shua_num = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level1room_shua_robot_min_num,
|
||||||
|
MetaMgr::Instance()->level1room_shua_robot_max_num
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (shua_time <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (shua_num <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
shua_android_timer = xtimer.AddDeadLineTimerAndAttach
|
||||||
|
(SERVER_FRAME_RATE * shua_time,
|
||||||
|
a8::XParams()
|
||||||
|
.SetSender(this),
|
||||||
|
[] (const a8::XParams& param)
|
||||||
|
{
|
||||||
|
Room* room = (Room*)param.sender.GetUserData();
|
||||||
|
room->ShuaAndroidTimerFunc();
|
||||||
|
},
|
||||||
|
&xtimer_attacher_.timer_list_,
|
||||||
|
[] (const a8::XParams& param)
|
||||||
|
{
|
||||||
|
Room* room = (Room*)param.sender.GetUserData();
|
||||||
|
room->shua_android_timer = nullptr;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ProcShuaAndroid(shua_time, shua_num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::DieAndroidTimerFunc()
|
||||||
|
{
|
||||||
|
if (room_type == RT_NewBrid || room_type == RT_MidBrid) {
|
||||||
|
int die_time = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level0room_die_robot_min_time,
|
||||||
|
MetaMgr::Instance()->level0room_die_robot_max_time
|
||||||
|
);
|
||||||
|
int die_num = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level0room_die_robot_min_num,
|
||||||
|
MetaMgr::Instance()->level0room_die_robot_max_num
|
||||||
|
);
|
||||||
|
if (room_type == RT_MidBrid) {
|
||||||
|
die_time = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level1room_die_robot_min_time,
|
||||||
|
MetaMgr::Instance()->level1room_die_robot_max_time
|
||||||
|
);
|
||||||
|
die_num = a8::RandEx(
|
||||||
|
MetaMgr::Instance()->level1room_die_robot_min_num,
|
||||||
|
MetaMgr::Instance()->level1room_die_robot_max_num
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (die_time <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (die_num <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
die_android_timer = xtimer.AddDeadLineTimerAndAttach
|
||||||
|
(SERVER_FRAME_RATE * die_time,
|
||||||
|
a8::XParams()
|
||||||
|
.SetSender(this),
|
||||||
|
[] (const a8::XParams& param)
|
||||||
|
{
|
||||||
|
Room* room = (Room*)param.sender.GetUserData();
|
||||||
|
room->DieAndroidTimerFunc();
|
||||||
|
},
|
||||||
|
&xtimer_attacher_.timer_list_,
|
||||||
|
[] (const a8::XParams& param)
|
||||||
|
{
|
||||||
|
Room* room = (Room*)param.sender.GetUserData();
|
||||||
|
room->die_android_timer = nullptr;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ProcDieAndroid(die_time, die_num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::ProcShuaAndroid(int shua_time, int shua_num)
|
||||||
|
{
|
||||||
|
for (auto& pair : human_hash_) {
|
||||||
|
if (pair.second->entity_subtype == EST_Android &&
|
||||||
|
a8::HasBitFlag(pair.second->status, HS_Disable)) {
|
||||||
|
Android* hum = (Android*)pair.second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::ProcDieAndroid(int die_time, int die_num)
|
||||||
|
{
|
||||||
|
for (auto& pair : human_hash_) {
|
||||||
|
if (pair.second->entity_subtype == EST_Android &&
|
||||||
|
a8::HasBitFlag(pair.second->status, HS_Disable)) {
|
||||||
|
Android* hum = (Android*)pair.second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::IncActiveCount()
|
||||||
|
{
|
||||||
|
++active_count_;
|
||||||
|
++App::Instance()->perf.active_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Room::DecActiveCount()
|
||||||
|
{
|
||||||
|
--active_count_;
|
||||||
|
--App::Instance()->perf.active_count;
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,8 @@ public:
|
|||||||
MetaData::MapTplThing* newbie_born_point_meta = nullptr;
|
MetaData::MapTplThing* newbie_born_point_meta = nullptr;
|
||||||
std::vector<MetaData::MapTplThing*>* loots = nullptr;
|
std::vector<MetaData::MapTplThing*>* loots = nullptr;
|
||||||
std::vector<Building*>* buildings = nullptr;
|
std::vector<Building*>* buildings = nullptr;
|
||||||
|
xtimer_list* shua_android_timer = nullptr;
|
||||||
|
xtimer_list* die_android_timer = nullptr;
|
||||||
|
|
||||||
~Room();
|
~Room();
|
||||||
void Init();
|
void Init();
|
||||||
@ -71,6 +73,8 @@ public:
|
|||||||
void Update(int delta_time);
|
void Update(int delta_time);
|
||||||
int GetPlayerNum();
|
int GetPlayerNum();
|
||||||
int AliveCount();
|
int AliveCount();
|
||||||
|
inline int RealAliveCount();
|
||||||
|
int ActiveCount();
|
||||||
Player* GetPlayerByAccountId(const std::string& accountid);
|
Player* GetPlayerByAccountId(const std::string& accountid);
|
||||||
Player* GetPlayerByUniId(int uniid);
|
Player* GetPlayerByUniId(int uniid);
|
||||||
Entity* GetEntityByUniId(int uniid);
|
Entity* GetEntityByUniId(int uniid);
|
||||||
@ -155,10 +159,18 @@ private:
|
|||||||
void InitObstacleDatas();
|
void InitObstacleDatas();
|
||||||
void EnableHuman(Human* hum);
|
void EnableHuman(Human* hum);
|
||||||
void DisableHuman(Human* hum);
|
void DisableHuman(Human* hum);
|
||||||
|
void ShuaAndroidTimerFunc();
|
||||||
|
void DieAndroidTimerFunc();
|
||||||
|
void ProcShuaAndroid(int shua_time, int shua_num);
|
||||||
|
void ProcDieAndroid(int die_time, int die_num);
|
||||||
|
void IncActiveCount();
|
||||||
|
void DecActiveCount();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int elapsed_time_ = 0;
|
int elapsed_time_ = 0;
|
||||||
int alive_count_ = 0;
|
int alive_count_ = 0;
|
||||||
|
int real_alive_count_ = 0;
|
||||||
|
int active_count_ = 0;
|
||||||
int force_shua_android_times_ = 0;
|
int force_shua_android_times_ = 0;
|
||||||
MetaData::AirLine* airline_ = nullptr;
|
MetaData::AirLine* airline_ = nullptr;
|
||||||
a8::XTimerAttacher xtimer_attacher_;
|
a8::XTimerAttacher xtimer_attacher_;
|
||||||
|
@ -11,6 +11,8 @@ struct PerfMonitor
|
|||||||
long long grid_chg_times = 0;
|
long long grid_chg_times = 0;
|
||||||
long long test_times = 0;
|
long long test_times = 0;
|
||||||
long long alive_count = 0;
|
long long alive_count = 0;
|
||||||
|
long long real_alive_count = 0;
|
||||||
|
long long active_count = 0;
|
||||||
std::array<long long, 30> params = {};
|
std::array<long long, 30> params = {};
|
||||||
std::array<int, 30> entity_num = {};
|
std::array<int, 30> entity_num = {};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user