bool BedItem::canUse(Player* player) { if (!player || !house || !player->isPremium()) { return false; } if (sleeperGUID == 0) { return isBed(); } if (house->getHouseAccessLevel(player) != HOUSE_OWNER) { std::string name; if (IOLoginData::getInstance()->getNameByGuid(sleeperGUID, name)) { Player* sleeper = new Player(name, NULL); if (IOLoginData::getInstance()->loadPlayer(sleeper, name)) { if (house->getHouseAccessLevel(sleeper) <= house->getHouseAccessLevel(player)) { delete sleeper; sleeper = NULL; return isBed(); } } delete sleeper; sleeper = NULL; } return false; } return true; }
bool BedItem::canUse(Player* player) { if(!house || !player || player->isRemoved() || (!player->isPremium() && g_config.getBool( ConfigManager::BED_REQUIRE_PREMIUM)) || player->hasCondition(CONDITION_INFIGHT)) return false; if(!sleeper || house->getHouseAccessLevel(player) == HOUSE_OWNER) return isBed(); Player* _player = g_game.getPlayerByGuidEx(sleeper); if(!_player) return isBed(); bool ret = house->getHouseAccessLevel(_player) <= house->getHouseAccessLevel(player); if(_player->isVirtual()) delete _player; return ret; }