Jump to content

ds_aim

Banned
  • Posts

    442
  • Joined

  • Last visited

  • Days Won

    9
  • Feedback

    0%

Everything 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
  2. boost::python implement started I need to adapt to make_unique now 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 "
  3. I modernized code long time ago. 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: After modenrize : 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
  4. You use one of my old, very old source. :)) Ahh .. You can delete it. is very unstable.
  5. It's useless to do this. FreeBSD is already good. If you want, improve, do it. Port source to libevent http://libevent.org/ or libuv.
  6. 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.
  7. Just add enum from PythonPlayer.cpp to PythonPlayer.h as public 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. 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 PythonPlayer.cpp ActorInstance.cpp
  8. Server try to sync with client 32 times, if fail it return false for the current player.
  9. Download cmake and generate .sln then compile.
  10. You can make also a loop like checkPythonLibrayFilenames
  11. You are sure about that ? Just install mysqltuner and post here the results.
  12. Check m signature. I managed to compile under ubuntu, all tests was passed but i never used in production. Intro my test server i don't found any issue. [Hidden Content] look
  13. 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.
  14. The client try to sync with server 32 times atfer it return false . Have a look intro time sync HEADER_GC_TIME_SYNC
  15. 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.
  16. 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..
  17. If you don't know how to update. Then don't do it. If all work why you want to update? Any good reasons for this ?
×
×
  • 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.