- Katılım
- 13 Haz 2013
- Konular
- 182
- Mesajlar
- 2,498
- Çözüm
- 92
- Online süresi
- 3mo 20d
- Reaksiyon Skoru
- 1,662
- Altın Konu
- 2
- TM Yaşı
- 12 Yıl 11 Ay 28 Gün
- Başarım Puanı
- 284
- Yaş
- 28
- MmoLira
- 8,540
- DevLira
- 84
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Öncelikle sistemi tamamalamaya yardımcı olan bütün herekese teşekkürler Soru-Cevap Bölümündeki
Özellikle @sourisincii arkadaşıma çok teşekkür ediyorum ve konuya gelelim
Sistem özelliği APPLY_MAX_NUM'u 3'ten 4'e taşımaktır
Bu sayede questten özellik verme yerine protodan kolayca halledilebilecektir uzatmadan anlatıma geçelim
Ek olarak locale/triçindeki item proto içine
ADDON_TYPE2 ADDON_VALUE2 VALUE0
kısımlarını değiştirip
ADDON_TYPE2 ADDON_VALUE2 ADDON_TYPE3 ADDON_VALUE3 VALUE0
hepsine APPLY_NONE 0 eklemen gerekiyor
client tarafındaki item proto için noTXT değil ise üsttekileri yapman lazım NoTXT ise
Navicat/query kısmına
alter table player.item_proto add (applytype3 TINYINT(4), applyvalue3 INT(11));
yaz satırlar eklensin
Özellikle @sourisincii arkadaşıma çok teşekkür ediyorum ve konuya gelelim
Sistem özelliği APPLY_MAX_NUM'u 3'ten 4'e taşımaktır
Bu sayede questten özellik verme yerine protodan kolayca halledilebilecektir uzatmadan anlatıma geçelim
ITEM_APPLY_MAX_NUM = 3,
//Değiştir
ITEM_APPLY_MAX_NUM = 4,
//Değiştir
ITEM_APPLY_MAX_NUM = 4,
//Ekle
#define ENABLE4APPLY
#define ENABLE4APPLY
// Bul
bool CClientManager::MirrorItemTableIntoDB()
// Değiştir
bool CClientManager::MirrorItemTableIntoDB()
{
for (itertype(m_vec_itemTable) it = m_vec_itemTable.begin(); it != m_vec_itemTable.end(); it++)
{
if (g_stLocaleNameColumn != "name")
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, %s, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(), g_stLocaleNameColumn.c_str(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
else
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
}
return true;
}
bool CClientManager::MirrorItemTableIntoDB()
// Değiştir
bool CClientManager::MirrorItemTableIntoDB()
{
for (itertype(m_vec_itemTable) it = m_vec_itemTable.begin(); it != m_vec_itemTable.end(); it++)
{
if (g_stLocaleNameColumn != "name")
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, %s, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(), g_stLocaleNameColumn.c_str(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
else
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
}
return true;
}
//Bul
bool CClientManager::InitializeItemTableSQL()
//Değiştir
bool CClientManager::InitializeItemTableSQL()
{
char query[4096];
snprintf(query, sizeof(query),
"SELECT vnum, vnum_range, name, %s, type, subtype, gold, shop_buy_price, weight, size, flag, wearflag, "
"antiflag, immuneflag+0, refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 "
"FROM item_proto%s ORDER BY vnum",
g_stLocaleNameColumn.c_str(), GetTablePostfix());
std::auto_ptr<SQLMsg> pkMsg(CDBManager::instance().DirectQuery(query));
SQLResult * pRes = pkMsg->Get();
if (!pRes->uiNumRows)
{
sys_err("Could not load item_proto. No results!");
return false;
}
sys_log(0, "ITEM_PROTO loading...");
if (!m_vec_itemTable.empty())
{
sys_log(0, "RELOAD: item_proto");
m_vec_itemTable.clear();
m_map_itemTableByVnum.clear();
}
m_vec_itemTable.resize(pRes->uiNumRows);
memset(&m_vec_itemTable[0], 0, sizeof(TItemTable) * m_vec_itemTable.size());
TItemTable * item_table = &m_vec_itemTable[0];
MYSQL_ROW data;
int col;
while ((data = mysql_fetch_row(pRes->pSQLResult)))
{
col = 0;
str_to_number(item_table->dwVnum, data[col++]);
str_to_number(item_table->dwVnumRange, data[col++]);
strlcpy(item_table->szName, data[col++], sizeof(item_table->szName));
strlcpy(item_table->szLocaleName, data[col++], sizeof(item_table->szLocaleName));
str_to_number(item_table->bType, data[col++]);
str_to_number(item_table->bSubType, data[col++]);
str_to_number(item_table->dwGold, data[col++]);
str_to_number(item_table->dwShopBuyPrice, data[col++]);
str_to_number(item_table->bWeight, data[col++]);
str_to_number(item_table->bSize, data[col++]);
str_to_number(item_table->dwFlags, data[col++]);
str_to_number(item_table->dwWearFlags, data[col++]);
str_to_number(item_table->dwAntiFlags, data[col++]);
str_to_number(item_table->dwImmuneFlag, data[col++]);
str_to_number(item_table->dwRefinedVnum, data[col++]);
str_to_number(item_table->wRefineSet, data[col++]);
str_to_number(item_table->bAlterToMagicItemPct, data[col++]);
str_to_number(item_table->bGainSocketPct, data[col++]);
str_to_number(item_table->sAddonType, data[col++]);
item_table->cLimitRealTimeFirstUseIndex = -1;
item_table->cLimitTimerBasedOnWearIndex = -1;
int i;
for (i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
{
str_to_number(item_table->aLimits.bType, data[col++]);
str_to_number(item_table->aLimits.lValue, data[col++]);
if (LIMIT_REAL_TIME_START_FIRST_USE == item_table->aLimits.bType)
item_table->cLimitRealTimeFirstUseIndex = (char)i;
if (LIMIT_TIMER_BASED_ON_WEAR == item_table->aLimits.bType)
item_table->cLimitTimerBasedOnWearIndex = (char)i;
}
for (i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
{
str_to_number(item_table->aApplies.bType, data[col++]);
str_to_number(item_table->aApplies.lValue, data[col++]);
}
for (i = 0; i < ITEM_VALUES_MAX_NUM; ++i)
str_to_number(item_table->alValues, data[col++]);
sys_log(1, "ITEM: #%-5lu %-24s %-24s VAL: %ld %ld %ld %ld %ld %ld WEAR %lu ANTI %lu IMMUNE %lu REFINE %lu REFINE_SET %u MAGIC_PCT %u",
item_table->dwVnum,item_table->szName,item_table->szLocaleName,
item_table->alValues[0],item_table->alValues[1],item_table->alValues[2],
item_table->alValues[3],item_table->alValues[4],item_table->alValues[5],
item_table->dwWearFlags,item_table->dwAntiFlags,item_table->dwImmuneFlag,
item_table->dwRefinedVnum,item_table->wRefineSet,item_table->bAlterToMagicItemPct);
m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table));
++item_table;
}
sort(m_vec_itemTable.begin(), m_vec_itemTable.end(), FCompareVnum());
sys_log(0, "CClientManager::InitializeMobTable:: %d items loaded.n", m_vec_itemTable.size());
return true;
}
bool CClientManager::InitializeItemTableSQL()
//Değiştir
bool CClientManager::InitializeItemTableSQL()
{
char query[4096];
snprintf(query, sizeof(query),
"SELECT vnum, vnum_range, name, %s, type, subtype, gold, shop_buy_price, weight, size, flag, wearflag, "
"antiflag, immuneflag+0, refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 "
"FROM item_proto%s ORDER BY vnum",
g_stLocaleNameColumn.c_str(), GetTablePostfix());
std::auto_ptr<SQLMsg> pkMsg(CDBManager::instance().DirectQuery(query));
SQLResult * pRes = pkMsg->Get();
if (!pRes->uiNumRows)
{
sys_err("Could not load item_proto. No results!");
return false;
}
sys_log(0, "ITEM_PROTO loading...");
if (!m_vec_itemTable.empty())
{
sys_log(0, "RELOAD: item_proto");
m_vec_itemTable.clear();
m_map_itemTableByVnum.clear();
}
m_vec_itemTable.resize(pRes->uiNumRows);
memset(&m_vec_itemTable[0], 0, sizeof(TItemTable) * m_vec_itemTable.size());
TItemTable * item_table = &m_vec_itemTable[0];
MYSQL_ROW data;
int col;
while ((data = mysql_fetch_row(pRes->pSQLResult)))
{
col = 0;
str_to_number(item_table->dwVnum, data[col++]);
str_to_number(item_table->dwVnumRange, data[col++]);
strlcpy(item_table->szName, data[col++], sizeof(item_table->szName));
strlcpy(item_table->szLocaleName, data[col++], sizeof(item_table->szLocaleName));
str_to_number(item_table->bType, data[col++]);
str_to_number(item_table->bSubType, data[col++]);
str_to_number(item_table->dwGold, data[col++]);
str_to_number(item_table->dwShopBuyPrice, data[col++]);
str_to_number(item_table->bWeight, data[col++]);
str_to_number(item_table->bSize, data[col++]);
str_to_number(item_table->dwFlags, data[col++]);
str_to_number(item_table->dwWearFlags, data[col++]);
str_to_number(item_table->dwAntiFlags, data[col++]);
str_to_number(item_table->dwImmuneFlag, data[col++]);
str_to_number(item_table->dwRefinedVnum, data[col++]);
str_to_number(item_table->wRefineSet, data[col++]);
str_to_number(item_table->bAlterToMagicItemPct, data[col++]);
str_to_number(item_table->bGainSocketPct, data[col++]);
str_to_number(item_table->sAddonType, data[col++]);
item_table->cLimitRealTimeFirstUseIndex = -1;
item_table->cLimitTimerBasedOnWearIndex = -1;
int i;
for (i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
{
str_to_number(item_table->aLimits.bType, data[col++]);
str_to_number(item_table->aLimits.lValue, data[col++]);
if (LIMIT_REAL_TIME_START_FIRST_USE == item_table->aLimits.bType)
item_table->cLimitRealTimeFirstUseIndex = (char)i;
if (LIMIT_TIMER_BASED_ON_WEAR == item_table->aLimits.bType)
item_table->cLimitTimerBasedOnWearIndex = (char)i;
}
for (i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
{
str_to_number(item_table->aApplies.bType, data[col++]);
str_to_number(item_table->aApplies.lValue, data[col++]);
}
for (i = 0; i < ITEM_VALUES_MAX_NUM; ++i)
str_to_number(item_table->alValues, data[col++]);
sys_log(1, "ITEM: #%-5lu %-24s %-24s VAL: %ld %ld %ld %ld %ld %ld WEAR %lu ANTI %lu IMMUNE %lu REFINE %lu REFINE_SET %u MAGIC_PCT %u",
item_table->dwVnum,item_table->szName,item_table->szLocaleName,
item_table->alValues[0],item_table->alValues[1],item_table->alValues[2],
item_table->alValues[3],item_table->alValues[4],item_table->alValues[5],
item_table->dwWearFlags,item_table->dwAntiFlags,item_table->dwImmuneFlag,
item_table->dwRefinedVnum,item_table->wRefineSet,item_table->bAlterToMagicItemPct);
m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table));
++item_table;
}
sort(m_vec_itemTable.begin(), m_vec_itemTable.end(), FCompareVnum());
sys_log(0, "CClientManager::InitializeMobTable:: %d items loaded.n", m_vec_itemTable.size());
return true;
}
ITEM_APPLY_MAX_NUM = 3,
//Değiştir
ITEM_APPLY_MAX_NUM = 4,
//Değiştir
ITEM_APPLY_MAX_NUM = 4,
Ek olarak locale/triçindeki item proto içine
ADDON_TYPE2 ADDON_VALUE2 VALUE0
kısımlarını değiştirip
ADDON_TYPE2 ADDON_VALUE2 ADDON_TYPE3 ADDON_VALUE3 VALUE0
hepsine APPLY_NONE 0 eklemen gerekiyor
client tarafındaki item proto için noTXT değil ise üsttekileri yapman lazım NoTXT ise
Navicat/query kısmına
alter table player.item_proto add (applytype3 TINYINT(4), applyvalue3 INT(11));
yaz satırlar eklensin
// Bul
bool CClientManager::MirrorItemTableIntoDB()
// Değiştir
bool CClientManager::MirrorItemTableIntoDB()
{
for (itertype(m_vec_itemTable) it = m_vec_itemTable.begin(); it != m_vec_itemTable.end(); it++)
{
if (g_stLocaleNameColumn != "name")
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, %s, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(), g_stLocaleNameColumn.c_str(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
#ifdef ENABLE4APPLY
t.aApplies[3].bType, t.aApplies[3].lValue,
#endif
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
else
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
#ifdef ENABLE4APPLY
t.aApplies[3].bType, t.aApplies[3].lValue,
#endif
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
}
return true;
}
Hala hatali, hic kimse sorunu cözemedi diye, size ufak ve bi cok cok önemli unnuttunus seyi söylim:
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
anlatim:
unsigned int dataArray[34];
gördünüs 34 sayi su anlama geliyor:
Kod:1 돈꾸러미 ITEM_ELK 0 1 NONE NONE NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0
bu query saysan "
돈꾸러미" bunu eklemeden sayilar 34 ediyor.
onun yüsünde
dataArray[34];
ondan sorna bunu arayip:
Kod:} else if (i==22) { dataArray[i] = get_Item_ApplyType_Value(csvTable.AsStringByIndex(col)); validCheck = dataArray[i];
bunu ekliceksinis:
Kod:else if (i == 24) { dataArray[i] = get_Item_ApplyType_Value(csvTable.AsStringByIndex(col)); validCheck = dataArray[i]; }
22 le 24 arasinda 2 olmali cünkü applyvalue+applytype 2 ediyor
Kod:for (i = 0; i < ITEM_VALUES_MAX_NUM; ++i) buraya gecip bütün sayilara +1 ekliceksinis en son sayi bende 33 cünkü toplam 34 türkcem vasla iyi deyl
Moderatör tarafında düzenlendi:
En Çok Reaksiyon Alan Mesajlar
Good morning.
- Katılım
- 19 Şub 2019
- Konular
- 173
- Mesajlar
- 2,134
- Çözüm
- 26
- Online süresi
- 10mo 21d
- Reaksiyon Skoru
- 1,932
- Altın Konu
- 4
- Başarım Puanı
- 273
- MmoLira
- 4,234
- DevLira
- 97
Good morning.
- Katılım
- 13 Haz 2013
- Konular
- 182
- Mesajlar
- 2,498
- Çözüm
- 92
- Online süresi
- 3mo 20d
- Reaksiyon Skoru
- 1,662
- Altın Konu
- 2
- TM Yaşı
- 12 Yıl 11 Ay 28 Gün
- Başarım Puanı
- 284
- Yaş
- 28
- MmoLira
- 8,540
- DevLira
- 84
Size de...Good morning.

- Katılım
- 23 Şub 2017
- Konular
- 56
- Mesajlar
- 277
- Çözüm
- 18
- Online süresi
- 43m 25s
- Reaksiyon Skoru
- 21
- Altın Konu
- 0
- TM Yaşı
- 9 Yıl 3 Ay 12 Gün
- Başarım Puanı
- 103
- MmoLira
- 152
- DevLira
- 0
// Bul
bool CClientManager::MirrorItemTableIntoDB()
// Değiştir
bool CClientManager::MirrorItemTableIntoDB()
{
for (itertype(m_vec_itemTable) it = m_vec_itemTable.begin(); it != m_vec_itemTable.end(); it++)
{
if (g_stLocaleNameColumn != "name")
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, %s, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(), g_stLocaleNameColumn.c_str(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
#ifdef ENABLE4APPLY
t.aApplies[3].bType, t.aApplies[3].lValue,
#endif
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
else
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
#ifdef ENABLE4APPLY
t.aApplies[3].bType, t.aApplies[3].lValue,
#endif
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
}
return true;
}
bool CClientManager::MirrorItemTableIntoDB()
// Değiştir
bool CClientManager::MirrorItemTableIntoDB()
{
for (itertype(m_vec_itemTable) it = m_vec_itemTable.begin(); it != m_vec_itemTable.end(); it++)
{
if (g_stLocaleNameColumn != "name")
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, %s, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(), g_stLocaleNameColumn.c_str(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
#ifdef ENABLE4APPLY
t.aApplies[3].bType, t.aApplies[3].lValue,
#endif
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
else
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
#ifdef ENABLE4APPLY
t.aApplies[3].bType, t.aApplies[3].lValue,
#endif
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
}
return true;
}
Son düzenleme:
- Katılım
- 13 Haz 2013
- Konular
- 182
- Mesajlar
- 2,498
- Çözüm
- 92
- Online süresi
- 3mo 20d
- Reaksiyon Skoru
- 1,662
- Altın Konu
- 2
- TM Yaşı
- 12 Yıl 11 Ay 28 Gün
- Başarım Puanı
- 284
- Yaş
- 28
- MmoLira
- 8,540
- DevLira
- 84
Konuya dahil ettim tekrardan teşekkürler// Bul
bool CClientManager::MirrorItemTableIntoDB()
// Değiştir
bool CClientManager::MirrorItemTableIntoDB()
{
for (itertype(m_vec_itemTable) it = m_vec_itemTable.begin(); it != m_vec_itemTable.end(); it++)
{
if (g_stLocaleNameColumn != "name")
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, %s, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(), g_stLocaleNameColumn.c_str(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
else
{
const TItemTable& t = *it;
char query[4096];
snprintf(query, sizeof(query),
"replace into item_proto%s ("
"vnum, type, subtype, name, gold, shop_buy_price, weight, size, "
"flag, wearflag, antiflag, immuneflag, "
"refined_vnum, refine_set, magic_pct, socket_pct, addon_type, "
"limittype0, limitvalue0, limittype1, limitvalue1, "
"applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, "
#ifdef ENABLE4APPLY
"applytype3, applyvalue3,"
#endif
"value0, value1, value2, value3, value4, value5 ) "
"values ("
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
#ifdef ENABLE4APPLY
"%d, %d,"
#endif
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
GetTablePostfix(),
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
t.dwFlags, t.dwWearFlags, t.dwAntiFlags, t.dwImmuneFlag,
t.dwRefinedVnum, t.wRefineSet, t.bAlterToMagicItemPct, t.bGainSocketPct, t.sAddonType,
t.aLimits[0].bType, t.aLimits[0].lValue, t.aLimits[1].bType, t.aLimits[1].lValue,
t.aApplies[0].bType, t.aApplies[0].lValue, t.aApplies[1].bType, t.aApplies[1].lValue, t.aApplies[2].bType, t.aApplies[2].lValue,
t.alValues[0], t.alValues[1], t.alValues[2], t.alValues[3], t.alValues[4], t.alValues[5]);
CDBManager::instance().AsyncQuery(query);
}
}
return true;
}


