Рейтинг над головой персонажа
Чтобы добавить рейтинг, нужно в исходном коде клиента открыть файл UIHeadSay.cpp, найти:
#ifdef _LOG_NAME_ //и§’и‰ІеђЌз§°
if( CCharacter::IsShowLogName )
{
CChaStateMgr* pState = _pOwn->GetStateMgr();
int nCount = pState->GetSkillStateNum();
for( int i=0; i<nCount; i++ )
{
y -= 20;
CGuiFont::s_Font.Render( pState->GetSkillState(i)->szName, x, y, COLOR_WHITE );
}
}
#endif
и ниже вписать:
// Вывод рейтинга
if (_pOwn->IsPlayer()) {
if (_IsShowName) {
if (_pOwn->getGuildID())
y -= 14;
char RenderTextRating[32] = {0};
sprintf(RenderTextRating, "- [%d] -", CalculateRating(_pOwn->getGameAttr()));
int RatingLength = CGuiFont::s_Font.GetWidth(RenderTextRating);
CGuiFont::s_Font.Render(RenderTextRating, x - (RatingLength / 2), y - 28, 0xFF000000 );
CGuiFont::s_Font.Render(RenderTextRating, x - (RatingLength / 2) - 1, y - 28 - 1, 0xFF00FFFF );
}
}
Найти функцию:
void CHeadSay::SetName( const char* name )
{
_nChaNameOffX = 0 - CGuiFont::s_Font.GetWidth( name )/2;
}
И ниже вставить:
// Подсчет рейтинга
inline int CalculateRating(SGameAttr* attrArr) {
int result = 0;
result += attrArr->get(ATTR_HP);
return result;
}
В данном примере рейтинг выводит количество ATTR_HP (ХП персонажа).
Вы можете настроить свои формулы, к примеру сумму основных характеристик персонажа.