- Katılım
- 20 Eki 2017
- Konular
- 468
- Mesajlar
- 9,380
- Çözüm
- 271
- Online süresi
- 11mo 27d
- Reaksiyon Skoru
- 8,233
- Altın Konu
- 47
- TM Yaşı
- 8 Yıl 7 Ay 29 Gün
- Başarım Puanı
- 326
- Yaş
- 25
- MmoLira
- 97,721
- DevLira
- 242
HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Teşekkür ederim
- Katılım
- 26 Eki 2021
- Konular
- 334
- Mesajlar
- 1,048
- Çözüm
- 6
- Online süresi
- 3mo 6d
- Reaksiyon Skoru
- 1,035
- Altın Konu
- 39
- Başarım Puanı
- 221
- Yaş
- 28
- MmoLira
- 15,577
- DevLira
- 36
- Katılım
- 11 Mar 2017
- Konular
- 146
- Mesajlar
- 2,117
- Çözüm
- 20
- Online süresi
- 6mo 15d
- Reaksiyon Skoru
- 1,776
- Altın Konu
- 2
- Başarım Puanı
- 284
- MmoLira
- 3,316
- DevLira
- 16
Paylaşım için teşekkürler
- Katılım
- 25 Ocak 2019
- Konular
- 134
- Mesajlar
- 2,442
- Çözüm
- 42
- Online süresi
- 3mo 17h
- Reaksiyon Skoru
- 1,572
- Altın Konu
- 6
- TM Yaşı
- 7 Yıl 4 Ay 22 Gün
- Başarım Puanı
- 249
- MmoLira
- 6,747
- DevLira
- -6
Paylaşım için teşekkürler.
- Katılım
- 16 Eki 2009
- Konular
- 82
- Mesajlar
- 2,278
- Çözüm
- 1
- Online süresi
- 22d 19h
- Reaksiyon Skoru
- 825
- Altın Konu
- 16
- Başarım Puanı
- 239
- Yaş
- 36
- MmoLira
- 4,621
- DevLira
- 12
Merhaba,
Yıllardır böyle saçma bir olay neden var diye merak ettiğim, eminim bazılarınızın da merak ettiği bizler için küçük ama kainat için de küçük bir düzenleme paylaşacağım.
Yabancı bir forumda gezerken gördüm, benim gibi bu tarz önemsenmeyen olayları ciddi kafasına takan, her şey kusursuz ve mükemmel olsun diye düşünenlerin işine yarayacaktır eminim.
Ha bu arada, Owsap paylaşmış başka bir forumda teşekkür ederim kendisine.
Yabancı platformlarda satış yapan arkadaşlar, kendi kalitelerini sunmak için topluluğa güzel içerikler paylaşıyorlar. Umarım bizimkiler de biraz faydalı olmaya çalışarak bu bölümü daha doğru ve güzel içeriklerle doldurabilirler. Malum eventlflaglar ile GM kod kapatma gibi şeyler çok üzücü bölüm kalitesi için.
Düzelteceğimiz sorun tam olarak şu ;
![]()
Ben görsel ile anlamadım derseniz L tuşuna basıp chat-log açtığınızda normal sohbetin mala bağladığını görebilirsiniz.
Client Source/UserInterface/Locale_Inc.h aç ve aşağıdaki kodu müsait bir yere dahil et
Kod:#define /* @author: Owsap */ ENABLE_CHAT_LOG_FIX // Chat-log window fix
Client Source/UserInterface/PythonChat.cpp aç ve aşağıdaki düzenlemeleri yap
Kod:/// 1. // Şunun içerisinden @ void CPythonChat::UpdateViewMode aşağıdaki alanı bul TChatLineList* pLineList = &(pChatSet->m_ShowingChatLineList); // Bununla Değiştir #if defined(ENABLE_CHAT_LOG_FIX) TChatLineList* pLineList = &(dwID == CHAT_SET_LOG_WINDOW ? pChatSet->m_ShowingChatLogLineList : pChatSet->m_ShowingChatLineList); #else TChatLineList* pLineList = &(pChatSet->m_ShowingChatLineList); #endif /// 2. // Şunun içerisinden @ void CPythonChat::UpdateEditMode aşağıdaki alanı bul TChatLineList* pLineList = &(pChatSet->m_ShowingChatLineList); // Bununla değiştir #if defined(ENABLE_CHAT_LOG_FIX) TChatLineList* pLineList = &(dwID == CHAT_SET_LOG_WINDOW ? pChatSet->m_ShowingChatLogLineList : pChatSet->m_ShowingChatLineList); #else TChatLineList* pLineList = &(pChatSet->m_ShowingChatLineList); #endif /// 3. // Şunun içerisinden @ void CPythonChat::UpdateLogMode aşağıdaki alanı bul TChatLineList* pLineList = &(pChatSet->m_ShowingChatLineList); // Bununla değiştir #if defined(ENABLE_CHAT_LOG_FIX) TChatLineList* pLineList = &(dwID == CHAT_SET_LOG_WINDOW ? pChatSet->m_ShowingChatLogLineList : pChatSet->m_ShowingChatLineList); #else TChatLineList* pLineList = &(pChatSet->m_ShowingChatLineList); #endif /// 4. // Şunun içerisinden @ int CPythonChat::GetLineCount aşağıdaki alanı bul for (DWORD i = 0; i < m_ChatLineDeque.size(); ++i) { if (!pChatSet->CheckMode(m_ChatLineDeque[i]->iType)) continue; ++iCount; } // Bununla değiştir #if defined(ENABLE_CHAT_LOG_FIX) TChatLineDeque ChatLineDeque = (dwID == CHAT_SET_LOG_WINDOW ? m_ChatLogLineDeque : m_ChatLineDeque); for (DWORD i = 0; i < ChatLineDeque.size(); ++i) { if (!pChatSet->CheckMode(ChatLineDeque[i]->iType)) continue; ++iCount; } #else for (DWORD i = 0; i < m_ChatLineDeque.size(); ++i) { if (!pChatSet->CheckMode(m_ChatLineDeque[i]->iType)) continue; ++iCount; } #endif /// 5. // Bunun içerisinden @ CPythonChat::TChatLineList* CPythonChat::GetChatLineListPtr aşağıdaki alanı bul return &(rChatSet.m_ShowingChatLineList); // Bununla değiştir #if defined(ENABLE_CHAT_LOG_FIX) return &(dwID == CHAT_SET_LOG_WINDOW ? rChatSet.m_ShowingChatLogLineList : rChatSet.m_ShowingChatLineList); #else return &(rChatSet.m_ShowingChatLineList); #endif /// 6. // Bu fonksiyonun en sonuna ekle @void CPythonChat::ArrangeShowingChat #if defined(ENABLE_CHAT_LOG_FIX) ArrangeShowingChatLog(dwID); #endif /// 7. // Bu fonksiyonun en sonuna ekle@ void CPythonChat::AppendChat #if defined(ENABLE_CHAT_LOG_FIX) AppendChatLog(iType, c_szChat); #endif /// 8. // Ara DWORD CPythonChat::GetChatColor(int iType) // Üstüne ekle #if defined(ENABLE_CHAT_LOG_FIX) void CPythonChat::AppendChatLog(int iType, const char* c_szChat) { // DEFAULT_FONT CGraphicText* pkDefaultFont = static_cast<CGraphicText*>(DefaultFont_GetResource()); if (!pkDefaultFont) { TraceError("CPythonChat::AppendChatLog - CANNOT_FIND_DEFAULT_FONT"); return; } // END_OF_DEFAULT_FONT IAbstractApplication& rApp = IAbstractApplication::GetSingleton(); SChatLine* pChatLine = SChatLine::New(); pChatLine->iType = iType; pChatLine->Instance.SetValue(c_szChat); #if defined(WJ_MULTI_TEXTLINE) pChatLine->Instance.DisableEnterToken(); #endif // DEFAULT_FONT pChatLine->Instance.SetTextPointer(pkDefaultFont); // END_OF_DEFAULT_FONT pChatLine->fAppendedTime = rApp.GetGlobalTime(); pChatLine->SetColorAll(GetChatColor(iType)); m_ChatLogLineDeque.emplace_back(pChatLine); if (m_ChatLogLineDeque.size() > CHAT_LINE_MAX_NUM) { SChatLine* pChatLine = m_ChatLogLineDeque.front(); SChatLine::Delete(pChatLine); m_ChatLogLineDeque.pop_front(); } for (TChatSetMap::iterator itor = m_ChatSetMap.begin(); itor != m_ChatSetMap.end(); ++itor) { TChatSet* pChatSet = &(itor->second); pChatSet->m_ShowingChatLogLineList.emplace_back(pChatLine); if (pChatSet->m_ShowingChatLogLineList.size() > CHAT_LINE_MAX_NUM) pChatSet->m_ShowingChatLogLineList.pop_front(); } } void CPythonChat::ArrangeShowingChatLog(DWORD dwID) { TChatSet* pChatSet = GetChatSetPtr(dwID); if (!pChatSet) return; pChatSet->m_ShowingChatLogLineList.clear(); TChatLineDeque TempChatLineDeque; for (TChatLineDeque::iterator itor = m_ChatLogLineDeque.begin(); itor != m_ChatLogLineDeque.end(); ++itor) { TChatLine* pChatLine = *itor; if (pChatSet->CheckMode(pChatLine->iType)) TempChatLineDeque.emplace_back(pChatLine); } int icurLineCount = TempChatLineDeque.size(); int iVisibleLineCount = min(icurLineCount, (pChatSet->m_iHeight + pChatSet->m_iStep) / pChatSet->m_iStep); int iEndLine = iVisibleLineCount + int(float(icurLineCount - iVisibleLineCount - 1) * pChatSet->m_fEndPos); ///// int iHeight = 12; for (int i = min(icurLineCount - 1, iEndLine); i >= 0; --i) { if (!pChatSet->CheckMode(TempChatLineDeque[i]->iType)) continue; if (pChatSet->m_iHeight + pChatSet->m_iStep <= iHeight) break; pChatSet->m_ShowingChatLogLineList.emplace_front(TempChatLineDeque[i]); iHeight += pChatSet->m_iStep; } } #endif /// 9. // Bunun içerisinden @ void CPythonChat::Close aşağıdaki alanı bul TChatLineList* pLineList = &(rChatSet.m_ShowingChatLineList); for (TChatLineList::iterator itor = pLineList->begin(); itor != pLineList->end(); ++itor) { TChatLine* pChatLine = (*itor); pChatLine->fAppendedTime = 0.0f; } // Altına bunu ekle #if defined(ENABLE_CHAT_LOG_FIX) pLineList = &(rChatSet.m_ShowingChatLogLineList); for (TChatLineList::iterator itor = pLineList->begin(); itor != pLineList->end(); ++itor) { TChatLine* pChatLine = (*itor); pChatLine->fAppendedTime = 0.0f; } #endif /// 10. // Bunun içerisinden @ void CPythonChat::Destroy aşağıdaki alanı bul m_ChatLineDeque.clear(); // Altına ekle #if defined(ENABLE_CHAT_LOG_FIX) m_ShowingChatLogLineList.clear(); m_ChatLogLineDeque.clear(); #endif /// 11. // Bunun içerisinden @ CPythonChat::~CPythonChat aşağıdaki alanı bul assert(m_WhisperMap.empty()); // Altına ekle #if defined(ENABLE_CHAT_LOG_FIX) assert(m_ChatLogLineDeque.empty()); assert(m_ShowingChatLogLineList.empty()); #endif
Client Source/UserInterface/PythonChat.h aç ve aşağıdaki düzenlemeleri yap
Kod:/// 1. // Ara enum EBoardState // Üstüne ekle #if defined(ENABLE_CHAT_LOG_FIX) enum EChatWindow { CHAT_SET_CHAT_WINDOW, CHAT_SET_LOG_WINDOW }; #endif /// 2. // Bunun içerisinde @ struct SChatSet aşağıdakini bul TChatLineList m_ShowingChatLineList; // Altına ekle #if defined(ENABLE_CHAT_LOG_FIX) TChatLineList m_ShowingChatLogLineList; #endif /// 3. // Ara void ArrangeShowingChat(DWORD dwID); // Altına ekle #if defined(ENABLE_CHAT_LOG_FIX) // Chat-log void AppendChatLog(int iType, const char* c_szChat); void ArrangeShowingChatLog(DWORD dwID); #endif /// 4. // Ara TWaitChatList m_WaitChatList; // Altıne Ekle #if defined(ENABLE_CHAT_LOG_FIX) TChatLineDeque m_ChatLogLineDeque; TChatLineList m_ShowingChatLogLineList; #endif
Son olarak bu işlemleri yaparken aşağıdakini arkaplanda aktif etmeniz şiddetle önerilir.
Hepinize bir dönem kumar borcu olduğu için kıbrıs otellerinde ücretsiz konser vermek zorunda kalan Serdar Ortaç'ın şansını diliyorum.
@Tunga gibi değerli forum emekçilerine de saygılarımı iletiyorum
İyi forumlar.
Paylaşım için teşekkürler.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 2K
- Cevaplar
- 9
- Görüntüleme
- 451
- Cevaplar
- 12
- Görüntüleme
- 2K
- Cevaplar
- 5
- Görüntüleme
- 1K
- Cevaplar
- 2
- Görüntüleme
- 2K








