Durch die Gildennachrichten werden log's vollgespamt, die dazu führen (können), dass dein mysqlserver durch Überlastung down geht. Natürlich auch nur wenn's mehrere Personen machen durch diesen fix, werden die Nachrichten nicht mehr geloggt. Außerdem kann man dadurch nur noch alle 10 minuten was in die Gildennachrichten schreiben.
Code
- Öffne: Guild.h & suche nach :
- EventMap m_GuildInviteEventMap;
- Darunter hinzufügen: protected: int m_guildPostCommentPulse;
- Öffne Guild.cpp
- Such die function: void CGuild::AddComment(LPCHARACTER ch, const std::string& str)
- & ersetz den ganzen Code mit dem hier.
- void CGuild::AddComment(LPCHARACTER ch, const std::string& str)
- { if (str.length() > GUILD_COMMENT_MAX_LEN || str.length() == 0) // Added string null verification return; // Compare last pulse with current pulse and notify the player if (m_guildPostCommentPulse > thecore_pulse()) { int deltaInSeconds = ((m_guildPostCommentPulse / PASSES_PER_SEC(1)) - (thecore_pulse() / PASSES_PER_SEC(1))); int minutes = deltaInSeconds / 60; int seconds = (deltaInSeconds - (minutes * 60)); ch->ChatPacket(CHAT_TYPE_INFO, "Du kannst diese Aktion erst in: %02d minuten und %02d sekunden ausfuehren!", minutes, seconds); return; } char text[GUILD_COMMENT_MAX_LEN * 2 + 1]; DBManager::instance().EscapeString(text, sizeof(text), str.c_str(), str.length()); DBManager::instance().FuncAfterQuery(void_bind(std::bind1st(std::mem_fun(&CGuild::RefreshCommentForce),this),ch->GetPlayerID()), "INSERT INTO guild_comment%s(guild_id, name, notice, content, time) VALUES(%u, '%s', %d, '%s', NOW())", get_table_postfix(), m_data.guild_id, ch->GetName(), (str[0] == '!') ? 1 : 0, text); // Set comment pulse to 10 minutes m_guildPostCommentPulse = thecore_pulse() + PASSES_PER_SEC(10*60);
- }
- Falls einer das doch Released hat hier bitte Closen danke.
- Quelle: https://metin2dev.org/board/index.php?/topic/17279-post-guild-comment-flood-mysql/
Quelle: Bitte melden Sie sich an, um diesen Link zu sehen.