Jump to content

ds_aim

Banned
  • Posts

    442
  • Joined

  • Last visited

  • Days Won

    9
  • Feedback

    0%

Posts posted by ds_aim

  1.  
    // Ira.h
    class Ira
    {
    public:
      void Func(); // Declaration
    };
    
    // Ira.cpp
    //definition
    void Ira::Func()
    {
      // Do something
    }		
    		 
     
    In your case, the definition cannot be found. The issue could be that you are including a header file, which brings in some function declarations, but you either:
    1. definition for those functions cannot be found
    2. The library is compiled with an older or newer compiler. And as i can see problem is in __imp__ wich is in the dllexport and dllimport
    Solve :
    - Take granny2.lib from another source Who is compiled with same compier.
    - Problem can be in you project toolset too.
     
    As far as i know don't matter if dynamic libs is compiled with different compiler but give it a try.
    Just static libs need to be compiled with same compilet that is linked.
     
    Check you project toolset
    Check check granny2.lib
     
    • Love 1
  2. boost::python implement started

     

    7b9a3626d2d14e2eb40e9d819d365fe4.png

     

    I need to adapt to make_unique  now  :D

     

    And example for Who want to rewrite entire python API , you can use SWIG too.

    The big job is in ScriptLib and EterPythonLib need to be rewrited frm scratch.

     

    And remebere " If you become my customers all those features will be yours when i finish "

    • Love 2
  3. I modernized code long time ago.

    aab6e23fa8294ec5a586ee015570b5f5.png

     

    c57a0c88633442c8b01aa00bd31f66dc.png

    I lost some time to modernize EterPythonLib because pointers... Evey time when i forced unique__ptr i got bugs.

     

    It is very hard to modernize codes. most of the new stuff in the new official stuff is actually with vectors and std maps. In 2-3 weeks i think i will finish client source modernize. Then is planned to rewrite Python API with boost::python or maybe SWIG. Maybe if someone want to rewrite via boost::python here is an advice , boost::python actually does Support std::shared_ptr but not std::unique_ptr ,  Boost.Python does not support move-semantics. to only Problem is that you use unique_ptr and here is a solution for that  http://stackoverflow.com/questions/20581679/boost-python-how-to-expose-stdunique-ptr

     

    We  tried just putting unique ptr (forcing unique_ptr) , and I think there occur dangling pointer ,I can just putting shared ptr in all place

    it is bad too, but I might work.. or not.
    The code is dirtty
    and pointers are too puzzled

    and If you use sharedptr everywhere you actually have cyclic references.

     

    If you reaally want to modernize codes is better to rewrite entire client source using modern c++ standards.  Modernize take much more time than rewriting. Metin is not really a complex game , it's very simple

     

    One more example c++14 lambda

    Before modernize:

    2987d14613a241db8f361b450d7451d9.png

     

    After modenrize :

    12c6f7b9c2b441a5b1982d9c5faef023.png

     

    I changed into lambda
    holy lambda
    it is one of most greatest feature of c++11

     

     

    :) My advice is don't try to modernize codes you just lose time. Code is to dirty

    • Love 2
  4. 1. Lzma or lz4  , don't really matter the compression algorithm that you use. You need a SSD and all is fine.

    2.  The aim of improved_packet_encryption is to cipher packets to prevent packet sniffer to decrypt and to solve buffer issues.   Just don't touch it if you have no ideea how to work with memory management.  And lol, why you need to cipher packets? Really is metin2, is an old game... Belive me , No big hacker will come to destroy kids server.

    AES is the best. I alredy use it for mysql hash password..  SELECT HEX(AES_ENCRYPT('password', 'key'));

     

    3. SendClientConfigPacket. should be ok :)   The packet will send true or false intro client and with one config server you can enable or disable client codes too.  Here is an example config.  https://metin2.download/picture/r3F9504x09DVmF8K988YXgTtGTP6KMUj/.gif from my server.  Also write locale.cfg metin2.cfg mouse.cfg to be saved intro registry.

    if (true == ReceiveClientConfigPacket(g_enable_wolfman))

    {

    /// Valid codes

    }

     

     

    Here is one challange for you, well.. What to include in you release, i already did all those but do it if you want.

    - no need to pool memory big than 1024*256, that is 18 slots, to forbidden call buffer_pool_free()

    -memory size 8Byte align, use memalign inseated

    - create a thread safe for buffers.

    - std::copy inseated of  memcpy

    - convert all new operators to unique_ptr  (Client / server src )

    - see assert functions intro release mode (server /client ) undefined behavior (buffer.c)

    - Rewrite adminpage systems for a better stability.

    - Fix all memory leaks that come from  SpeedTreeWrapper class.

    - Fix rotation intro intro StatePacket.

     

    - and mooooooooore  things , just too lazy to tell you...

     

    Good luck.

    • Love 1
  5. 2 hours ago, stein20 said:

    Compile  succeeded.

    But not working for me 

    :(

    b4d761e0896560c1f650cdb997a278d0.png

     

    only it works well:

    (m_eRace == 8)

     

    Just add  enum from PythonPlayer.cpp to PythonPlayer.h as public

    749855117da54c7583e87475a78bc36e.png

    Then include PythonPlayer.h intro StdAfx.h if not work include directly just in that file where is needed.

    And use CPythonPlayer:: class.. above you have an example.

    0b4d03d3a3d6427aa574b91c566aea27.png

     

    This is because in new binary they moved enum from PythonPlayer.cpp to RaceData.h adn they renamed inseated of example :

    Old :

    MAIN_RACE_SHAMAN_M,

    new

    RACE_SHAMAN_M,

     

    same for wolfman.. you can  move entire enum intro RaceData class as public if you want to be accesed for all members and use CRaceData::

    I did all those some time ago.. 

     

    Intro the public source those enum is used just and just intro  DWORD CPythonPlayer::GetRaceStat()  FROM PythonPlayer.cpp  they moved enums and renmed to give another scope ..  

     

    Make it like this :

    RaceData.h

    79a67b0e7ed641b5a644f7ede43c610f.png

    PythonPlayer.cpp

    3d9b46b156f442d9b6d097e0cea3e412.png

    ActorInstance.cpp

    f5f419cbaad344acac40ab6a70867171.png

    • Love 1
  6. 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.

    • Love 1
  7. 22 minutes ago, Krusty said:

    Im searching for a clientprotection like this

    But i dont pay 300e for only libs and not for a fucking scammer like ds_aim.

    1. I'm not a scammer.

    2. Bye metin. I'm done with all idiots.  This is last login , you forgot when 1 year ago i release sources client.. that 60% of you use? In that time i was a scamm er too ?  btw, good luck.  You have no ideea how hard is to write a protection like that. If you don't want just don't buy it.

    Nobody forces you.

  8. 44 minutes ago, Krawbber said:

    'Than me'*. Why would someone help? Because we are humans and because those are virtual things.I saw that many people on this forum find virtual things more important than being human , i think that is the first sign of addiction, i'm not talking to you especially.I say it generally so don't feel offend. And i want to say anything more.When reboot started to sell marty's source, why anybody didn't something about it ? He sold marty's source as his source changing a part of defines. He is still selling it right now.So we should  stop spamming his topic cause him asked nicely for help , if someone helps him is because he wants to.If you don't want to keep your bad comments for yourself.This is fair , am i wrong?

     

    I repeat once more. I don't use that garbage source. I don't give 1 euro for that source.  I wipe my ass with that source, you understand me?

     

    Tell me , have martyfuck this codes  ? And this packet structure? NO, NEVER.

    PACKET_START(SPacketGGSetup, HEADER_GG_SETUP) /*Setup packet game->game*/
    	int32_t bHeader;
    	short	wPort;
    	BYTE	bChannel;
    PACKET_END(SPacketGGSetup)
    
    PACKET_START(TPacketGGLogin, HEADER_GG_LOGIN) /*Internal login game->game*/
    	int32_t bHeader;
    	char	szName[CHARACTER_NAME_MAX_LEN + 1];
    	DWORD	dwPID;
    	BYTE	bEmpire;
    	long	lMapIndex;
    	BYTE	bChannel;
    PACKET_END(TPacketGGLogin)

     

    Just stop with all those shits, in my eyes is garbage.. 

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