Jump to content

Cataclismo

Premium
  • Posts

    232
  • Joined

  • Last visited

  • Days Won

    7
  • Feedback

    0%

Posts posted by Cataclismo

  1. Hello,

    A few weeks ago, being bored I thought about creating a visual editor for item_proto, without the need of XML, and here's the result: https://cataclismo.github.io/item_proto_lib/

    I should mention that this is my first time working with CLI and C#. Pretty fun actually.
    Also, the binaries for graphic interface (including library dll) are built for x64 arch. If anyone wants, I can provide the source code for the graphic interface, but because of laziness, I made the interface a bit tricky, yet easy to modify (on some parts).

    Enjoy :)

    PS: Any feedback is welcome. Not tested with an actual client. Just read and written some item_proto files. xD

    • Love 5
  2. On 06.07.2016 at 2:50 PM, ds_aim said:

    Use Size insteated of 8192

    LPBUFFER lpBufferDecrypt = buffer_new(Size);

     

    Note:

    Just complete removed seqeunce system, it's incomplet and too much bugs.

    Inseated of seqeunce system you can make all packet's return security key. It's a little work but should be better.

    That's very bad practice. You should cipher your packets. That's the best method. And you already have all the resources in game/client.

  3. Refactored like this?

    std::vector<DWORD> exp_vector;
    bool LoadExpTableFromMySQL()
    {
        std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT level, exp FROM common.exp_table"));
        if (pMsg->uiSQLErrno != 0)
        {
            sys_err("Failed to load exp table!");
            return false;
        }
    
        exp_vector.reserve(pMsg->Get()->uiNumRows);
    
        MYSQL_ROW row;
        while((row = mysql_fetch_row(pMsg->Get()->pSQLResult)))
        {
            DWORD level, exp;
            str_to_number(level, row[0]);
            str_to_nubmer(exp, row[1]);
    
            exp_vector[level] = exp;
    
            if (test_server)
                sys_log(0, "MYSQL EXP LOAD: LEVEL %u EXP %u", level, exp);
        }
    
        return true;
    }

    Since GetNextExp() will return DWORD, you should use DWORD too for your vector. You will fool the users thinking that they can increase exp limit over 4kkk (DWORD limit).

    Also, if you're using C++11 or higher consider using unique_ptr instead of auto_ptr.

    • Love 1
  4. thank you all for the answers, it was the .exe name needs to be metin2client.exe,

    Or .bin, as I told you.

    So, it compiles fine, and i can open the client but, hackshield does not show on task, i have seen a video from you showing the hackshield launching when you open the game, (in another post).

    Yeah. It's a little secret xD, but I discovered that this is just a break in security. You don't have to open that thing :), hackshield will work without it.

  5. Find

    #include "sectree_manager.h"

    And add after:

    #include "desc.h"

    And I recommend you to use this function, otherwise your game may crash:

    	int npc_get_ip(lua_State* L)
    	{
    		LPCHARACTER npc = CQuestManager::instance().GetCurrentNPCCharacterPtr();
    
    		if (!npc || !npc->GetDesc())
    		{
    			lua_pushstring(L, "INVALID");
    			return 1;
    		}
    
    		lua_pushstring(L, npc->GetDesc()->GetHostName());
    		return 1;
    	}

     

    If the enemy is not a PC (if you forgot to check or you don't want to) or it's an invalid instance (kinda impossible) then the function will return "INVALID" and you may do a check in your quest (if pc.get_ip() == "INVALID" then).

    Tell me if that works.

    • Love 1
  6. 4.40 is latest version and I don't think there is a 4.30 (version 5 available per request only) release that is cracked so likely he has the license. The problem is the people on that forum don't know much about metin2 or have much useful things for metin2.

    I actually found version 4.30 cracked yesterday ^_^

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