eu não vou resolver isso por hora não, eu não estou pretendendo abrir servidor e nada do tipo, eu só add as imagens na lista para facilitar a identificação (eu até dei uma melhorada depois desse códigio que passei aí para exibir 2 itens por linha), porém no momento eu parei nisso, estou estudando para ver se crio um painel para uso próprio, ainda tem as ferramentas da Angelica que também dei um tempo. (muita coisa para fazer, mais pouco incentivo para isso)
//drops list nos mobs , eu adicionei um espaçamento manual , porém existe outras maneiras de fazer
for (int i = 0; i < 32; i += 2) {
int id1 = pEssence->drop_matters[i].id;
float prob1 = pEssence->drop_matters[i].probability;
if (id1 != 0) {
CECIvtrItem *pItem1 = CECIvtrItem::CreateItem(id1, 0, 1);
if (!pItem1) continue;
ACString strImage1 = GetGameUIMan()->GetIconsImageString(CECGameUIMan::ICONS_INVENTORY, pItem1->GetIconFile());
pItem1->GetDetailDataFromLocal();
ACString strHint1 = A3DCOLOR_TO_STRING(pItem1->GetNameColor());
strHint1 += pItem1->GetName();
if (i + 1 < 32) {
int id2 = pEssence->drop_matters[i + 1].id;
float prob2 = pEssence->drop_matters[i + 1].probability;
if (id2 != 0) {
CECIvtrItem *pItem2 = CECIvtrItem::CreateItem(id2, 0, 1);
if (!pItem2) continue;
ACString strImage2 = GetGameUIMan()->GetIconsImageString(CECGameUIMan::ICONS_INVENTORY, pItem2->GetIconFile());
pItem2->GetDetailDataFromLocal();
ACString strHint2 = A3DCOLOR_TO_STRING(pItem2->GetNameColor());
strHint2 += pItem2->GetName();
temp.Format(_AL("%s [%.2f%%] %s^ffffff %s [%.2f%%] %s^ffffff\n\r"),
strImage1, prob1 * 100.f, strHint1,
strImage2, prob2 * 100.f, strHint2);
szText += temp;
}
}
else {
temp.Format(_AL("%s [%.2f%%] %s^ffffff%\n\r"),
strImage1, prob1 * 100.f, strHint1);
szText += temp;
}
}
}