merge master

This commit is contained in:
aozhiwei 2019-06-04 10:41:29 +08:00
commit eb3b0f4e9b
6 changed files with 40 additions and 9 deletions

View File

@ -2,4 +2,4 @@
cd ../tools/robot/virtualclient
python robot.py ws://192.168.100.21:7101 hao1069 hao1069 $1
#python robot.py "wss://game2001.kingsome.cn" hao1069 hao1069 $1

View File

@ -1867,6 +1867,11 @@ void Human::InternalSendGameOver()
};
auto on_error = [] (a8::XParams& param, const std::string& response)
{
a8::UdpLog::Instance()->Error("battleReport params: %s response: %s",
{
param.param2,
response
});
long long room_uuid = param.sender;
int hum_uniid = param.param1;
Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
@ -1892,10 +1897,13 @@ void Human::InternalSendGameOver()
} else {
url = "https://game2001api.kingsome.cn/webapp/index.php?c=Role&a=battleReport";
}
std::string data;
params->ToUrlEncodeStr(data);
f8::HttpClientPool::Instance()->HttpGet(
a8::XParams()
.SetSender(room->room_uuid)
.SetParam1(entity_uniid),
.SetParam1(entity_uniid)
.SetParam2(data),
on_ok,
on_error,
url.c_str(),

View File

@ -42,7 +42,7 @@ void Obstacle::RecalcSelfCollider()
} else {
self_collider2_->_min = Vector2D(0.0f - door_state1->width() / 2.0f,
0.0f - door_state1->height() / 2.0f);
self_collider2_->_max = Vector2D(door_state1->width(), door_state1->height());
self_collider2_->_max = Vector2D(door_state1->width() / 2.0f, door_state1->height() / 2.0f);
}
} else if (meta->i->attack_type() != 2){
switch (meta->i->type()) {

View File

@ -3,6 +3,7 @@
#include "playermgr.h"
#include "player.h"
#include "cs_proto.pb.h"
#include "room.h"
void PlayerMgr::Init()
{
@ -14,10 +15,10 @@ void PlayerMgr::UnInit()
void PlayerMgr::_SS_WSP_SocketDisconnect(f8::MsgHdr& hdr, const ss::SS_WSP_SocketDisconnect& msg)
{
auto itr = socket_hash_.find(hdr.socket_handle);
if (itr != socket_hash_.end()) {
itr->second->socket_handle = 0;
socket_hash_.erase(itr);
Player* hum = GetPlayerBySocket(hdr.socket_handle);
if (hum) {
RemovePlayerBySocket(hdr.socket_handle);
hum->room->OnPlayerOffline(hum);
}
}
@ -78,11 +79,19 @@ void PlayerMgr::OnClientDisconnect(a8::XParams& param)
}
}
for (int socket_handle : socket_list) {
socket_hash_.erase(socket_handle);
Player* hum = GetPlayerBySocket(socket_handle);
if (hum) {
RemovePlayerBySocket(socket_handle);
hum->room->OnPlayerOffline(hum);
}
}
}
void PlayerMgr::RemovePlayerBySocket(int socket_handle)
{
socket_hash_.erase(socket_handle);
auto itr = socket_hash_.find(socket_handle);
if (itr != socket_hash_.end()) {
itr->second->socket_handle = 0;
socket_hash_.erase(itr);
}
}

View File

@ -713,6 +713,19 @@ bool Room::CanJoin(const std::string& accountid)
}
}
void Room::OnPlayerOffline(Player* hum)
{
bool has_player = false;
for (auto& pair : accountid_hash_) {
if (pair.second->socket_handle != 0) {
has_player = true;
}
}
if (!has_player) {
RoomMgr::Instance()->AddOverRoom(room_uuid);
}
}
std::set<Human*>* Room::GetAliveTeam()
{
for (auto& pair : team_hash_) {

View File

@ -88,6 +88,7 @@ public:
int GetAliveTeamNum();
std::set<Human*>* GetAliveTeam();
bool CanJoin(const std::string& accountid);
void OnPlayerOffline(Player* hum);
private:
unsigned short AllocUniid();