void House::setHouseOwner(uint32_t guid) { if(isLoaded && houseOwner == guid) return; isLoaded = true; if(houseOwner){ cleanHouse(); //clean access lists houseOwner = 0; setAccessList(SUBOWNER_LIST, ""); setAccessList(GUEST_LIST, ""); for(HouseDoorList::iterator it = doorList.begin(); it != doorList.end(); ++it){ (*it)->setAccessList(""); } //reset paid date paidUntil = 0; rentWarnings = 0; } std::string name; if(guid != 0 && IOPlayer::instance()->getNameByGuid(guid, name)){ houseOwner = guid; houseOwnerName = name; } updateDoorDescription(); setLastWarning(std::time(NULL)); //So the new owner has one day before he start the payment }
void House::addDoor(Door* door) { door->useThing2(); doorList.push_back(door); door->setHouse(this); updateDoorDescription(); }
void House::addDoor(Door* door) { door->addRef(); doorList.push_back(door); door->setHouse(this); updateDoorDescription("", door); }
void House::setHouseOwner(uint32_t guid) { if(isLoaded && houseOwner == guid) return; isLoaded = true; if(houseOwner){ //send items to depot transferToDepot(); PlayerVector to_kick; for(HouseTileList::iterator it = houseTiles.begin(); it != houseTiles.end(); ++it){ for(uint32_t i = 0; i < (*it)->getThingCount(); ++i){ Creature* creature = (*it)->__getThing(i)->getCreature(); if(creature != NULL && creature->getPlayer()) to_kick.push_back(creature->getPlayer()); } } while(to_kick.empty() == false) { Player* c = to_kick.back(); to_kick.pop_back(); kickPlayer(NULL, c->getName()); } // we need to remove players from beds HouseBedItemList::iterator bit; for(bit = bedsList.begin(); bit != bedsList.end(); ++bit) { if((*bit)->getSleeper() != 0) { (*bit)->wakeUp(NULL); } } //clean access lists houseOwner = 0; setAccessList(SUBOWNER_LIST, ""); setAccessList(GUEST_LIST, ""); for(HouseDoorList::iterator it = doorList.begin(); it != doorList.end(); ++it){ (*it)->setAccessList(""); } //reset paid date paidUntil = 0; rentWarnings = 0; } std::string name; if(guid != 0 && IOPlayer::instance()->getNameByGuid(guid, name)){ houseOwner = guid; houseOwnerName = name; } updateDoorDescription(); setLastWarning(std::time(NULL)); //So the new owner has one day before he start the payment }
void House::setOwner(uint32_t guid, bool updateDatabase/* = true*/, Player* player/* = nullptr*/) { if (updateDatabase && owner != guid) { Database* db = Database::getInstance(); std::ostringstream query; query << "UPDATE `houses` SET `owner` = " << guid << ", `bid` = 0, `bid_end` = 0, `last_bid` = 0, `highest_bidder` = 0 WHERE `id` = " << id; db->executeQuery(query.str()); } if (isLoaded && owner == guid) { return; } isLoaded = true; if (owner != 0) { //send items to depot if (player) { transferToDepot(player); } else { transferToDepot(); } for (HouseTile* tile : houseTiles) { if (const CreatureVector* creatures = tile->getCreatures()) { for (int32_t i = creatures->size(); --i >= 0;) { kickPlayer(nullptr, (*creatures)[i]->getPlayer()); } } } // Remove players from beds for (BedItem* bed : bedsList) { if (bed->getSleeper() != 0) { bed->wakeUp(nullptr); } } //clean access lists owner = 0; setAccessList(SUBOWNER_LIST, ""); setAccessList(GUEST_LIST, ""); for (Door* door : doorList) { door->setAccessList(""); } //reset paid date paidUntil = 0; rentWarnings = 0; } std::string name; if (guid != 0 && IOLoginData::getNameByGuid(guid, name)) { owner = guid; ownerName = name; } updateDoorDescription(); }
void House::setOwner(uint32_t guid) { owner = guid; updateDoorDescription(); }
void House::setHouseOwner(uint32_t guid, bool updateDatabase/* = true*/, Player* player/* = NULL*/) { if (updateDatabase) { Database* db = Database::getInstance(); std::ostringstream query; query << "UPDATE `houses` SET `owner` = " << guid << " WHERE `id` = " << houseid; db->executeQuery(query.str()); } if (isLoaded && houseOwner == guid) { return; } isLoaded = true; if (houseOwner) { //send items to depot if (player) { transferToDepot(player); } else { transferToDepot(); } PlayerVector toKick; for (HouseTileList::iterator it = houseTiles.begin(); it != houseTiles.end(); ++it) { if (const CreatureVector* creatures = (*it)->getCreatures()) { for (CreatureVector::const_iterator cit = creatures->begin(), cend = creatures->end(); cit != cend; ++cit) { Player* player = (*cit)->getPlayer(); if (player) { toKick.push_back(player); } } } } while (!toKick.empty()) { Player* c = toKick.back(); toKick.pop_back(); kickPlayer(NULL, c->getName()); } // we need to remove players from beds HouseBedItemList::iterator bit; for (bit = bedsList.begin(); bit != bedsList.end(); ++bit) { if ((*bit)->getSleeper() != 0) { (*bit)->wakeUp(NULL); } } //clean access lists houseOwner = 0; setAccessList(SUBOWNER_LIST, ""); setAccessList(GUEST_LIST, ""); for (HouseDoorList::iterator it = doorList.begin(); it != doorList.end(); ++it) { (*it)->setAccessList(""); } //reset paid date paidUntil = 0; rentWarnings = 0; } std::string name; if (guid != 0 && IOLoginData::getInstance()->getNameByGuid(guid, name)) { houseOwner = guid; houseOwnerName = name; } updateDoorDescription(); }
void House::setPrice(uint32_t _price, bool update/* = false*/) { price = _price; if(update && !owner) updateDoorDescription(); }