Jump to content

How To Use Pickup Motion


Recommended Posts

  • Former Staff

Here's the correct guide on how2 pickup motion.

 

Spoiler

170805FvBkd.png.86125ec966a2052a3cb9c17c

 

Firstly go to UserInterface/PythonCharacterModule.cpp and search for:

    PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_QUALIFIED",        CInstanceBase::NEW_AFFECT_DRAGON_SOUL_QUALIFIED);

add this function under it:

    PyModule_AddIntConstant(poModule, "MOTION_PICK_UP",                        CRaceMotionData::NAME_PICK_UP);

 

 

 

Secondly go to UserInterface/PythonPlayerInput.cpp and search for:

void CPythonPlayer::PickCloseItem()

  add this function:

    pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);

 

 

 

Thirdly go  to GameLib/ActorInstanceMotion.cpp and search for:

        case CRaceMotionData::NAME_SLAP_HURT_WITH_SHAMAN:

add this function under it:

        case CRaceMotionData::NAME_PICK_UP:

 

 

 

Fourthly go to GameLib/RaceManager.cpp and search for:

        s_kMap_stType_dwIndex.insert(std::map<std::string, DWORD>::value_type("SKILL5", CRaceMotionData::NAME_SKILL+125));
add this function under it:
        s_kMap_stType_dwIndex.insert(std::map<std::string, DWORD>::value_type("PICK_UP", CRaceMotionData::NAME_PICK_UP));
 

 

 

Fifthly go to GameLib/RaceMotionData.cpp and search for:

        case NAME_DIG:

add this function under it:

        case NAME_PICK_UP:

 

 

 

 

Sixthly go to GameLib/RaceMotionData.h and search for:

            NAME_JOY,

add this function under it:

            NAME_PICK_UP,

 

Compile it and you're good to go.

 

Now to finish this tutorial, go to root/playersettingmodule.py and search for:

def SetGeneralMotions(mode, folder):

add this function:

    chrmgr.RegisterCacheMotionData(mode,        chr.MOTION_PICK_UP,                "pick_up.msa")

 

Tutorial finished, have fun.

  • Love 10
Link to comment
Share on other sites

  • Former Staff

the problem is , this not really good for metin2

becous there too many items drops by mobs - stone ...

so every time when u want pick up the item it will take time , so this is very borring

​​Yeah...

That's why they don't use this, probably.

But if you click z many times, for example, the speed is the same as if you haven't this, but he looks like having an epileptic seizure.

Edited by Shisui
  • Love 2
Link to comment
Share on other sites

  • 1 month later...
  • 3 months later...

I prefer add that

 

if (pkInstMain->IsAttacking()){ // if the player attack

        }
        else{ // if the player don't attack
            pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);
        }

Because use SPACE and Z at the same time, it's a very good usebug for speed attack x)

Link to comment
Share on other sites

  • Premium
if (!__IsPlayerAttacking())
           pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);
22 minutes ago, Roxas07 said:

I prefer add that

 

if (pkInstMain->IsAttacking()){ // if the player attack

        }
        else{ // if the player don't attack
            pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);
        }

Because use SPACE and Z at the same time, it's a very good usebug for speed attack x)

It's completely untested but I think that the following code is maybe better

if (!__IsPlayerAttacking())
           pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);

Or maybe this one :

if (!pkInstMain->IsAttacking())
              pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);

But it's untested and it'll probably won't work as I don't know if "__IsPlayerAttacking" is declared or if the "!" must be placed before "pkInstMain" or before "IsAttacking()"

 

  • Love 1
Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...
  • 2 years later...
  • Active Member

@EnKor It's a simple thing, you have to add the command to server source, then you simply call it by type this command in a chat. You can try to search on another forums, just type in google search somehing like: metin 2 add new emotion, animation. I believe you'll find some tutorial which you can follow to make a new command that you can call.

  • Love 1

I'll be always helpful! 👊 

Link to comment
Share on other sites

  • Premium
6 hours ago, ReFresh said:

@EnKor It's a simple thing, you have to add the command to server source, then you simply call it by type this command in a chat. You can try to search on another forums, just type in google search somehing like: metin 2 add new emotion, animation. I believe you'll find some tutorial which you can follow to make a new command that you can call.

thankyou. i make it ;)

if pc.get_sex() == true and npc.get_sex() == false then
	npc.purge()
end

 

Link to comment
Share on other sites

  • 4 years later...

Hello, just to confirm that the above change is working. I've just tested it. the other two things provided are failing the build tho. But yea, with the below change (provided above in comments) you can avoid the Atack speed animation glitch / bug / exploit. 

 

if (!pkInstMain->IsAttacking()) pkInstMain->GetGraphicThingInstancePtr()->InterceptOnceMotion(CRaceMotionData::NAME_PICK_UP);

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.