diff --git a/src/packet/packet_ms.cpp b/src/packet/packet_ms.cpp index 4026565..13012bb 100755 --- a/src/packet/packet_ms.cpp +++ b/src/packet/packet_ms.cpp @@ -293,7 +293,7 @@ AOPacket *PacketMS::validateIcPacket(AOClient &client) const QString l_other_emote = "0"; QString l_other_offset = "0"; QString l_other_flip = "0"; - QString new_offset = "0&0"; + QString new_offset = l_incoming_args[17].toString(); if (client.m_pairing_with != -1) { for (int l_client_id : area->joinedIDs()) { AOClient *l_client = client.getServer()->getClientByID(l_client_id); @@ -306,7 +306,6 @@ AOPacket *PacketMS::validateIcPacket(AOClient &client) const } } } - bool autopaired = false; if (!l_pairing) { if (client.autopair && client.m_pos == "wit" && area->status() != AreaData::Status::CASING) { int pair_index = -1; @@ -337,16 +336,13 @@ AOPacket *PacketMS::validateIcPacket(AOClient &client) const AOClient *l_client = client.getServer()->getClientByID(l_client_id); if (l_client->m_char_id == l_other_charid && l_client->autopair && l_client->m_pos == client.m_pos) { client_found = true; - autopaired = true; l_other_name = l_client->m_current_iniswap; l_other_emote = l_client->m_emote; l_other_flip = l_client->m_flipping; int offset = pair_index == 0 ? -25 : 25; if(l_client->hide_desk || client.hide_desk) l_args[0] = "0"; - new_offset = QString::number(offset); - if(l_client->m_offset == "0&0" || l_client->m_offset == "") { - l_other_offset = QString::number(offset * -1); - } + if(new_offset == "0&0" || new_offset == "") new_offset = QString::number(offset); + if(l_client->m_offset == "0&0" || l_client->m_offset == "") l_other_offset = QString::number(offset * -1); else l_other_offset = l_client->m_offset; l_front_back = l_front_back == "" ? "^0" : l_front_back; } @@ -358,20 +354,15 @@ AOPacket *PacketMS::validateIcPacket(AOClient &client) const area->m_autopair[1] = client.m_char_id; } area->m_lastWitChar = client.m_char_id; + }else{ + l_other_charid = -1; + l_front_back = ""; } - }else { - l_other_charid = -1; - l_front_back = ""; } l_args.append(QString::number(l_other_charid) + l_front_back); l_args.append(l_other_name); l_args.append(l_other_emote); - - // self offset - if (!autopaired) { - client.m_offset = l_incoming_args[17].toString(); - new_offset = client.m_offset; - } + client.m_offset = new_offset; // versions 2.6-2.8 cannot validate y-offset so we send them just the x-offset if ((client.m_version.release == 2) && (client.m_version.major == 6 || client.m_version.major == 7 || client.m_version.major == 8)) { QString l_x_offset = new_offset.split("&")[0];