Transmutation item tiltás offshopban(help)

Indította Red, 2017-10-01, 09:54:42

Sziasztok.

Mostanra sikerült ezt a transmutation systemet hibamentesen beraknom.
Abban kérném a segítségeteket, hogy offlineshopban hogyan tudnám letiltani ezeket az itemeket?
Céhraktárban és kereskedőházban egy quest funkció segítségével sikerült letiltanom ezeket az itemeket.

Funkciók:
int item_is_transmulated(lua_State* L)
{
CQuestManager & qMgr = CQuestManager::instance();
LPITEM pkItem = qMgr.GetCurrentItem();
if (pkItem)
{
if (pkItem->GetTransmutation() > 0)
lua_pushboolean(L, true);
else
lua_pushboolean(L, false);
}
else
lua_pushboolean(L, false);

return 1;
}

int item_set_transmutation(lua_State* L)
{
CQuestManager & qMgr = CQuestManager::instance();
LPITEM pkItem = qMgr.GetCurrentItem();
if ((pkItem) && (lua_isnumber(L, 1)))
{
DWORD dwTransmutation = (DWORD) lua_tonumber(L, 1);
pkItem->SetTransmutation(dwTransmutation);
}

return 0;
}

int item_get_transmutation(lua_State* L)
{
CQuestManager & qMgr = CQuestManager::instance();
LPITEM pkItem = qMgr.GetCurrentItem();
if (pkItem)
lua_pushnumber(L, pkItem->GetTransmutation());
else
lua_pushnumber(L, 0);

return 1;
}


Questben így nézz ki a tiltás:
if item.is_transmulated() then
                    return false


Nos, én ez alapján próbálkoztam offshopban letiltani ezeket az itemeket.
Megkerestem azt a részt, ahol letiltja, hogy felszerelt itemeket ne lehessen betenni.
offlineshop_manager.cpp-ben találtam ezen a funkción belül:

void COfflineShopManager::AddItem(LPCHARACTER ch, BYTE bDisplayPos, BYTE bPos, long long llPrice)

Ez a rész:
if (pkItem->IsEquipped())
{
ch->ChatPacket(CHAT_TYPE_INFO, "Felszerelt targyat nem adhatsz el!");
return;
}


Ez alá próbáltam hozzáadni a quest funkciók alapján ezt:

if (pkItem->GetTransmutation() > 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Transmutált tárgyat nem adhatsz el.");
return;
}


Pontosabban ezt a részt vettem alapul ahogy a questeknél is:

int item_is_transmulated(lua_State* L)
{
CQuestManager & qMgr = CQuestManager::instance();
LPITEM pkItem = qMgr.GetCurrentItem();
if (pkItem)
{
if (pkItem->GetTransmutation() > 0)
lua_pushboolean(L, true);
else
lua_pushboolean(L, false);
}
else
lua_pushboolean(L, false);

return 1;
}


De, ezzel nem sikerült letiltanom ezeket az itemeket.
Ha, valakinek van ötlete és megosztaná velem azt megköszönném.

Sziasztok.