Jump to content

Player Unknown

Inactive Member
  • Posts

    6
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Player Unknown

  1. 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! ;)

     

    • Metin2 Dev 3
    • Think 1
    • Confused 1
    • Good 1
    • Love 2
×
×
  • 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.