// Bunun altinda ara
/*
* ITEM ATTR
*/
TItemAttrTable* p = (TItemAttrTable*) data;
// Altina ekle
std::map<BYTE, DWORD> mAttrMaxRates;
// Bul
g_map_itemAttr[p->dwApplyIndex] = *p;
// Altina ekle
for (const auto& rate : p->lValues)
{
auto& currentMax = mAttrMaxRates[p->dwApplyIndex];
if (rate > currentMax)
currentMax = rate;
}
// Hemen altinda bul
sys_log (0, "ITEM_ATTR[%d]: %s %u", p->dwApplyIndex, p->szApply, p->dwProb);
}
// Ustune ekle
ITEM_MANAGER* item_manager = &ITEM_MANAGER::instance();
item_manager->SetAttrMaxRates(mAttrMaxRates);
// Ornek olarak boyle olmali
if (size)
{
TItemAttrTable* p = (TItemAttrTable*) data;
std::map<BYTE, DWORD> mAttrMaxRates;
for (int i = 0; i < size; ++i, ++p)
{
if (p->dwApplyIndex >= MAX_APPLY_NUM)
{
continue;
}
g_map_itemAttr[p->dwApplyIndex] = *p;
for (const auto& rate : p->lValues)
{
auto& currentMax = mAttrMaxRates[p->dwApplyIndex];
if (rate > currentMax)
currentMax = rate;
}
sys_log (0, "ITEM_ATTR[%d]: %s %u", p->dwApplyIndex, p->szApply, p->dwProb);
}
ITEM_MANAGER* item_manager = &ITEM_MANAGER::instance();
item_manager->SetAttrMaxRates(mAttrMaxRates);
}