Metin2 Adding effects to official rings

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Vanilla

Elite
Elite
Joined
Jan 28, 2019
Messages
839
Credits
1,190
Here you have those rings
PR95RYd.gif
YFKWJep.gif
iL1RKYf.gif
rM6g8Pm.gif
tYpCOQ9.gif

In game src length.h opens and searches.
C++:
Expand Collapse Copy
SE_EQUIP_LOVE_PENDANT
It is added to the bottom;
C++:
Expand Collapse Copy
    SE_EQUIP_WILL_RING,
    SE_EQUIP_DEADLY_RING,
    SE_EQUIP_HERO_MEDAL,
    SE_EQUIP_BLUE_CANDY,
    SE_EQUIP_GREEN_CANDY,
    SE_EQUIP_YELLOW_CANDY,
    SE_EQUIP_CHOCOLATE_PENDANT,
    SE_EQUIP_EVIL_PENDANT,
    SE_EQUIP_GUARD_PENDANT,

VnumHelper.h opens and searches.
C++:
Expand Collapse Copy
    static    const bool    IsLovePendant(DWORD vnum)        { return 71145 == vnum; }
And it is added to the bottom.
C++:
Expand Collapse Copy
    static    const bool    IsWillRing(DWORD vnum)        { return 71148 == vnum; }
    static    const bool    IsDeadlyRing(DWORD vnum)        { return 71149 == vnum; }
    static    const bool    IsHeroMedal(DWORD vnum)        { return 71158 == vnum; }
    static    const bool    IsBlueCandy(DWORD vnum)        { return 71180 == vnum; }
    static    const bool    IsGreenCandy(DWORD vnum)        { return 71181 == vnum; }
    static    const bool    IsYellowCandy(DWORD vnum)        { return 71188 == vnum; }
    static    const bool    IsChocolatePendant(DWORD vnum)        { return 71199 == vnum; }
    static    const bool    IsEvilPendant(DWORD vnum)        { return 71202 == vnum; }
    static    const bool    IsGuardPendant(DWORD vnum)        { return 72054 == vnum; }

Char_item.cpp is opened and searched.
C++:
Expand Collapse Copy
        else if (true == CItemVnumHelper::IsLovePendant(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_LOVE_PENDANT);
        }
It is added to the bottom;
C++:
Expand Collapse Copy
        else if (true == CItemVnumHelper::IsWillRing(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_WILL_RING);
        }
        else if (true == CItemVnumHelper::IsDeadlyRing(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_DEADLY_RING);
        }
        else if (true == CItemVnumHelper::IsHeroMedal(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_HERO_MEDAL);
        }
        else if (true == CItemVnumHelper::IsBlueCandy(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_BLUE_CANDY);
        }
        else if (true == CItemVnumHelper::IsGreenCandy(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_GREEN_CANDY);
        }
        else if (true == CItemVnumHelper::IsYellowCandy(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_YELLOW_CANDY);
        }
        else if (true == CItemVnumHelper::IsChocolatePendant(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_CHOCOLATE_PENDANT);
        }
        else if (true == CItemVnumHelper::IsEvilPendant(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_EVIL_PENDANT);
        }
        else if (true == CItemVnumHelper::IsGuardPendant(dwVnum))
        {
            this->EffectPacket(SE_EQUIP_GUARD_PENDANT);
        }
We are done with game src.

Let's continue with client src.

Instancebase.h opens and searches.
C++:
Expand Collapse Copy
EFFECT_LOVE_PENDANT
It is added to the bottom;
C++:
Expand Collapse Copy
            EFFECT_WILL_RING_EQUIP,
            EFFECT_DEADLY_RING_EQUIP,
            EFFECT_HERO_MEDAL_EQUIP,
            EFFECT_BLUE_CANDY_EQUIP,
            EFFECT_GREEN_CANDY_EQUIP,
            EFFECT_YELLOW_CANDY_EQUIP,
            EFFECT_CHOCOLATE_PENDANT_EQUIP,
            EFFECT_EVIL_PENDANT_EQUIP,
            EFFECT_GUARD_PENDANT_EQUIP,
Packet.h opens and searches.
C++:
Expand Collapse Copy
SE_EQUIP_LOVE_PENDANT,
It is added to the bottom;
C++:
Expand Collapse Copy
    SE_EQUIP_WILL_RING,
    SE_EQUIP_DEADLY_RING,
    SE_EQUIP_HERO_MEDAL,
    SE_EQUIP_BLUE_CANDY,
    SE_EQUIP_GREEN_CANDY,
    SE_EQUIP_YELLOW_CANDY,
    SE_EQUIP_CHOCOLATE_PENDANT,
    SE_EQUIP_EVIL_PENDANT,
    SE_EQUIP_GUARD_PENDANT,
PythonNetworkStreamPhaseGameItem.cpp opens and searches.


C++:
Expand Collapse Copy
        case SE_EQUIP_LOVE_PENDANT:
            effect = CInstanceBase::EFFECT_LOVE_PENDANT_EQUIP;
            break;
It is added to the bottom;
C++:
Expand Collapse Copy
        case SE_EQUIP_WILL_RING:
            effect = CInstanceBase::EFFECT_WILL_RING_EQUIP;
            break;
        case SE_EQUIP_DEADLY_RING:
            effect = CInstanceBase::EFFECT_DEADLY_RING_EQUIP;
            break;
        case SE_EQUIP_HERO_MEDAL:
            effect = CInstanceBase::EFFECT_HERO_MEDAL_EQUIP;
            break;
        case SE_EQUIP_BLUE_CANDY:
            effect = CInstanceBase::EFFECT_BLUE_CANDY_EQUIP;
            break;
        case SE_EQUIP_GREEN_CANDY:
            effect = CInstanceBase::EFFECT_GREEN_CANDY_EQUIP;
            break;
        case SE_EQUIP_YELLOW_CANDY:
            effect = CInstanceBase::EFFECT_YELLOW_CANDY_EQUIP;
            break;
        case SE_EQUIP_CHOCOLATE_PENDANT:
            effect = CInstanceBase::EFFECT_CHOCOLATE_PENDANT_EQUIP;
            break;
        case SE_EQUIP_EVIL_PENDANT:
            effect = CInstanceBase::EFFECT_EVIL_PENDANT_EQUIP;
            break;
        case SE_EQUIP_GUARD_PENDANT:
            effect = CInstanceBase::EFFECT_GUARD_PENDANT_EQUIP;
            break;
PythonCharacterManagerModule.cpp opens and searches.
C++:
Expand Collapse Copy
    PyModule_AddIntConstant(poModule, "EFFECT_LOVE_PENDANT_EQUIP",        CInstanceBase::EFFECT_LOVE_PENDANT_EQUIP);

It is added to the bottom;
Code:
Expand Collapse Copy
    PyModule_AddIntConstant(poModule, "EFFECT_WILL_RING_EQUIP", CInstanceBase::EFFECT_WILL_RING_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_DEADLY_RING_EQUIP", CInstanceBase::EFFECT_DEADLY_RING_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_HERO_MEDAL_EQUIP", CInstanceBase::EFFECT_HERO_MEDAL_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_BLUE_CANDY_EQUIP", CInstanceBase::EFFECT_BLUE_CANDY_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_GREEN_CANDY_EQUIP", CInstanceBase::EFFECT_GREEN_CANDY_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_YELLOW_CANDY_EQUIP", CInstanceBase::EFFECT_YELLOW_CANDY_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_CHOCOLATE_PENDANT_EQUIP", CInstanceBase::EFFECT_CHOCOLATE_PENDANT_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_EVIL_PENDANT_EQUIP", CInstanceBase::EFFECT_EVIL_PENDANT_EQUIP);
    PyModule_AddIntConstant(poModule, "EFFECT_GUARD_PENDANT_EQUIP", CInstanceBase::EFFECT_GUARD_PENDANT_EQUIP);
We are done with src.

Playersettingsmodule.py in root opens and searches.
Python:
Expand Collapse Copy
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LOVE_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/buff_item4.mse")
It is added to the bottom;
C++:
Expand Collapse Copy
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_WILL_RING_EQUIP, "", "d:/ymir work/effect/etc/buff/will_ring.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DEADLY_RING_EQUIP, "", "d:/ymir work/effect/etc/buff/deadly_ring.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HERO_MEDAL_EQUIP, "", "d:/ymir work/effect/etc/buff/hero_medal.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_BLUE_CANDY_EQUIP, "", "d:/ymir work/effect/etc/buff/blue_candy.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_GREEN_CANDY_EQUIP, "", "d:/ymir work/effect/etc/buff/green_candy.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_YELLOW_CANDY_EQUIP, "", "d:/ymir work/effect/etc/buff/yellow_candy.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_CHOCOLATE_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/chocolate_pendant.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_EVIL_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/evil_pendant.mse")
    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_GUARD_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/guard_pendant.mse")


Throw this file into the pack and add it to index. The event is over.
 
Back
Top