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