bool House::kickPlayer(Player* player, Player* target) { if(!target || target->isRemoved()) return false; HouseTile* houseTile = target->getTile()->getHouseTile(); if(!houseTile || houseTile->getHouse() != this) return false; bool self = player == target; if(getHouseAccessLevel(player) < getHouseAccessLevel(target) && !self) return false; removePlayer(target, self); return true; }
bool House::kickPlayer(Player* player, const std::string& name) { Player* kickingPlayer = g_game.getPlayerByName(name); if(kickingPlayer){ HouseTile* houseTile = dynamic_cast<HouseTile*>(kickingPlayer->getTile()); if(houseTile && houseTile->getHouse() == this){ if(getHouseAccessLevel(player) >= getHouseAccessLevel(kickingPlayer) && !kickingPlayer->hasFlag(PlayerFlag_CanEditHouses)){ if(g_game.internalTeleport(kickingPlayer, getEntryPosition()) == RET_NOERROR){ g_game.addMagicEffect(getEntryPosition(), NM_ME_ENERGY_AREA); } return true; } } } return false; }
bool House::kickPlayer(Player* player, const std::string& name) { Player* kickingPlayer = g_game.getPlayerByName(name); if(kickingPlayer){ HouseTile* houseTile = kickingPlayer->getParentTile()->getHouseTile(); if(houseTile && houseTile->getHouse() == this){ if(getHouseAccessLevel(player) >= getHouseAccessLevel(kickingPlayer) && !kickingPlayer->hasFlag(PlayerFlag_CanEditHouses)){ if(g_game.internalTeleport(player, kickingPlayer, getEntryPosition()) == RET_NOERROR){ g_game.addMagicEffect(getEntryPosition(), MAGIC_EFFECT_BLUE_BUBBLE); } return true; } } } return false; }
bool House::isInvited(const Player* player) { if(getHouseAccessLevel(player) != HOUSE_NO_INVITED){ return true; } else{ return false; } }
bool House::canEditAccessList(uint32_t listId, const Player* player) { switch (getHouseAccessLevel(player)) { case HOUSE_OWNER: return true; case HOUSE_SUBOWNER: return listId == GUEST_LIST; default: return false; } }
bool House::kickPlayer(Player* player, Player* target) { if (!target) { return false; } HouseTile* houseTile = dynamic_cast<HouseTile*>(target->getTile()); if (!houseTile || houseTile->getHouse() != this) { return false; } if (getHouseAccessLevel(player) < getHouseAccessLevel(target) || target->hasFlag(PlayerFlag_CanEditHouses)) { return false; } Position oldPosition = target->getPosition(); if (g_game.internalTeleport(target, getEntryPosition()) == RETURNVALUE_NOERROR) { g_game.addMagicEffect(oldPosition, CONST_ME_POFF); g_game.addMagicEffect(getEntryPosition(), CONST_ME_TELEPORT); } return true; }
bool House::kickPlayer(Player* player, Player* target) { if(!target || target->isRemoved()) return false; HouseTile* houseTile = target->getTile()->getHouseTile(); if(!houseTile || houseTile->getHouse() != this) return false; if(player == target) { removePlayer(target, true); return true; } if(getHouseAccessLevel(player) >= getHouseAccessLevel(target)) { removePlayer(target, false); return true; } return false; }
bool House::canEditAccessList(uint32_t listId, const Player* player) { switch(getHouseAccessLevel(player)){ case HOUSE_OWNER: return true; break; case HOUSE_SUBOWNER: /*subowners can edit guest access list*/ if(listId == GUEST_LIST){ return true; } else /*subowner/door list*/{ return false; } break; default: return false; } }
bool House::isInvited(const Player* player) { return getHouseAccessLevel(player) != HOUSE_NO_INVITED; }