HUGAMES
[C++] Mount Block - Printable Version

+- HUGAMES (http://hugames.hu)
+-- Forum: Metin2 (http://hugames.hu/forumdisplay.php?fid=1)
+--- Forum: General (http://hugames.hu/forumdisplay.php?fid=2)
+---- Forum: C++ / DIFF / Source (http://hugames.hu/forumdisplay.php?fid=10)
+---- Thread: [C++] Mount Block (/showthread.php?tid=259)



[C++] Mount Block - Martinez-Works - 05-21-2018

Sziasztok! 

Ez a "Fix" arra lenne hogyha nem szeretnéd hogy warozás közbe vagy más dolog közbe lehessen mountra/lóra ülni!

Ui: A char.cpp résznél tudod hozzá adni a mappokat ahol szeretnéd tiltani a mount/ló használatát.

//@Svn/Server/common/service.h
//1.) Keresd meg ezt :
Code:
#endif

//2.) Add fölé ezt :
Code:
#define ENABLE_MOUNT_BLOCK_MAP


//@Svn/Server/game/src/char.cpp
//1.) Keresd meg ezt :
Code:
void CHARACTER::ResetStopTime()
{
    m_dwStopTime = get_dword_time();
}

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
bool CHARACTER::IsRestrictedMapIndex()
{
    const int ar_lMapIndex[] = {
        103,
        104,
        105,
        113,
        110,    /* metin2_map_t3 */
        111        /* metin2_map_t4 */
    };
    for (int i=0; i<_countof(ar_lMapIndex); i++) {
        return (GetMapIndex() == ar_lMapIndex[i] && !IsGM()) ? true : false;
    }
}
#endif

//@Svn/Server/game/src/char.h
//1.) Keresd meg ezt :
Code:
        const char *    GetName() const;

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
        bool            IsRestrictedMapIndex();
#endif

//@Svn/Server/game/src/questlua_pc.cpp
//1.) Keresd meg ezt :
Code:
    int pc_mount(lua_State* L)
    {
        if (!lua_isnumber(L, 1))
            return 0;

        int length = 60;

        if (lua_isnumber(L, 2))
            length = (int)lua_tonumber(L, 2);

        DWORD mount_vnum = (DWORD)lua_tonumber(L, 1);

        if (length < 0)
            length = 60;

        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
        if (ch->IsRestrictedMapIndex())
        {    
            ch->ChatPacket(CHAT_TYPE_INFO, "<<pc_mount>> Ezen a mappon nem tudsz lovagolni!");
            return 0;
        }
#endif