diff --git a/server/gameserver/CMakeLists.txt b/server/gameserver/CMakeLists.txt index 7d45a86a..b1851ba8 100644 --- a/server/gameserver/CMakeLists.txt +++ b/server/gameserver/CMakeLists.txt @@ -31,9 +31,9 @@ include_directories( /usr/include/glm ../../third_party ../../third_party/behaviac/inc - ../../third_party/recastnavigation/Recast/Include - ../../third_party/recastnavigation/Detour/Include - ../../third_party/recastnavigation/DetourTileCache/Include + ../../third_party/recastnavigation_v1.6.0/Recast/Include + ../../third_party/recastnavigation_v1.6.0/Detour/Include + ../../third_party/recastnavigation_v1.6.0/DetourTileCache/Include behaviac_generated/types behaviac_generated/types/internal . @@ -53,15 +53,15 @@ aux_source_directory(../../third_party/f8/f8 SRC_LIST ) -aux_source_directory(../../third_party/recastnavigation/Recast/Source +aux_source_directory(../../third_party/recastnavigation_v1.6.0/Recast/Source SRC_LIST ) -aux_source_directory(../../third_party/recastnavigation/Detour/Source +aux_source_directory(../../third_party/recastnavigation_v1.6.0/Detour/Source SRC_LIST ) -aux_source_directory(../../third_party/recastnavigation/DetourTileCache/Source +aux_source_directory(../../third_party/recastnavigation_v1.6.0/DetourTileCache/Source SRC_LIST ) diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 32b314b1..d9369aa5 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -998,6 +998,9 @@ void CallFuncBuff::ClearSummonHero() { int hero_id = meta->_int_buff_param2; float hero_num = meta->GetBuffParam3(this); + if (hero_id == 9011) { + a8::XPrintf("ClearSummonHero 9011\n", {}); + } owner->RemoveSurplusHero(hero_id, hero_num); } diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc index 361d02b3..1090be11 100644 --- a/server/gameserver/hero.cc +++ b/server/gameserver/hero.cc @@ -32,6 +32,10 @@ #include "mt/Map.h" #include "mt/MobaRoom.h" +#define BOOST_STACKTRACE_USE_ADDR2LINE +#include +#include + Hero::Hero():Creature() { ++PerfMonitor::Instance()->entity_num[ET_Hero]; @@ -44,6 +48,11 @@ Hero::Hero():Creature() Hero::~Hero() { + if (GetHeroMeta()->id() == 9011) { + a8::XPrintf("DestoryHero 9011\n", {}); + std::cout << boost::stacktrace::stacktrace(); + int i = 0; + } SetDestorying(); DetachFromMaster(); if (agent_) { diff --git a/server/gameserver/mapinstance.cc b/server/gameserver/mapinstance.cc index 3bb9fab0..c5989915 100644 --- a/server/gameserver/mapinstance.cc +++ b/server/gameserver/mapinstance.cc @@ -481,7 +481,11 @@ bool MapInstance::Raycast(const glm::vec3& start, const glm::vec3& end, float t = 0; int npolys; memset(hit_normal_, 0, sizeof(hit_normal_)); +#if 1 + status = navmesh_query_->newRaycast(666, startRef, spos, epos, &filter, &t, hit_normal_, polys_, &npolys, MAX_POLYS); +#else status = navmesh_query_->raycast(startRef, spos, epos, &filter, &t, hit_normal_, polys_, &npolys, MAX_POLYS); +#endif if (!dtStatusSucceed(status)) { #ifdef MYDEBUG abort(); @@ -773,7 +777,11 @@ bool MapInstance::RaycastEx(const glm::vec3& start, const glm::vec3& end, float t = 0; int npolys; memset(hit_normal_, 0, sizeof(hit_normal_)); +#if 1 + status = navmesh_query_->newRaycast(666, startRef, spos, epos, &filter, &t, hit_normal_, polys_, &npolys, MAX_POLYS); +#else status = navmesh_query_->raycast(startRef, spos, epos, &filter, &t, hit_normal_, polys_, &npolys, MAX_POLYS); +#endif if (!dtStatusSucceed(status)) { #ifdef MYDEBUG abort(); diff --git a/server/gameserver/movement.cc b/server/gameserver/movement.cc index 96a656e8..127e9c4c 100644 --- a/server/gameserver/movement.cc +++ b/server/gameserver/movement.cc @@ -124,6 +124,17 @@ void Movement::CalcTargetPos(float distance) glm::vec3 hit_point; owner_->room->map_instance->Scale(start); owner_->room->map_instance->Scale(end); + #if 0 + if (owner_->IsPlayer()) { + start.x = 302.209595; + start.y = 6.18993711; + start.z = 49.6232567; + + end.x = 308.426758; + end.y = 6.18993711; + end.z = 44.5886955; + } + #endif bool ret = owner_->room->map_instance->RaycastEx(start, end, hit_point, hit_result, point.same_polys_flags, point.spec_polys, exclude_flags); if (ret) { diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index dca4ef34..592d7698 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -897,6 +897,10 @@ Hero* Room::CreateHero(Creature* master, int team_id, int obj_uniid) { + if (meta->id() == 9011) { + a8::XPrintf("CreateHero 9011\n", {}); + int i = 0; + } if (obj_uniid > 0) { if (GetEntityByUniId(obj_uniid)) { abort(); diff --git a/server/robotserver/playermgr.cc b/server/robotserver/playermgr.cc index f22e6757..8dafe98f 100644 --- a/server/robotserver/playermgr.cc +++ b/server/robotserver/playermgr.cc @@ -32,7 +32,7 @@ void PlayerMgr::Init() account_id_hash_[hum->GetAccountId()] = hum; socket_id_hash_[hum->GetSocketId()] = hum; ++count; - if (count >= 3) { + if (count >= 300) { f8::Timer::Instance()->DeleteCurrentTimer(); } }