M2Kingdoms 110 Posted September 5, 2018 (edited) Boa tarde a todos! Boas, existe um comando que no servidor que é o /messenger_auth t player_name que por consequência envia vários erros causando assim a sua desconectação causando o servidor offline. Claro que nem todos sabem disto aqueles (paneleirados nerds que só desgraçam a vida as pessoas e acham isto bueeeeda fixe) por exemplo. Mas para dar um fix basta seguir direito o tópico em baixo: Vamos procurar por : no messenger_manager.cpp: Code (Text): void MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny) E Substituem por este código: Code (Text): bool MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny) { DWORD dw1 = GetCRC32(companion.c_str(), companion.length()); DWORD dw2 = GetCRC32(account.c_str(), account.length()); char buf[64]; snprintf(buf, sizeof(buf), "%u:%u", dw1, dw2); DWORD dwComplex = GetCRC32(buf, strlen(buf)); if (m_set_requestToAdd.find(dwComplex) == m_set_requestToAdd.end()) { sys_log(0, "MessengerManager::AuthToAdd : request not exist %s -> %s", companion.c_str(), account.c_str()); return false; } m_set_requestToAdd.erase(dwComplex); if (!bDeny) { AddToList(companion, account); AddToList(account, companion); } return true; } Depois no ficheiro cmd_general.cpp procuram por: Code (Text): ACMD(do_messenger_auth) E substitui por: Code (Text): ACMD(do_messenger_auth) { if (ch->GetArena()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다.")); return; } char arg1[256], arg2[256]; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); if (!*arg1 || !*arg2) return; char answer = LOWER(*arg1); bool bIsDenied = answer != 'y'; bool bIsAdded = MessengerManager::instance().AuthToAdd(ch->GetName(), arg2, bIsDenied); // DENY if (bIsAdded && bIsDenied) { LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg2); if (tch) tch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님으로 부터 친구 등록을 거부 당했습니다."), ch->GetName()); } } Agora no messenger_manager.h Code (Text): void AuthToAdd(keyA account, keyA companion, bool bDeny); Substituem por: Code (Text): bool AuthToAdd(keyA account, keyA companion, bool bDeny); --- Autor: Mr. Tiger -- Abraço! Tópico original: Deci sa incepem ... Exista o comanda in server /messenger_auth t nume_player care ii printeaza playerului nume_player un mesaj in chat "a respins cererea de prietenie " . Asta o puteti pune intr-un modul python care o repeta de 1000/s si deconecteaza jucatorul.(sau ar trebui sa il deconecteze ). Acum rezolvarea: In messenger_manager.cpp cauta functia : Code (Text): void MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny) Si inlocuieste-o cu : Code (Text): bool MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny) { DWORD dw1 = GetCRC32(companion.c_str(), companion.length()); DWORD dw2 = GetCRC32(account.c_str(), account.length()); char buf[64]; snprintf(buf, sizeof(buf), "%u:%u", dw1, dw2); DWORD dwComplex = GetCRC32(buf, strlen(buf)); if (m_set_requestToAdd.find(dwComplex) == m_set_requestToAdd.end()) { sys_log(0, "MessengerManager::AuthToAdd : request not exist %s -> %s", companion.c_str(), account.c_str()); return false; } m_set_requestToAdd.erase(dwComplex); if (!bDeny) { AddToList(companion, account); AddToList(account, companion); } return true; } Apoi in cmd_general.cpp cauta comanda : Code (Text): ACMD(do_messenger_auth) si inlocuieste-o cu : Code (Text): ACMD(do_messenger_auth) { if (ch->GetArena()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다.")); return; } char arg1[256], arg2[256]; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); if (!*arg1 || !*arg2) return; char answer = LOWER(*arg1); bool bIsDenied = answer != 'y'; bool bIsAdded = MessengerManager::instance().AuthToAdd(ch->GetName(), arg2, bIsDenied); // DENY if (bIsAdded && bIsDenied) { LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg2); if (tch) tch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님으로 부터 친구 등록을 거부 당했습니다."), ch->GetName()); } } Edit: In messenger_manager.h cautati: Code (Text): void AuthToAdd(keyA account, keyA companion, bool bDeny); Si modificati in: Code (Text): bool AuthToAdd(keyA account, keyA companion, bool bDeny); Sursa: Mr. Tiger Edited September 5, 2018 by LynM2 (see edit history) 1 1 Kɛɛɗ and Colossal reacted to this Share this post Link to post Share on other sites