Opublikowano 28 Stycznia28 Sty Witam.Znalazłem kod na naszym forum aby zmienić kolor poziomu wyświetlanego nad postacią. Chciałem użyć kod aby zmienić kolor nazwy gildii nad postacią.W załączniku ss'y jak wygląda kod w praktyce. Co muszę zrobić aby kod zadziałał?kod z forum:C++Kod został skopiowanyvoid CInstanceBase::UpdateTextTailLevel(DWORD level){ static D3DXCOLOR s_kLevelColor = D3DXCOLOR(152.0f/255.0f, 255.0f/255.0f, 51.0f/255.0f, 1.0f); const char* levelColors[] = { "|cFF959697", "|cFFFFFFFF", "|cFF00FF7F", "|cFF00FF00", "|cFF00CCFF", "|cFF0000FF", "|cFFDA70D6", "|cFFC67171", "|cFF00FFFF", "|cFFFFCC00", "|cFFFF4500", "|cFFCD661D" }; int colorIndex = (level >= 105) ? 11 : (level >= 100) ? 10 : (level >= 90) ? 9 : (level >= 80) ? 8 : (level >= 70) ? 7 : (level >= 60) ? 6 : (level >= 50) ? 5 : (level >= 40) ? 4 : (level >= 30) ? 3 : (level >= 20) ? 2 : (level >= 10) ? 1 : 0; char szText[256]; sprintf(szText, "%sLv. %d|r", levelColors[colorIndex], level); CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor);}C++Kod został skopiowany#ifdef SHOW_LIDER_AND_GENERAL_GUILDvoid CPythonTextTail::RegisterCharacterTextTail (DWORD dwGuildID, BYTE dwNewIsGuildName, DWORD dwVirtualID, const D3DXCOLOR& c_rColor, float fAddHeight)#elsevoid CPythonTextTail::RegisterCharacterTextTail (DWORD dwGuildID, DWORD dwVirtualID, const D3DXCOLOR& c_rColor, float fAddHeight)#endif{ CInstanceBase* pCharacterInstance = CPythonCharacterManager::Instance().GetInstancePtr (dwVirtualID); if (!pCharacterInstance) { return; } TTextTail* pTextTail = RegisterTextTail (dwVirtualID, pCharacterInstance->GetNameString(), pCharacterInstance->GetGraphicThingInstancePtr(), pCharacterInstance->GetGraphicThingInstanceRef().GetHeight() + fAddHeight, c_rColor); CGraphicTextInstance* pTextInstance = pTextTail->pTextInstance; pTextInstance->SetOutline (true); pTextInstance->SetVerticalAlign (CGraphicTextInstance::VERTICAL_ALIGN_BOTTOM); pTextTail->pMarkInstance=NULL; pTextTail->pGuildNameTextInstance=NULL; pTextTail->pTitleTextInstance=NULL; pTextTail->pLevelTextInstance=NULL; if (0 != dwGuildID) { pTextTail->pMarkInstance = CGraphicMarkInstance::New(); DWORD dwMarkID = CGuildMarkManager::Instance().GetMarkID (dwGuildID); if (dwMarkID != CGuildMarkManager::INVALID_MARK_ID) { std::string markImagePath; if (CGuildMarkManager::Instance().GetMarkImageFilename (dwMarkID / CGuildMarkImage::MARK_TOTAL_COUNT, markImagePath)) { pTextTail->pMarkInstance->SetImageFileName (markImagePath.c_str()); pTextTail->pMarkInstance->Load(); pTextTail->pMarkInstance->SetIndex (dwMarkID % CGuildMarkImage::MARK_TOTAL_COUNT); } } std::string strGuildName; if (!CPythonGuild::Instance().GetGuildName (dwGuildID, &strGuildName)) { strGuildName = "Noname"; } #ifdef SHOW_LIDER_AND_GENERAL_GUILD if (dwNewIsGuildName == 3) strGuildName += std::string(" ") + SHOW_LIDER_AND_GENERAL_GUILD_VALUE1; else if (dwNewIsGuildName == 2) strGuildName += std::string(" ") + SHOW_LIDER_AND_GENERAL_GUILD_VALUE2; #endif DWORD Guildlevel = CPythonGuild::Instance().GetGuildLevel(dwGuildID); static D3DXCOLOR gGuildLevelColor = D3DXCOLOR(152.0f/255.0f, 255.0f/255.0f, 51.0f/255.0f, 1.0f); const char* GuildlevelColors[] = { "|cFF959697", "|cFFFFFFFF", "|cFF00FF7F", "|cFF00FF00", "|cFF00CCFF", "|cFF0000FF", "|cFFDA70D6", "|cFFC67171", "|cFF00FFFF", "|cFFFFCC00" }; int colorIndex = (Guildlevel >= 10) ? 9 : (Guildlevel >= 9) ? 8 : (Guildlevel >= 8) ? 7 : (Guildlevel >= 7) ? 6 : (Guildlevel >= 6) ? 5 : (Guildlevel >= 5) ? 4 : (Guildlevel >= 4) ? 3 : (Guildlevel >= 3) ? 2 : (Guildlevel >= 2) ? 1 : 0; char szGuildText[256]; sprintf(szGuildText, "%s|r", GuildLevelColors[colorIndex]); CGraphicTextInstance*& prGuildNameInstance = pTextTail->pGuildNameTextInstance; prGuildNameInstance = CGraphicTextInstance::New(); prGuildNameInstance->SetTextPointer (ms_pFont); prGuildNameInstance->SetOutline (true); prGuildNameInstance->SetHorizonalAlign (CGraphicTextInstance::HORIZONTAL_ALIGN_CENTER); prGuildNameInstance->SetVerticalAlign (CGraphicTextInstance::VERTICAL_ALIGN_BOTTOM); prGuildNameInstance->SetValue (strGuildName.c_str()); prGuildNameInstance->Update(); } m_CharacterTextTailMap.insert (TTextTailMap::value_type (dwVirtualID, pTextTail));}
Opublikowano 29 Stycznia29 Sty Programista Co ty kombinujesz tutaj za wynalazki. CInstanceBase::UpdateTextTailLevel jest funkcją, której szukasz.
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto