1
This commit is contained in:
parent
840c786964
commit
ec9b1dc98f
@ -863,7 +863,8 @@ void Human::RecoverHp(int inc_hp)
|
||||
{
|
||||
if (!dead) {
|
||||
ability.hp += inc_hp;
|
||||
ability.hp = std::max(GetHP(), GetMaxHP());
|
||||
ability.hp = std::min(GetHP(), GetMaxHP());
|
||||
ability.hp = std::max(GetHP(), 1.0f);
|
||||
SyncAroundPlayers();
|
||||
}
|
||||
}
|
||||
@ -1657,7 +1658,7 @@ float Human::BuffAttrRate(int buff_effect_id)
|
||||
float Human::GetFireRate()
|
||||
{
|
||||
if (curr_weapon) {
|
||||
return curr_weapon->meta->i->fire_rate() + ability.fire_rate;
|
||||
return std::max(curr_weapon->meta->i->fire_rate() - ability.fire_rate, 1.0f);
|
||||
} else {
|
||||
return ability.fire_rate;
|
||||
}
|
||||
|
@ -749,7 +749,7 @@ int Room::GetAliveTeamNum()
|
||||
return num;
|
||||
}
|
||||
|
||||
bool Room::CanJoin(const std::string& accountid)
|
||||
bool Room::CanJoin(const std::string& accountid, const std::string& team_uuid)
|
||||
{
|
||||
if (gas_data.gas_mode != kGasInactive) {
|
||||
return false;
|
||||
|
@ -95,7 +95,7 @@ public:
|
||||
bool BattleStarted();
|
||||
int GetAliveTeamNum();
|
||||
std::set<Human*>* GetAliveTeam();
|
||||
bool CanJoin(const std::string& accountid);
|
||||
bool CanJoin(const std::string& accountid, const std::string& team_uuid);
|
||||
void OnPlayerOffline(Player* hum);
|
||||
Obstacle* CreateObstacle(int id, float x, float y);
|
||||
bool IsGameOver();
|
||||
|
@ -46,7 +46,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
||||
if (!hum_meta) {
|
||||
abort();
|
||||
}
|
||||
Room* room = GetJoinableRoom(msg.account_id());
|
||||
Room* room = GetJoinableRoom(msg.account_id(), msg.team_uuid());
|
||||
if (!room) {
|
||||
room = new Room();
|
||||
room->room_uuid = App::Instance()->NewUuid();
|
||||
@ -99,10 +99,10 @@ int RoomMgr::OverRoomNum()
|
||||
return over_room_hash_.size();
|
||||
}
|
||||
|
||||
Room* RoomMgr::GetJoinableRoom(const std::string& account_id)
|
||||
Room* RoomMgr::GetJoinableRoom(const std::string& account_id, const std::string& team_uuid)
|
||||
{
|
||||
for (auto& pair : inactive_room_hash_) {
|
||||
if (pair.second->CanJoin(account_id)) {
|
||||
if (pair.second->CanJoin(account_id, team_uuid)) {
|
||||
return pair.second;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ class RoomMgr : public a8::Singleton<RoomMgr>
|
||||
void InstallReportStateTimer();
|
||||
|
||||
private:
|
||||
Room* GetJoinableRoom(const std::string& account_id);
|
||||
Room* GetJoinableRoom(const std::string& account_id, const std::string& team_uuid);
|
||||
void ReportServerState(int instance_id, const std::string& host, int port);
|
||||
void FreeOverRoom(long long room_uuid);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user