void PartyRecv::processPartyMemberInfo(Net::MessageIn &msg) { const BeingId id = msg.readBeingId("account id"); if (msg.getVersion() >= 20171207) msg.readBeingId("char id"); const bool leader = msg.readInt32("leader") == 0U; int level = 0; if (msg.getVersionMain() >= 20170524 || msg.getVersionRe() >= 20170502 || packets_zero == true) { msg.readInt16("class"); level = msg.readInt16("level"); } const int x = msg.readInt16("x"); const int y = msg.readInt16("y"); const bool online = msg.readInt8("online") == 0U; msg.readString(24, "party name"); const std::string nick = msg.readString(24, "player name"); const std::string map = msg.readString(16, "map name"); msg.readInt8("pickup item share (&1)"); msg.readInt8("get item share (&2)"); if (Ea::taParty == nullptr) return; PartyMember *const member = Ea::taParty->addMember(id, nick); if (member != nullptr) { if ((partyTab != nullptr) && member->getOnline() != online) partyTab->showOnline(nick, fromBool(online, Online)); member->setLeader(leader); member->setOnline(online); member->setMap(map); member->setX(x); member->setY(y); if (level != 0) member->setLevel(level); } }