Jump to content

Items Tradable


Recommended Posts

Hi, makes items (ring exp, glove drop, etc.) tradable.

 

Spoiler

//@Source/Game/char.cpp
//1.)   [RO] Cauta:
//      [EN] Search:
      // ANTI_GIVE, ANTI_MYSHOP check
      LPITEM pkItem = GetItem((pTable + i)->pos);
 
      if (pkItem)
      {
         const TItemTable * item_table = pkItem->GetProto();
 
         if (item_table && (IS_SET(item_table->dwAntiFlags, ITEM_ANTIFLAG_GIVE | ITEM_ANTIFLAG_MYSHOP)))
         {
            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("유료화 아이템은 개인상점에서 판매할 수 없습니다."));
            return;
         }
//2.)   [RO] Înlocuim cum:
//      [EN] Replaces with:
        LPITEM pkItem = GetItem((pTable + i)->pos);
 
        if (pkItem)
        {
            const TItemTable * item_table = pkItem->GetProto();
            int itemVnum[] = {70043, 70038};
 
            for (int i = 0; i < _countof(itemVnum); i++)
            {
                if (pkItem->GetVnum() != itemVnum[i] && item_table && (IS_SET(item_table->dwAntiFlags, ITEM_ANTIFLAG_GIVE | ITEM_ANTIFLAG_MYSHOP)))
                {
                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("유료화 아이템은 개인상점에서 판매할 수 없습니다."));
                    return;
                }
            }
//@Source/Game/exchange.cpp
//3.)   [RO] Caută:
//      [EN] Search:
if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_GIVE))
//4.)   [RO] Adăugă mai sus:
//      [EN] Add before:
    int itemVnum[] = {70043, 70038};
 
    for (int i = 0; i < _countof(itemVnum); i++)
    {
        if (item->GetVnum() == itemVnum[i])
        {
            Accept(false);
            GetCompany()->Accept(false);
 
            for (int i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i)
            {
                if (m_apItems[i])
                    continue;
 
                m_apItems[i]        = item;
                m_aItemPos[i]       = item_pos;
                m_abItemDisplayPos[i]   = display_pos;
                m_pGrid->Put(display_pos, 1, item->GetSize());
 
                item->SetExchanging(true);
 
                exchange_packet(m_pOwner, 
                        EXCHANGE_SUBHEADER_GC_ITEM_ADD,
                        true,
                        item->GetVnum(),
                        TItemPos(RESERVED_WINDOW, display_pos),
                        item->GetCount(),
                        item);
 
                exchange_packet(GetCompany()->GetOwner(),
                        EXCHANGE_SUBHEADER_GC_ITEM_ADD, 
                        false, 
                        item->GetVnum(),
                        TItemPos(RESERVED_WINDOW, display_pos),
                        item->GetCount(),
                        item);
 
                sys_log(0, "EXCHANGE AddItem success %s pos(%d, %d) %d", item->GetName(), item_pos.window_type, item_pos.cell, display_pos);
 
                return true;
            }
        }
    }

 

https://pastebin.com/eqyfQyvq

Bye! ;)

 

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 3
  • Think 1
  • Confused 1
  • Good 1
  • Love 2
Link to comment
Share on other sites

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.