diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index da36d76..7efcb05 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -236,6 +236,9 @@ void Bullet::ProcSmokeBomb() bool Bullet::IsBomb() { + if (!meta) { + return false; + } return meta->i->_inventory_slot() == IS_RPG || meta->i->_inventory_slot() == IS_FRAG || diff --git a/server/gameserver/gridservice.cc b/server/gameserver/gridservice.cc index 8c5f2da..86ddf19 100644 --- a/server/gameserver/gridservice.cc +++ b/server/gameserver/gridservice.cc @@ -84,6 +84,18 @@ void GridService::GetAllCellsByXy(Room* room, int x, int y, std::set& bool GridService::CanAdd(float x, float y) { + if (x < 0) { + return false; + } + if (y < 0) { + return false; + } + if (x > map_width_) { + return false; + } + if (y > map_height_) { + return false; + } int new_x = (int)x + cell_width_; int new_y = (int)x + cell_width_; return !BroderOverFlow(new_x, new_y);