Jump to content

alin2894

Inactive Member
  • Posts

    192
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by alin2894

  1. Hello, m2dev, i have a two mini problem/questions

    One: How to add Blessing Marble in shop/offline shop? Can't you add..

    Two: When the CH1 and use the 'shout, private message, /n or /b' players on CH1,CH3 or CH4 don't appear message.
    - If you send a private message and the player is another ch, says it is not online.

    What's is problem?

  2. Hello m2dev,  He appeared somewhat a new exploit?

    I think someone closes the server through the command (I think so)

    After you close the makes game.core on ch1.

    I have used gdb but I can not unpack.

    Spoiler

    This GDB was configured as "amd64-marcel-freebsd".
    (gdb) set gnutarget i386-marcel-freebsd
    (gdb) file games
    games: No such file or directory.
    (gdb) file game
    Reading symbols from game...(no debugging symbols found)...done.
    (gdb) core game.core
    Core was generated by `game'.
    Program terminated with signal 11, Segmentation fault.
    Reading symbols from /usr/lib32/libmd.so.5...(no debugging symbols found)...done                                                                             .
    Loaded symbols for /usr/lib32/libmd.so.5
    Reading symbols from /usr/lib32/libmysqlclient.so.18...(no debugging symbols fou                                                                             nd)...done.
    Loaded symbols for /usr/lib32/libmysqlclient.so.18
    Reading symbols from /usr/lib32/libz.so.6...(no debugging symbols found)...done.
    Loaded symbols for /usr/lib32/libz.so.6
    Reading symbols from /usr/lib32/libstdc++.so.6...Error while reading shared libr                                                                             ary symbols:
    Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in mo                                                                             dule /usr/lib32/libstdc++.so.6]
    Reading symbols from /usr/lib32/libm.so.5...(no debugging symbols found)...done.
    Loaded symbols for /usr/lib32/libm.so.5
    Reading symbols from /usr/lib32/libgcc_s.so.1...(no debugging symbols found)...d                                                                             one.
    Loaded symbols for /usr/lib32/libgcc_s.so.1
    Reading symbols from /usr/lib32/libthr.so.3...(no debugging symbols found)...don                                                                             e.
    Loaded symbols for /usr/lib32/libthr.so.3
    Reading symbols from /usr/lib32/libc.so.7...(no debugging symbols found)...done.
    Loaded symbols for /usr/lib32/libc.so.7
    Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols found)...done.
    Loaded symbols for /libexec/ld-elf.so.1
    #0  0x0825347e in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    [New Thread 28c0433428c05500 (LWP 100385/game)]
    [New Thread 28893f4028c05200 (LWP 100380/game)]
    [New Thread 28c0553428c04f00 (LWP 100379/game)]
    [New Thread 28c0523428c04300 (LWP 100087/game)]
    Cannot find new threads: generic error
    (gdb) bt full
    #0  0x0825347e in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    No symbol table info available.
    #1  0x0825459f in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    No symbol table info available.
    #2  0x082551db in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    No symbol table info available.
    #3  0x082552a9 in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    No symbol table info available.
    #4  0x08123871 in std::basic_string<char, std::char_traits<char>, std::allocator                                                                             <char> >::basic_string<char*> ()
    No symbol table info available.
    #5  0x0825a1ff in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    No symbol table info available.
    #6  0x0825a83f in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    No symbol table info available.
    #7  0x0825b512 in std::operator+<char, std::char_traits<char>, std::allocator<ch                                                                             ar> > ()
    ---Type <return> to continue, or q <return> to quit---Quit
    (gdb) Quit
    (gdb) quit
    You have new mail.


    Syserr auth: (new error)
     

    Spoiler

    SYSERR: Jun  3 22:18:59 :: pid_init: 
    Start of pid: 9869

    SYSERR: Jun  3 22:25:37 :: locale_find: LOCALE_ERROR: "°ćÇčġ ąčŔ˛";
    SYSERR: Jun  3 22:25:37 :: locale_find: LOCALE_ERROR: "ŔüÁ¦±ą";
    SYSERR: Jun  3 22:25:37 :: locale_find: LOCALE_ERROR: "%sŔÇ %sŔĚ %d%% Áő°ˇÇß˝Ŕ´Ď´Ů!";
    SYSERR: Jun  3 22:25:39 :: locale_find: LOCALE_ERROR: "ľĆŔĚĹŰŔĚ łŞżĂ Č®·ü";
    SYSERR: Jun  3 22:25:39 :: locale_find: LOCALE_ERROR: "ŔüÁ¦±ą";
    SYSERR: Jun  3 22:25:39 :: locale_find: LOCALE_ERROR: "%sŔÇ %sŔĚ %d%% Áő°ˇÇß˝Ŕ´Ď´Ů!";
    SYSERR: Jun  3 22:25:41 :: locale_find: LOCALE_ERROR: "µ·ŔĚ łŞżĂ Č®·ü";
    SYSERR: Jun  3 22:25:41 :: locale_find: LOCALE_ERROR: "ŔüÁ¦±ą";
    SYSERR: Jun  3 22:25:41 :: locale_find: LOCALE_ERROR: "%sŔÇ %sŔĚ %d%% Áő°ˇÇß˝Ŕ´Ď´Ů!";
    SYSERR: Jun  4 09:02:06 :: socket_accept: accept: Software caused connection abort (fd 12)
    SYSERR: Jun  4 09:02:27 :: socket_accept: accept: Software caused connection abort (fd 12)
    SYSERR: Jun  4 09:02:40 :: socket_accept: accept: Software caused connection abort (fd 12)
    SYSERR: Jun  4 09:03:23 :: socket_accept: accept: Software caused connection abort (fd 12)
    SYSERR: Jun  4 09:27:58 :: socket_accept: accept: Software caused connection abort (fd 12)
    SYSERR: Jun  4 09:35:08 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
    SYSERR: Jun  4 09:35:08 :: pid_deinit: 
    End of pid

    SYSERR: Jun  4 09:35:26 :: pid_init: 
    Start of pid: 11582

    SYSERR: Jun  4 09:39:00 :: locale_find: LOCALE_ERROR: "°ćÇčġ ąčŔ˛";
    SYSERR: Jun  4 09:39:00 :: locale_find: LOCALE_ERROR: "ŔüÁ¦±ą";
    SYSERR: Jun  4 09:39:00 :: locale_find: LOCALE_ERROR: "%sŔÇ %sŔĚ %d%% Áő°ˇÇß˝Ŕ´Ď´Ů!";
    SYSERR: Jun  4 09:39:03 :: locale_find: LOCALE_ERROR: "ľĆŔĚĹŰŔĚ łŞżĂ Č®·ü";
    SYSERR: Jun  4 09:39:03 :: locale_find: LOCALE_ERROR: "ŔüÁ¦±ą";
    SYSERR: Jun  4 09:39:03 :: locale_find: LOCALE_ERROR: "%sŔÇ %sŔĚ %d%% Áő°ˇÇß˝Ŕ´Ď´Ů!";
    SYSERR: Jun  4 09:39:05 :: locale_find: LOCALE_ERROR: "µ·ŔĚ łŞżĂ Č®·ü";
    SYSERR: Jun  4 09:39:05 :: locale_find: LOCALE_ERROR: "ŔüÁ¦±ą";
    SYSERR: Jun  4 09:39:05 :: locale_find: LOCALE_ERROR: "%sŔÇ %sŔĚ %d%% Áő°ˇÇß˝Ŕ´Ď´Ů!";
     

     

  3. 16 minutes ago, Haya said:

    hello

     

    ===> projet ===> add ===> pythonpetskill.h and pythonpetskill.cpp

     

    cdt

    Thank you.
    New error .. 
     

    Spoiler

    error C2679: binary '=' : no operator found which takes a right-hand operand of type 'CGraphicImage *' (or there is no acceptable conversion)    D:\Jocuri\#SOURCE BINARY CLIENT\mainline_mmo_metin2_wolfman_esarfe_shop_limit_yang\source\UserInterface\PythonSkillPet.cpp    88

    All function: 
     

    Spoiler

    #include "StdAfx.h"
    #include "PythonSkillPet.h"

    #include "../EterBase/Poly/Poly.h"
    #include "../EterPack/EterPackManager.h"
    #include "InstanceBase.h"
    #include "PythonPlayer.h"

    bool CPythonSkillPet::RegisterSkillPet(const char * c_szFileName)
    {
        const VOID* pvData;
        CMappedFile kFile;
        if (!CEterPackManager::Instance().Get(kFile, c_szFileName, &pvData))
            return false;

        CMemoryTextFileLoader textFileLoader;
        textFileLoader.Bind(kFile.Size(), pvData);
        
        CTokenVector TokenVector;
        for (DWORD i = 0; i < textFileLoader.GetLineCount()-1; ++i)
        {
            if (!textFileLoader.SplitLine(i, &TokenVector, "\t"))
                return false;
            //TraceError("%s ---- %s | %s | %s", c_szFileName, TokenVector[0].c_str(),TokenVector[1].c_str(),TokenVector[2].c_str());
            //TraceError("SkillPetDesc %d %s %s %s %s \n", TokenVector.size(), TokenVector[0], TokenVector[1], TokenVecto[2], TokenVector[3]);
            if (DESCPET_TOKEN_TYPE_MAX_NUM > TokenVector.size())
            {
                //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", -1);
                return false;
            }
            //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 3);
            DWORD iSkillIndex = atoi(TokenVector[DESCPET_TOKEN_TYPE_VNUM].c_str());
            if (iSkillIndex == 0)
            {
                //TraceError("SkillPetDesc.line(%d).NO_INDEX_ERROR\n", i + 1);
                continue;
            }

            
            
            //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 4);
            
            /*
            std::map<DWORD, TSkillDataPet>::iterator it = m_SkillDataPetMap.find(1);
            if (m_SkillDataPetMap.end() == it)
            {
                TraceError("Arrivato alla fine");
                continue;
            }
            */
            //TraceError("Ciao: %s",m_SkillDataPetMap[1].strIconFileName);
            
            m_SkillDataPetMap.insert(make_pair(iSkillIndex, TSkillDataPet()));
            
            
            
            
            
            //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 5);
            TSkillDataPet & rSkillData = m_SkillDataPetMap[iSkillIndex];

            //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 6);
            // Vnum
            rSkillData.dwSkillIndex = iSkillIndex;        
            //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 7);
            // Name
            rSkillData.strName = TokenVector[DESCPET_TOKEN_TYPE_NAME];
            //Icon Name        
            char szIconFileNameHeader[64+1];
            _snprintf(szIconFileNameHeader, sizeof(szIconFileNameHeader), "%sskill/pet/%s.sub", g_strImagePath.c_str(), TokenVector[DESCPET_TOKEN_TYPE_ICON_NAME].c_str());

            rSkillData.strIconFileName = szIconFileNameHeader;

            //Type
            std::map<std::string, DWORD>::iterator itor = m_SkillPetTypeIndexMap.begin();
            for(; itor != m_SkillPetTypeIndexMap.end(); ++itor){
                if (TokenVector[DESCPET_TOKEN_TYPE].compare(itor->first) == 0)
                        rSkillData.byType = itor->second;
            }
            rSkillData.strDescription = TokenVector[DESCPET_TOKEN_TYPE_DESCRIPTION];
            rSkillData.dwskilldelay = atoi(TokenVector[DESCPET_TOKEN_TYPE_DELAY].c_str());

            
            rSkillData = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(szIconFileNameHeader);
            
        }

        return true;
    }

    void CPythonSkillPet::__RegisterNormalIconImage(TSkillDataPet & rData, const char * c_szHeader, const char * c_szImageName)
    {
        std::string strFileName = "";
        strFileName += c_szHeader;
        strFileName += c_szImageName;
        strFileName += ".sub";
        rData.pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(strFileName.c_str());
        
    }
    void CPythonSkillPet::Destroy()
    {
        
        m_SkillDataPetMap.clear();    
    }

    CPythonSkillPet::SSkillDataPet::SSkillDataPet()
    {


        dwSkillIndex = 0;
        strName = "";
        strIconFileName = "";
        byType = 0;            
        strDescription = "";
        dwskilldelay = 0;
        pImage = NULL;    
        
    }

    CPythonSkillPet::CPythonSkillPet()
    {
        /*
        TSkillDataPet SkillDataPet;
        SkillDataPet.dwSkillIndex = 0;
        SkillDataPet.strName = "";
        SkillDataPet.strIconFileName = "";
        SkillDataPet.byType = 0;
        SkillDataPet.strDescription = "";
        SkillDataPet.dwskilldelay = 0;
        SkillDataPet.pImage = NULL;
        
        m_SkillDataPetMap.insert(TSkillDataPetMap::value_type(0, SkillDataPet));
        */
        petslot[0] = 0;
        petslot[1] = 0;
        petslot[2] = 0;

        m_SkillPetTypeIndexMap.insert(std::map<std::string, DWORD>::value_type("EMPTY", SKILLPET_TYPE_NONE));
        m_SkillPetTypeIndexMap.insert(std::map<std::string, DWORD>::value_type("PASSIVE", SKILLPET_TYPE_PASSIVE));
        m_SkillPetTypeIndexMap.insert(std::map<std::string, DWORD>::value_type("AUTO", SKILLPET_TYPE_AUTO));

    }
    CPythonSkillPet::~CPythonSkillPet()
    {
    }


    void CPythonSkillPet:: SetSkillbySlot(int slot, int skillIndex)
    {
        //TraceError("Setto lo slot %d --> skill %d", slot, skillIndex);
        petslot[slot] = skillIndex;
    }

    BOOL CPythonSkillPet::GetSkillData(DWORD dwSkillIndex, TSkillDataPet ** ppSkillData)
    {
        TSkillDataPetMap::iterator it = m_SkillDataPetMap.find(dwSkillIndex);

        if (m_SkillDataPetMap.end() == it)
            return FALSE;

        *ppSkillData = &(it->second);
        return TRUE;
    }

    BOOL CPythonSkillPet::GetSkillIndex(int slot, int* skillIndex) 
    {
        *skillIndex = petslot[slot];
        return TRUE;
    }

    PyObject * petskillSetSkillSlot(PyObject * poSelf, PyObject * poArgs)
    {
        int slot;
        int skillIndex;

        if (!PyTuple_GetInteger(poArgs, 0, &slot))
            return Py_BadArgument();
        if (!PyTuple_GetInteger(poArgs, 1, &skillIndex))
            return Py_BadArgument();
        CPythonSkillPet::Instance().SetSkillbySlot(slot, skillIndex);
        return Py_BuildValue("i", 0);
    }

    PyObject * petskillGetIconImage(PyObject * poSelf, PyObject * poArgs)
    {
        int iSkillIndex;
        if (!PyTuple_GetInteger(poArgs, 0, &iSkillIndex))
            return Py_BadArgument();

        CPythonSkillPet::SSkillDataPet * c_pSkillData;
        if (!CPythonSkillPet::Instance().GetSkillData(iSkillIndex, &c_pSkillData))
            return Py_BuildValue("i", 0);    // 익셉션을 내는 대신 0을 리턴한다.

        return Py_BuildValue("i", c_pSkillData->pImage);
    }

    PyObject * petskillGetSkillbySlot(PyObject * poSelf, PyObject * poArgs)
    {
        int slot;
        int skillIndex;
        if (!PyTuple_GetInteger(poArgs, 0, &slot))
            return Py_BadArgument();

        if (slot > 2)
            return Py_BadArgument();

        if (!CPythonSkillPet::Instance().GetSkillIndex(slot, &skillIndex))
            return Py_BuildValue("i", 0);

        return Py_BuildValue("i", skillIndex);

    }

    PyObject * petskillGetEmptySkill(PyObject * poSelf, PyObject * poArgs)
    {
        CGraphicImage * noskillbtn;
        char szIconFileNameHeader[64 + 1];
        _snprintf(szIconFileNameHeader, sizeof(szIconFileNameHeader), "d:/ymir work/ui/pet/skill_button/skill_enable_button.sub");
        noskillbtn = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(szIconFileNameHeader);
        return Py_BuildValue("i", noskillbtn);
    }

    void initskillpet()
    {
        static PyMethodDef s_methods[] =
        {
            ///Variabili setting //
            { "SetSkillSlot",                    petskillSetSkillSlot,                        METH_VARARGS },


            //Variabili Get //
            
            { "GetIconImage",                    petskillGetIconImage,                        METH_VARARGS },
            { "GetSkillbySlot",                    petskillGetSkillbySlot ,                    METH_VARARGS },
            { "GetEmptySkill",                    petskillGetEmptySkill,                        METH_VARARGS },

            { NULL,                                        NULL,                                        NULL },
        };

        PyObject * poModule = Py_InitModule("petskill", s_methods);
    }

     

  4. Just now, JinHan said:

    well it's easy to fix it , i saw that lycan effects include some effects from other patch metin2_patch_dragon_rock_mobs and dragon_rock_texcache . So, search if you have those patches and if those patches exist replace them

    I do not have those patches.. Patches are restructured by me: https://metin2.download/picture/0ib1lAVeTXnu5XrxC0Sm809h7Zq219M4/.png
    -We have now added from one server those patches, but still sees so..

  5. 3 hours ago, galet said:

    You probably added an effect and failed the "list", check them and retry

    But... Your youtube channel's name is the same as a French Gaming Forum and the logo is exactly the same... Wtf bruh ? xD

    I was careful when I shoved effects to sash system and wolfman, I did not wrong ...
    I also had a forum with that name "Reality Gaming" , it was field ".net" :P

×
×
  • 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.