修复倒下后救人问题
This commit is contained in:
parent
3d163d1cea
commit
7ea2993778
@ -110,64 +110,8 @@ static void SavePerfLog()
|
|||||||
f8::HttpClientPool::Instance()->max_user_request_delay = 0;
|
f8::HttpClientPool::Instance()->max_user_request_delay = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HttpTest()
|
|
||||||
{
|
|
||||||
for (int i = 0; i < 70; ++i) {
|
|
||||||
a8::Timer::Instance()->AddRepeatTimer(100 + rand() % 1000,
|
|
||||||
a8::XParams(),
|
|
||||||
[] (const a8::XParams& param)
|
|
||||||
{
|
|
||||||
f8::HttpClientPool::Instance()->HttpGet(
|
|
||||||
a8::XParams(),
|
|
||||||
nullptr,
|
|
||||||
nullptr,
|
|
||||||
//"http://game2001-test.kingsome.cn/webapp/index.php?c=Ops&a=selfChecking",
|
|
||||||
"http://192.144.140.87:7101/webapp/index.php?c=Ops&a=selfChecking",
|
|
||||||
//("http://127.0.0.1:7112/webapp/index.php?c=Ops&a=selfChecking&time=" + a8::XValue(a8::XGetTickCount() + rand()).GetString()).c_str(),
|
|
||||||
a8::XObject(),
|
|
||||||
MAX_SYS_HTTP_NUM + (rand() % MAX_USER_HTTP_NUM)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test()
|
|
||||||
{
|
|
||||||
{
|
|
||||||
std::map<std::string, std::string> test_hash;
|
|
||||||
for (int i = 0; i < 10; ++i) {
|
|
||||||
test_hash[a8::XValue(i).GetString()] = a8::XValue(i).GetString();
|
|
||||||
}
|
|
||||||
std::map<std::string, std::string> test_hash_copy;
|
|
||||||
|
|
||||||
bool combin_ok = false;
|
|
||||||
do {
|
|
||||||
combin_ok = false;
|
|
||||||
int i = 0;
|
|
||||||
for (auto& pair1 : test_hash) {
|
|
||||||
for (auto& pair2 : test_hash_copy) {
|
|
||||||
++i;
|
|
||||||
if (i > 3) {
|
|
||||||
std::string t1 = pair1.first;
|
|
||||||
std::string t2 = pair2.first;
|
|
||||||
test_hash.erase(t1);
|
|
||||||
test_hash.erase(t2);
|
|
||||||
test_hash_copy.erase(t1);
|
|
||||||
test_hash_copy.erase(t2);
|
|
||||||
combin_ok = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} while(combin_ok);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool App::Init(int argc, char* argv[])
|
bool App::Init(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
test();
|
|
||||||
#endif
|
|
||||||
signal(SIGPIPE, SIG_IGN);
|
signal(SIGPIPE, SIG_IGN);
|
||||||
this->argc = argc;
|
this->argc = argc;
|
||||||
this->argv = argv;
|
this->argv = argv;
|
||||||
@ -241,9 +185,6 @@ bool App::Init(int argc, char* argv[])
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (HasFlag(8)) {
|
|
||||||
HttpTest();
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,6 +68,15 @@ enum ActionType_e
|
|||||||
AT_Rescue = 4
|
AT_Rescue = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum RoomType_e
|
||||||
|
{
|
||||||
|
RT_FirstBrid = 0,
|
||||||
|
RT_NewBrid = 2,
|
||||||
|
RT_MidBrid = 3,
|
||||||
|
RT_OldBrid = 4,
|
||||||
|
RT_Max
|
||||||
|
};
|
||||||
|
|
||||||
enum InventorySlot_e
|
enum InventorySlot_e
|
||||||
{
|
{
|
||||||
IS_9MM = 0,
|
IS_9MM = 0,
|
||||||
|
@ -691,6 +691,9 @@ void Player::LootInteraction(Loot* entity)
|
|||||||
|
|
||||||
void Player::HumanInteraction(Human* hum)
|
void Player::HumanInteraction(Human* hum)
|
||||||
{
|
{
|
||||||
|
if (downed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (hum == this) {
|
if (hum == this) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -17,15 +17,6 @@ namespace MetaData
|
|||||||
struct MapTplThing;
|
struct MapTplThing;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum RoomType_e
|
|
||||||
{
|
|
||||||
RT_FirstBrid = 0,
|
|
||||||
RT_NewBrid = 2,
|
|
||||||
RT_MidBrid = 3,
|
|
||||||
RT_OldBrid = 4,
|
|
||||||
RT_Max
|
|
||||||
};
|
|
||||||
|
|
||||||
struct timer_list;
|
struct timer_list;
|
||||||
struct xtimer_list;
|
struct xtimer_list;
|
||||||
class Entity;
|
class Entity;
|
||||||
|
@ -103,9 +103,11 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Room* room = GetJoinableRoom(msg);
|
RoomType_e self_room_type = GetHumanRoomType(msg);
|
||||||
|
Room* room = GetJoinableRoom(msg, self_room_type);
|
||||||
if (!room) {
|
if (!room) {
|
||||||
room = new Room();
|
room = new Room();
|
||||||
|
room->room_type = self_room_type;
|
||||||
room->room_uuid = App::Instance()->NewUuid();
|
room->room_uuid = App::Instance()->NewUuid();
|
||||||
if (GetRoomByUuid(room->room_uuid)) {
|
if (GetRoomByUuid(room->room_uuid)) {
|
||||||
abort();
|
abort();
|
||||||
@ -145,9 +147,8 @@ int RoomMgr::OverRoomNum()
|
|||||||
return over_room_hash_.size();
|
return over_room_hash_.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
Room* RoomMgr::GetJoinableRoom(const cs::CMJoin& msg)
|
Room* RoomMgr::GetJoinableRoom(const cs::CMJoin& msg, const RoomType_e self_room_type)
|
||||||
{
|
{
|
||||||
RoomType_e self_room_type = GetHumanRoomType(msg);
|
|
||||||
std::vector<std::vector<Room*>> group_rooms;
|
std::vector<std::vector<Room*>> group_rooms;
|
||||||
for (int i = 0; i < RT_Max; ++i) {
|
for (int i = 0; i < RT_Max; ++i) {
|
||||||
group_rooms.push_back(std::vector<Room*>());
|
group_rooms.push_back(std::vector<Room*>());
|
||||||
|
@ -31,7 +31,7 @@ class RoomMgr : public a8::Singleton<RoomMgr>
|
|||||||
void InstallReportStateTimer();
|
void InstallReportStateTimer();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Room* GetJoinableRoom(const cs::CMJoin& msg);
|
Room* GetJoinableRoom(const cs::CMJoin& msg, const RoomType_e self_room_type);
|
||||||
void ReportServerState(int instance_id, const std::string& host, int port);
|
void ReportServerState(int instance_id, const std::string& host, int port);
|
||||||
void FreeOverRoom(long long room_uuid);
|
void FreeOverRoom(long long room_uuid);
|
||||||
bool IsLimitJoin();
|
bool IsLimitJoin();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user