Jump to content
×
×
  • Create New...
  • 0

blacksmith on the demon tower


xxx30xxx

Question

13 answers to this question

Recommended Posts

  • 0
  • Premium

char_item.cpp

Inside:

void CHARACTER::ReceiveItem (LPCHARACTER from, LPITEM item)

 

Look for:

	case DEVILTOWER_BLACKSMITH_WEAPON_MOB:
        case DEVILTOWER_BLACKSMITH_ARMOR_MOB:
        case DEVILTOWER_BLACKSMITH_ACCESSORY_MOB:
            if (item->GetRefinedVnum() != 0 && item->GetRefineSet() != 0 && item->GetRefineSet() < 500) {
                from->SetRefineNPC (this);
                from->RefineInformation (item->GetCell(), REFINE_TYPE_MONEY_ONLY);
            }
            else {
                from->ChatPacket (CHAT_TYPE_INFO, LC_TEXT ("ÀÌ ¾ÆÀÌÅÛÀº °³·®ÇÒ ¼ö ¾ø½À´Ï´Ù."));
            }
            break;

 

 

change REFINE_TYPE_MONEY_ONLY  into REFINE_TYPE_MUSIN 

I dont remember if it was musin, i cant test it now. Check item_lenght.h for all types or:

    REFINE_TYPE_NORMAL
    REFINE_TYPE_SCROLL
    REFINE_TYPE_HYUNIRON
    REFINE_TYPE_MONEY_ONLY
    REFINE_TYPE_MUSIN
    REFINE_TYPE_BDRAGON

  • Love 2
Link to comment
  • 0
  • Premium
13 hours ago, tierrilopes said:

Read above post.

Recompile source.

Upload game.

Test if works.

I think the best solution is to modify the DoRefine linked to that because musin uses DoRefineWithScrolls

    else
    {
        // 실패! 모든 아이템이 사라짐.
        DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost);
        NotifyRefineFail(this, item, IsRefineThroughGuild() ? "GUILD" : "POWER");
        item->AttrLog();
        ITEM_MANAGER::instance().RemoveItem(item, "REMOVE (REFINE FAIL)");

        //PointChange(POINT_GOLD, -cost);
        PayRefineFee(cost);
    }

    return true;
}

 

Here is the part you will need to add a check, like

if mapindex = deviltower

then

 {
        DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost);
        NotifyRefineFail(this, item, IsRefineThroughGuild() ? "GUILD" : "POWER");
        item->AttrLog();
        PayRefineFee(cost);
    }

    else
    {
        // 실패! 모든 아이템이 사라짐.
        DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost);
        NotifyRefineFail(this, item, IsRefineThroughGuild() ? "GUILD" : "POWER");
        item->AttrLog();
        ITEM_MANAGER::instance().RemoveItem(item, "REMOVE (REFINE FAIL)");

        //PointChange(POINT_GOLD, -cost);
        PayRefineFee(cost);
    }

 

This is not tested, try on your own

If im wrong let me understand it :)

Link to comment
  • 0
  • Premium
On 15/1/2017 at 9:16 AM, xxx30xxx said:

up

We gave you the answers you need to do that, try reading and understanding them again.
No one is gonna show up and give you free code to copy - paste into your source, you will not learn nothing from it
 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Announcements

  • -15% Discount in Metin2 Dev Store (01/10/2021 => 31/12/2021) => Code => 15_PCT_OCT_TO_DEC_2021


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.