Hey undzwar habe ich vor kurzem ein Multilanguage gefunden.
Nun wollte ich es bei mir mal einbauen, hat natürlich soweit alles geklappt, nun ist das problem das die HideFlag methode nicht so richtig funktioniert.
Beispiel:
Ich klicke auf Off - Es passiert nichts, ziehe ich ein Item an oder aus oder update mein Level passiert etwas, die Flagge verschwindet.
Anscheinend fehlt in der AttachFlag Methode irgendeine Update Methode damit es sich updated. (Vermutung)
Code
- #ifdef ENABLE_MULTI_LANGUAGE
- void CPythonTextTail::AttachFlag(DWORD dwVID)
- {
- TTextTailMap::iterator itor = m_CharacterTextTailMap.find(dwVID);
- if (m_CharacterTextTailMap.end() == itor)
- return;
- TTextTail* pTextTail = itor->second;
- CInstanceBase* pCharacterInstance = CPythonCharacterManager::Instance().GetInstancePtr(dwVID);
- if (pCharacterInstance->IsPC())
- {
- if (pCharacterInstance->GetLanguageString())
- {
- char szLanguagePath[256];
- sprintf(szLanguagePath, "d:/ymir work/ui/language/game_language/%s.dds", pCharacterInstance->GetLanguageString());
- if (CResourceManager::Instance().IsFileExist(szLanguagePath))
- {
- pTextTail->pLanguageImageInstance = CGraphicImageInstance::New();
- pTextTail->pLanguageImageInstance->SetImagePointer((CGraphicImage)CResourceManager::Instance().GetResourcePointer(szLanguagePath));
- }
- }
- }
- }
- void CPythonTextTail::DetachFlag(DWORD dwVID)
- {
- TTextTailMap::iterator itor = m_CharacterTextTailMap.find(dwVID);
- if (m_CharacterTextTailMap.end() == itor)
- return;
- TTextTail pTextTail = itor->second;
- if (pTextTail->pLanguageImageInstance)
- {
- CGraphicImageInstance::Delete(pTextTail->pLanguageImageInstance);
- pTextTail->pLanguageImageInstance = NULL;
- }
- }
- #endif
Genau so haben wir in der RefreshTextTail Methode dies hier eingefügt:
Allerdings wie s.o wird erst nach Levelupdate oder Item aus/anziehen die Flagge sichtbar/unsichtbar.
Hätte eventuell jemand dazu eine lösung?
Discord: mauricenew