common_drop_item.txt

Indította Sindyke21, 2018-05-02, 08:58:17

Sziasztok!
Valaki el magyarázná hogy common_drop_item.txt-be mi micsoda!

NIVEL   TAXA    ITEM    DROP_GOLD     CORRIGIDO POR RANCOROSO
azt meg köszönném

game/src

item_manager_read_tables.cpp
[spoiler]
bool ITEM_MANAGER::ReadCommonDropItemFile(const char * c_pszFileName)
{
FILE * fp = fopen(c_pszFileName, "r");

if (!fp)
{
sys_err("Cannot open %s", c_pszFileName);
return false;
}

char buf[1024];

int lines = 0;

while (fgets(buf, 1024, fp))
{
++lines;

if (!*buf || *buf == '\n')
continue;

TDropItem d[MOB_RANK_MAX_NUM];
char szTemp[64];

memset(&d, 0, sizeof(d));

char * p = buf;
char * p2;

for (int i = 0; i <= MOB_RANK_S_KNIGHT; ++i)
{
for (int j = 0; j < 6; ++j)
{
p2 = strchr(p, '\t');

if (!p2)
break;

strlcpy(szTemp, p, MIN(sizeof(szTemp), (p2 - p) + 1));
p = p2 + 1;

switch (j)
{
case 0: break;
case 1: str_to_number(d[i].iLvStart, szTemp); break;
case 2: str_to_number(d[i].iLvEnd, szTemp); break;
case 3: d[i].fPercent = atof(szTemp); break;
case 4: strlcpy(d[i].szItemName, szTemp, sizeof(d[i].szItemName)); break;
case 5: str_to_number(d[i].iCount, szTemp); break;
}
}

DWORD dwPct = (DWORD) (d[i].fPercent * 10000.0f);
DWORD dwItemVnum = 0;

if (!ITEM_MANAGER::instance().GetVnumByOriginalName(d[i].szItemName, dwItemVnum))
{
// Ŕ̸§Ŕ¸·Î ¸řĂŁŔ¸¸é ąřČŁ·Î °Ë»ö
str_to_number(dwItemVnum, d[i].szItemName);
if (!ITEM_MANAGER::instance().GetTable(dwItemVnum))
{
sys_err("No such an item (name: %s)", d[i].szItemName);
fclose(fp);
return false;
}
}

if (d[i].iLvStart == 0)
continue;

g_vec_pkCommonDropItem[i].push_back(CItemDropInfo(d[i].iLvStart, d[i].iLvEnd, dwPct, dwItemVnum));
}
}

fclose(fp);

for (int i = 0; i < MOB_RANK_MAX_NUM; ++i)
{
std::vector<CItemDropInfo> & v = g_vec_pkCommonDropItem[i];
std::sort(v.begin(), v.end());

std::vector<CItemDropInfo>::iterator it = v.begin();

sys_log(1, "CommonItemDrop rank %d", i);

while (it != v.end())
{
const CItemDropInfo & c = *(it++);
sys_log(1, "CommonItemDrop %d %d %d %u", c.m_iLevelStart, c.m_iLevelEnd, c.m_iPercent, c.m_dwVnum);
}
}

return true;
}
[/spoiler]



Az alternatív droppért felelős a common_drop_item.txt.

1      25   1   27001   2000

iLvStart -   iLvEnd  - fPercent  - szItemName  -  iCount

Kezdőszint - Végszint - Esély - Tárgyvnum - Darabszám

Nagyon szépen köszönöm, a segítséged!!
Így már  értem