Cu modificarile de mai jos, membrii GM pot da upgrade la un item la fierar/bless/metal magic/etc., fara sa aiba materialele necesare pt upgrade in inventar.
*Poze / Video:
*Link download / Code:
In service.h adaugam:
Code:
#define GM_UPGRADE_BYPASSCode:
bool CHARACTER::DoRefine(LPITEM item, bool bMoneyOnly)
{Code:
const TRefineTable * prt = CRefineManager::instance().GetRefineRecipe(item->GetRefineSet());
if (!prt)
return false;
DWORD result_vnum = item->GetRefinedVnum();
// REFINE_COST
long long cost = ComputeRefineFee(prt->cost);Mai jos cauta:
Code:
if (item->GetType() == ITEM_USE && item->GetSubType() == USE_TUNING)
return false;
TItemTable * pProto = ITEM_MANAGER::instance().GetTable(item->GetRefinedVnum());
if (!pProto)
{
sys_err("DoRefine NOT GET ITEM PROTO %d", item->GetRefinedVnum());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾ÆÀÌÅÛÀº °³·®ÇÒ ¼ö ¾ø½À´Ï´Ù."));
return false;
}Code:
if (GetGold() < cost)Mai jos vei gasi:
Code:
if (!bMoneyOnly && !RefineChance)Cauta:
Code:
DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost);Mai jos vei gasi:
Code:
PayRefineFee(cost);Mai jos vei gasi:
Code:
DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost);Mai jos vei gasi:
Code:
PayRefineFee(cost);Cauta:
Code:
const TRefineTable * prt = CRefineManager::instance().GetRefineRecipe(item->GetRefineSet());
if (!prt)
return false;Cauta:
Code:
if (GetGold() < prt->cost)Mai jos ai:
Code:
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°³·®À» Çϱâ À§ÇÑ µ·ÀÌ ºÎÁ·ÇÕ´Ï´Ù."));
return false;
}Trebuie sa arate asa:
Code:
#ifdef GM_UPGRADE_BYPASS
if (!bGMFree)
#endif
{
for (int i = 0; i < prt->material_count; ++i)
{
if (CountSpecifyItem(prt->materials[i].vnum) < prt->materials[i].count)
{
if (test_server)
{
ChatPacket(CHAT_TYPE_INFO, "Find %d, count %d, require %d",
prt->materials[i].vnum, CountSpecifyItem(prt->materials[i].vnum), prt->materials[i].count);
}
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°³·®À» Çϱâ À§ÇÑ Àç·á°¡ ºÎÁ·ÇÕ´Ï´Ù."));
return false;
}
}
for (int i = 0; i < prt->material_count; ++i)
RemoveSpecifyItem(prt->materials[i].vnum, prt->materials[i].count);
}Code:
pkItemScroll->SetCount(pkItemScroll->GetCount() - 1);Acum cauta:
Code:
DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -prt->cost);Acum cauta:
Code:
PayRefineFee(prt->cost);Acum cauta:
Code:
DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -prt->cost);Cauta:
Code:
PayRefineFee(prt->cost);Cauta:
Code:
PayRefineFee(prt->cost);Exemplu full daca nu te descurci:


la acest mesaj și conținutul se va afișa automat.

