bool Party::invitePlayer(Player& player) { if (isPlayerInvited(&player)) { return false; } std::ostringstream ss; ss << player.getName() << " has been invited."; if (memberList.empty() && inviteList.empty()) { ss << " Open the party channel to communicate with your members."; g_game.updatePlayerShield(leader); leader->sendCreatureSkull(leader); } leader->sendTextMessage(MESSAGE_INFO_DESCR, ss.str()); inviteList.push_back(&player); for (Player* member : memberList) { g_game.updatePlayerHelpers(*member); } g_game.updatePlayerHelpers(*leader); leader->sendCreatureShield(&player); player.sendCreatureShield(leader); player.addPartyInvitation(this); ss.str(std::string()); ss << leader->getName() << " has invited you to " << (leader->getSex() == PLAYERSEX_FEMALE ? "her" : "his") << " party."; player.sendTextMessage(MESSAGE_INFO_DESCR, ss.str()); return true; }
bool Party::removeInvite(Player* player) { if (!player || player->isRemoved() || !isPlayerInvited(player)) { return false; } PlayerVector::iterator it = std::find(inviteList.begin(), inviteList.end(), player); if (it != inviteList.end()) { inviteList.erase(it); } player->removePartyInvitation(this); getLeader()->sendPlayerPartyIcons(player); player->sendPlayerPartyIcons(getLeader()); if (disbandParty()) { disband(); } return true; }