Jump to content

Morphe

Inactive Member
  • Posts

    211
  • Joined

  • Last visited

  • Days Won

    2
  • Feedback

    0%

Posts posted by Morphe

  1. Try like this:

     

    	static bool CanMoveIntoBeltInventory(LPITEM item)
    	{
    		bool canMove = false;
    
    		if (item->GetType() == ITEM_WEAPON)
    		{
    			switch (item->GetSubType())
    			{
    			case WEAPON_CLAW:
    				canMove = true;
    				break;
    			}
    		}
    		else if (item->GetType() == ITEM_USE)
    		{
    			switch (item->GetSubType())
    			{
    			case USE_POTION:
    			case USE_POTION_NODELAY:
    			case USE_ABILITY_UP:
    				canMove = true;
    				break;
    			}
    		}
    
    		return canMove;
    	}

     

    • Love 1
  2. Hi folks.

    Today i coded this interface and i want to share with you.

    Link to download this:

    https://mega.co.nz/#!IVcTEKCY!hbq3bj9uC3r-d2X84S4cuWuSblYq0b1wGF39MxPC24U

    Arhive password is:

    morphe

    PSD file: (Thanks to ShroZindeR)

    http://shrozinder.deviantart.com/art/Graphic-login-interface-for-the-game-metin2-540340241

    ShroZindeR deviantart:

    http://shrozinder.deviantart.com

     

    Image from interface in game:

    gUa4ON6.jpg

    XyuMvCz.jpg

    • Metin2 Dev 1
    • Good 1
    • Love 2
  3. We at "RAISE UR PAW" need the voices and paws of the world to be raised to help ban the YULIN DOG MEAT EATING FESTIVAL which is going to occur on June 21, 2015.  Countless Canine Lives will be sacrificed in order to fulfill an inhumane tradition that has been permitted to occur for many years - and it is now time this horror is finally put to an end.

         This brutal "Festival" involves what some call savouring the "delights" of dog meat hotpot, lychees, and strong liquor -- which will increase the abduction of strays and pets and also increase the torturous & inhumane prisons of dog meat farms - places where man's best friends are raised for such purposes -- thousands of dogs will suffer, be butchered, beaten to death, skinned alive and eaten.

         Time is ticking and the massive killing of dogs will soon take place, we must get our voices united and raised not just to save the lives but save the hope in humanity - to be part of a compassionate world where we all come together to stand up and speak out for all innocent life, not just the life of humanity.  If we turn away and ignore the cries/pleas of these babies, then we truly have turned away from being human"kind".

     

    Enter this link and sign the petition.

    https://www.change.org/p/president-of-the-people-s-republic-of-china-stop-the-yulin-dog-meat-eating-festival

    • Love 1
  4. code for 5 inventory? please post plis e iam noob c++ :P

    bool CExchange::CheckSpace()
    {
        static CGrid s_grid1(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 1   9 Rows a 5 Columns
        static CGrid s_grid2(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 2   9 Rows a 5 Columns
        static CGrid s_grid3(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 3   9 Rows a 5 Columns
        static CGrid s_grid4(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 4   9 Rows a 5 Columns
        static CGrid s_grid5(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 5   9 Rows a 5 Columns
    
    
        s_grid1.Clear();
        s_grid2.Clear();
        s_grid3.Clear();
        s_grid4.Clear();
        s_grid5.Clear();
    
    
        LPCHARACTER victim = GetCompany()->GetOwner();
        LPITEM item;
    
    
        int i;
    
    
        const int perPageSlotCount = INVENTORY_MAX_NUM / 5;
    
    
        for (i = 0; i < INVENTORY_MAX_NUM; ++i) {
            if (!(item = victim->GetInventoryItem(i)))
                continue;
    
    
            BYTE itemSize = item->GetSize();
    
    
            if (i < perPageSlotCount) // Notice: This is adjusted for 4 Pages only!
                s_grid1.Put(i, 1, itemSize);
            else if (i < perPageSlotCount * 2)
                s_grid2.Put(i - perPageSlotCount, 1, itemSize);
            else if (i < perPageSlotCount * 3)
                s_grid3.Put(i - perPageSlotCount * 2, 1, itemSize);
            else if (i < perPageSlotCount * 3)
                s_grid4.Put(i - perPageSlotCount * 3, 1, itemSize);
            else
                s_grid5.Put(i - perPageSlotCount * 4, 1, itemSize);
        }
    
    
        static std::vector <WORD> s_vDSGrid(DRAGON_SOUL_INVENTORY_MAX_NUM);
    
    
        bool bDSInitialized = false;
    
    
        for (i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i)
        {
            if (!(item = m_apItems[i]))
                continue;
    
    
            BYTE itemSize = item->GetSize();
    
    
            if (item->IsDragonSoul())
            {
                if (!victim->DragonSoul_IsQualified())
                    return false;
    
    
                if (!bDSInitialized) {
                    bDSInitialized = true;
                    victim->CopyDragonSoulItemGrid(s_vDSGrid);
                }
    
    
                bool bExistEmptySpace = false;
                WORD wBasePos = DSManager::instance().GetBasePosition(item);
                if (wBasePos >= DRAGON_SOUL_INVENTORY_MAX_NUM)
                    return false;
    
    
                for (int i = 0; i < DRAGON_SOUL_BOX_SIZE; i++)
                {
                    WORD wPos = wBasePos + i;
                    if (0 == s_vDSGrid[wBasePos])
                    {
                        bool bEmpty = true;
                        for (int j = 1; j < item->GetSize(); j++)
                        {
                            if (s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM])
                            {
                                bEmpty = false;
                                break;
                            }
                        }
                        if (bEmpty)
                        {
                            for (int j = 0; j < item->GetSize(); j++)
                            {
                                s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM] = wPos + 1;
                            }
                            bExistEmptySpace = true;
                            break;
                        }
                    }
                    if (bExistEmptySpace)
                        break;
                }
                if (!bExistEmptySpace)
                    return false;
            }
            else
            {
                int iPos = s_grid1.FindBlank(1, itemSize);
                if (iPos >= 0) {
                    s_grid1.Put(iPos, 1, itemSize);
                    continue;
                }
    
    
                iPos = s_grid2.FindBlank(1, itemSize);
                if (iPos >= 0) {
                    s_grid2.Put(iPos, 1, itemSize);
                    continue;
                }
    
    
                iPos = s_grid3.FindBlank(1, itemSize);
                if (iPos >= 0) {
                    s_grid3.Put(iPos, 1, itemSize);
                    continue;
                }
    
    
                iPos = s_grid4.FindBlank(1, itemSize);
                if (iPos >= 0) {
                    s_grid4.Put(iPos, 1, itemSize);
                    continue;
                }
    
    
                iPos = s_grid5.FindBlank(1, itemSize);
                if (iPos >= 0) {
                    s_grid5.Put(iPos, 1, itemSize);
                    continue;
                }
    
    
                return false;  // No space left in inventory
            }
        }
    
    
        return true;
    }
  5. In char.cpp, search for:

    bool CAN_ENTER_ZONE

    And in switch (map_index)

    Add case 314 with return false.

     

    Like this:

    bool CAN_ENTER_ZONE(const LPCHARACTER& ch, int map_index)
    {
    switch (map_index)
    {
    case 301:
    case 302:
    case 303:
    case 304:
    case 314:
    if (ch->GetLevel() < 90)
    return false;
    
    
    }
    return true;
    }
    • Love 1
×
×
  • 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.