Jump to content

Search the Community

Showing results for tags 'c++'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Metin2 Dev
    • Announcements
  • Community
    • Member Representations
    • Off Topic
    • Metin2
  • Private Servers
    • Private Servers
  • Help Center
    • Questions & Answers
    • File Requests
  • Metin2 Development
    • Basic Tutorials / Beginners
    • Guides & HowTo
    • Binaries
    • Programming & Development
    • Web Development & Scripts / Systems
    • Tools & Programs
    • Maps
    • Quests
    • 3D Models
    • 2D Graphics
    • Operating Systems
    • Miscellaneous
  • Marketplace
    • Searching
  • Miscellaneous
    • Drafts
    • Trash
    • Archive
    • Temporary
    • Metin2 Download
  • Forum Bureau of Investigation's Forum

Product Groups

  • Header & Footer
  • Topic & Forum
  • Pack
  • Small Advertisement
  • Large Advertisement

Blogs


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Pillory


Marketplace


Game Server


My Message


Country


Nationality


Github


Gitlab


Discord


Skype


Website

  1. Hello friends. When I had removed the sequence/pong some players had connection with different metin2client.exe now players can't log in from different clients and problems occur my problems are solved thank you we have done a test before the post is made -------------------------------- From 512 you can make 2048 with few changes to the code I suggest 512 and not 2048 he cannot break the key Players cannot connect to a different client or find the key -------------------------------- OPEN SERVER/CLIENT service.h/locale_inc.h ADD: #define BLOCK_LOGIN_FROM_ANOTHER_CLIENT #ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT #define NEW_PROTECT_KEYS 480 + 32 #endif OPEN PACKET client/server SEARCH: command_login3 ADD: #ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT char blockclient[NEW_PROTECT_KEYS]; #endif OPEN server INPUT_AUTH.cpp SEARCH: bool Login_IsInChannelService(const char* c_login) ADD AFTER: #ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT extern const char block_client[NEW_PROTECT_KEYS]; const char block_client[NEW_PROTECT_KEYS] = { 0xf2, 0x42, 0x8a, 0xa1, 0x29, 0x7e, 0xfa, 0xd9, 0x19, 0xbc, 0xe5, 0x4c, 0x63, 0xf0, 0x94, 0x33, 0xf1, 0x37, 0x47, 0xf9, 0xc9, 0x43, 0x78, 0x2b, 0x9b, 0x2a, 0x48, 0x2, 0x35, 0x34, 0xa5, 0x56, 0xc1, 0x7b, 0x8, 0x9c, 0x38, 0x72, 0xc8, 0x99, 0x3f, 0x1c, 0xd7, 0x22, 0x66, 0xad, 0x40, 0x48, 0x76, 0xd1, 0x5e, 0xf, 0x77, 0x9, 0x1b, 0x52, 0xfb, 0x7e, 0xaf, 0x59, 0xdb, 0x59, 0x95, 0x5c, 0x18, 0x44, 0xd0, 0xde, 0x5e, 0xdb, 0x86, 0x7f, 0xb7, 0x1c, 0xf2, 0x3a, 0xd2, 0x67, 0x32, 0x75, 0x80, 0x1b, 0x8e, 0xd1, 0x9, 0xc9, 0xd6, 0x44, 0x2e, 0x5d, 0x47, 0x47, 0xf9, 0xd, 0xbf, 0xa9, 0xc3, 0x8e, 0xc2, 0x2b, 0x69, 0x10, 0x29, 0x57, 0xb7, 0xaa, 0xb, 0x4c, 0x29, 0x7, 0xb1, 0x5f, 0x99, 0xfd, 0x7b, 0x4, 0xc5, 0x44, 0xe6, 0xd4, 0xa7, 0x71, 0x12, 0x5a, 0x11, 0xc5, 0xa2, 0x3d, 0x11, 0x3e, 0x44, 0x2f, 0x3e, 0x98, 0x96, 0xab, 0x12, 0x14, 0xf0, 0x5c, 0xa6, 0xb, 0xa6, 0x0, 0x26, 0x1, 0x87, 0x67, 0xf3, 0x78, 0xc9, 0xd2, 0x9b, 0xd2, 0xd4, 0x17, 0x7d, 0xc3, 0xaa, 0x78, 0x8a, 0xf1, 0xf4, 0x80, 0xfd, 0x31, 0x6f, 0xb5, 0xa4, 0x61, 0x2d, 0x75, 0x30, 0xa5, 0x4d, 0x69, 0xfd, 0xfc, 0x3f, 0x68, 0x9b, 0x87, 0xb6, 0xa5, 0x7b, 0x7, 0x2, 0x4d, 0x65, 0xb1, 0x8d, 0xa1, 0x68, 0x6e, 0xd1, 0x64, 0x23, 0x3, 0x39, 0x76, 0x9f, 0xbb, 0x6b, 0x5f, 0xc4, 0x92, 0x60, 0x4a, 0x3, 0x7e, 0xe3, 0x8d, 0x19, 0xb2, 0x9d, 0x76, 0x2a, 0xf, 0x8f, 0x82, 0x1c, 0xba, 0x3a, 0xbc, 0x74, 0x97, 0xd1, 0x72, 0xa8, 0x5b, 0x6b, 0x58, 0x36, 0xb6, 0xa9, 0xe0, 0x8f, 0x3e, 0xf2, 0x65, 0x22, 0xd2, 0x31, 0x10, 0x1, 0xfd, 0xcf, 0x0, 0x4, 0xc2, 0xb6, 0x5, 0xfa, 0x58, 0xb6, 0xd4, 0xa1, 0xaf, 0xc0, 0xe8, 0xe3, 0xaa, 0xcb, 0x83, 0x3e, 0x2e, 0xa, 0x48, 0xc8, 0xcf, 0xf5, 0x1, 0x2c, 0x2e, 0x7e, 0x7b, 0x30, 0xb9, 0x67, 0xe9, 0xa, 0xeb, 0x1c, 0x92, 0x74, 0x72, 0xf3, 0x46, 0x4d, 0xe6, 0xb3, 0x74, 0x34, 0x19, 0x59, 0x4e, 0x45, 0x6f, 0xa6, 0xfd, 0x6d, 0xf5, 0x8, 0x3f, 0xaf, 0xf2, 0xa6, 0xed, 0xfc, 0x1c, 0x15, 0xb3, 0xdd, 0x4b, 0x95, 0x23, 0x58, 0x6c, 0xec, 0x1f, 0x20, 0xbc, 0x80, 0x22, 0x90, 0xbc, 0x8f, 0x68, 0x11, 0x90, 0x7c, 0x5b, 0xfb, 0x7f, 0x49, 0x7d, 0x15, 0xad, 0x6a, 0xe5, 0x5d, 0xa8, 0x52, 0x15, 0x33, 0xa0, 0x96, 0x55, 0x2d, 0x60, 0x8e, 0xa7, 0x11, 0x33, 0x31, 0x57, 0xb8, 0x23, 0x4d, 0x9d, 0xb2, 0xc2, 0xa, 0x4e, 0xa4, 0x25, 0xec, 0xba, 0xa8, 0xa6, 0xc, 0xa3, 0xbd, 0x44, 0x66, 0x9e, 0xec, 0x9c, 0xf2, 0xa1, 0x74, 0x36, 0xf3, 0x21, 0xd2, 0xe2, 0x53, 0xd3, 0x66, 0x4c, 0x85, 0x6a, 0xcf, 0x4d, 0xf4, 0x44, 0x91, 0x56, 0x31, 0x3, 0x6e, 0xb1, 0x4e, 0x4c, 0xa4, 0x84, 0x92, 0xa6, 0x35, 0x71, 0x69, 0xc4, 0x37, 0xf2, 0x87, 0x40, 0x84, 0x44, 0x1a, 0xc9, 0x84, 0xf0, 0x1a, 0x1a, 0xca, 0x2a, 0xbc, 0x77, 0x97, 0x3, 0x75, 0x6a, 0xd6, 0xd1, 0xde, 0x67, 0x1c, 0xbf, 0x9b, 0xc7, 0x1c, 0xf6, 0xcd, 0xfa, 0x20, 0x5d, 0xd9, 0xe2, 0xd2, 0x75, 0x21, 0xc7, 0xde, 0x5c, 0x50, 0x5c, 0x7, 0x17, 0xe6, 0x93, 0x4b, 0xc3, 0xd2, 0xa3, 0xd, 0x27, 0xb2, 0x71, 0x45, 0x2, 0xb9, 0x33, 0x56, 0xac, 0xba, 0x47, 0xc8, 0xa, 0x1a, 0x4e, 0xa4, 0x55, 0x3, 0x77, 0x7, 0x6a, 0x69, 0x90, 0x3c, 0x9a, 0xb1, 0x56, 0x3e, 0x35, 0xeb, 0xf9, 0x5d, 0x29, 0xc6, 0xb0, 0xb6, 0xa7, 0xdb, 0x91, 0xd0, 0x0, 0xb7, 0xf8, 0x0, 0x6a, 0x60, 0x19, }; #endif NEW SEARCH: if (DESC_MANAGER::instance().FindByLoginName(login)) { LoginFailure(d, "ALREADY"); return; } ADD AFTER: #ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT char blockclient[NEW_PROTECT_KEYS]; strlcpy(blockclient, pinfo->blockclient, sizeof(blockclient)); std::string block = block_client; if (NULL != block.compare(blockclient)) { LoginFailure(d, "SHUTDOWN"); return; } #endif ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ LETS GO CLIENT: OPEN AccountConnector.cpp SEARCH: void CAccountConnector::SetHandler(PyObject* poHandler) { m_poHandler = poHandler; } ADD AFTER: //#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT // NO #IFDEF NO #IFDEF NO #IFDEF // CHAR __PROTECTCLIENT__[NEW_PROTECT_KEYS] = { 0xf2, 0x42, 0x8a, 0xa1, 0x29, 0x7e, 0xfa, 0xd9, 0x19, 0xbc, 0xe5, 0x4c, 0x63, 0xf0, 0x94, 0x33, 0xf1, 0x37, 0x47, 0xf9, 0xc9, 0x43, 0x78, 0x2b, 0x9b, 0x2a, 0x48, 0x2, 0x35, 0x34, 0xa5, 0x56, 0xc1, 0x7b, 0x8, 0x9c, 0x38, 0x72, 0xc8, 0x99, 0x3f, 0x1c, 0xd7, 0x22, 0x66, 0xad, 0x40, 0x48, 0x76, 0xd1, 0x5e, 0xf, 0x77, 0x9, 0x1b, 0x52, 0xfb, 0x7e, 0xaf, 0x59, 0xdb, 0x59, 0x95, 0x5c, 0x18, 0x44, 0xd0, 0xde, 0x5e, 0xdb, 0x86, 0x7f, 0xb7, 0x1c, 0xf2, 0x3a, 0xd2, 0x67, 0x32, 0x75, 0x80, 0x1b, 0x8e, 0xd1, 0x9, 0xc9, 0xd6, 0x44, 0x2e, 0x5d, 0x47, 0x47, 0xf9, 0xd, 0xbf, 0xa9, 0xc3, 0x8e, 0xc2, 0x2b, 0x69, 0x10, 0x29, 0x57, 0xb7, 0xaa, 0xb, 0x4c, 0x29, 0x7, 0xb1, 0x5f, 0x99, 0xfd, 0x7b, 0x4, 0xc5, 0x44, 0xe6, 0xd4, 0xa7, 0x71, 0x12, 0x5a, 0x11, 0xc5, 0xa2, 0x3d, 0x11, 0x3e, 0x44, 0x2f, 0x3e, 0x98, 0x96, 0xab, 0x12, 0x14, 0xf0, 0x5c, 0xa6, 0xb, 0xa6, 0x0, 0x26, 0x1, 0x87, 0x67, 0xf3, 0x78, 0xc9, 0xd2, 0x9b, 0xd2, 0xd4, 0x17, 0x7d, 0xc3, 0xaa, 0x78, 0x8a, 0xf1, 0xf4, 0x80, 0xfd, 0x31, 0x6f, 0xb5, 0xa4, 0x61, 0x2d, 0x75, 0x30, 0xa5, 0x4d, 0x69, 0xfd, 0xfc, 0x3f, 0x68, 0x9b, 0x87, 0xb6, 0xa5, 0x7b, 0x7, 0x2, 0x4d, 0x65, 0xb1, 0x8d, 0xa1, 0x68, 0x6e, 0xd1, 0x64, 0x23, 0x3, 0x39, 0x76, 0x9f, 0xbb, 0x6b, 0x5f, 0xc4, 0x92, 0x60, 0x4a, 0x3, 0x7e, 0xe3, 0x8d, 0x19, 0xb2, 0x9d, 0x76, 0x2a, 0xf, 0x8f, 0x82, 0x1c, 0xba, 0x3a, 0xbc, 0x74, 0x97, 0xd1, 0x72, 0xa8, 0x5b, 0x6b, 0x58, 0x36, 0xb6, 0xa9, 0xe0, 0x8f, 0x3e, 0xf2, 0x65, 0x22, 0xd2, 0x31, 0x10, 0x1, 0xfd, 0xcf, 0x0, 0x4, 0xc2, 0xb6, 0x5, 0xfa, 0x58, 0xb6, 0xd4, 0xa1, 0xaf, 0xc0, 0xe8, 0xe3, 0xaa, 0xcb, 0x83, 0x3e, 0x2e, 0xa, 0x48, 0xc8, 0xcf, 0xf5, 0x1, 0x2c, 0x2e, 0x7e, 0x7b, 0x30, 0xb9, 0x67, 0xe9, 0xa, 0xeb, 0x1c, 0x92, 0x74, 0x72, 0xf3, 0x46, 0x4d, 0xe6, 0xb3, 0x74, 0x34, 0x19, 0x59, 0x4e, 0x45, 0x6f, 0xa6, 0xfd, 0x6d, 0xf5, 0x8, 0x3f, 0xaf, 0xf2, 0xa6, 0xed, 0xfc, 0x1c, 0x15, 0xb3, 0xdd, 0x4b, 0x95, 0x23, 0x58, 0x6c, 0xec, 0x1f, 0x20, 0xbc, 0x80, 0x22, 0x90, 0xbc, 0x8f, 0x68, 0x11, 0x90, 0x7c, 0x5b, 0xfb, 0x7f, 0x49, 0x7d, 0x15, 0xad, 0x6a, 0xe5, 0x5d, 0xa8, 0x52, 0x15, 0x33, 0xa0, 0x96, 0x55, 0x2d, 0x60, 0x8e, 0xa7, 0x11, 0x33, 0x31, 0x57, 0xb8, 0x23, 0x4d, 0x9d, 0xb2, 0xc2, 0xa, 0x4e, 0xa4, 0x25, 0xec, 0xba, 0xa8, 0xa6, 0xc, 0xa3, 0xbd, 0x44, 0x66, 0x9e, 0xec, 0x9c, 0xf2, 0xa1, 0x74, 0x36, 0xf3, 0x21, 0xd2, 0xe2, 0x53, 0xd3, 0x66, 0x4c, 0x85, 0x6a, 0xcf, 0x4d, 0xf4, 0x44, 0x91, 0x56, 0x31, 0x3, 0x6e, 0xb1, 0x4e, 0x4c, 0xa4, 0x84, 0x92, 0xa6, 0x35, 0x71, 0x69, 0xc4, 0x37, 0xf2, 0x87, 0x40, 0x84, 0x44, 0x1a, 0xc9, 0x84, 0xf0, 0x1a, 0x1a, 0xca, 0x2a, 0xbc, 0x77, 0x97, 0x3, 0x75, 0x6a, 0xd6, 0xd1, 0xde, 0x67, 0x1c, 0xbf, 0x9b, 0xc7, 0x1c, 0xf6, 0xcd, 0xfa, 0x20, 0x5d, 0xd9, 0xe2, 0xd2, 0x75, 0x21, 0xc7, 0xde, 0x5c, 0x50, 0x5c, 0x7, 0x17, 0xe6, 0x93, 0x4b, 0xc3, 0xd2, 0xa3, 0xd, 0x27, 0xb2, 0x71, 0x45, 0x2, 0xb9, 0x33, 0x56, 0xac, 0xba, 0x47, 0xc8, 0xa, 0x1a, 0x4e, 0xa4, 0x55, 0x3, 0x77, 0x7, 0x6a, 0x69, 0x90, 0x3c, 0x9a, 0xb1, 0x56, 0x3e, 0x35, 0xeb, 0xf9, 0x5d, 0x29, 0xc6, 0xb0, 0xb6, 0xa7, 0xdb, 0x91, 0xd0, 0x0, 0xb7, 0xf8, 0x0, 0x6a, 0x60, 0x19, }; //#endif SEARCH: strncpy(LoginPacket.pwd, m_strPassword.c_str(), PASS_MAX_NUM); ADD AFTER: #ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT strncpy(LoginPacket.blockclient, __PROTECTCLIENT__, sizeof(LoginPacket.blockclient) - 32); #endif SEARCH: LoginPacket.pwd[PASS_MAX_NUM] = '\0'; ADD AFTER: #ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT LoginPacket.blockclient[NEW_PROTECT_KEYS] = '\0'; #endif You can change the key from [Hidden Content] 1) OPEN: sequence-generator 2) SEARCH: seq_gen.py 3) OPEN seq_gen.py with notepad++ NOW CHANGE CODES FROM 2048 TO 32 for i in range(2048): TO for i in range(32): 4) NOW CREATE KEY 5 ADD KEY IN): SERVER: #ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT extern const char block_client[NEW_PROTECT_KEYS]; const char block_client[NEW_PROTECT_KEYS] = AND CLIENT: //#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT // NO #IFDEF NO #IFDEF NO #IFDEF // CHAR __PROTECTCLIENT__[NEW_PROTECT_KEYS] =
  2. M2 Download Center Download Here ( Internal ) Hey guys, Today I'm releasing the tutorial for Boss Effect Over Head. Picture of system: Download link: Pastebin tutorial (only): Special thanks to: @Syreldar @M.Sorin for some functions which I used in the tutorial. I believe someone will use that Have a nice day/night! Sincerely, ReFresh
  3. Hello fine people, A little bit of context, recently we have been talking with @ msnas about doing an action upon server closure. Which is what the db/game should be doing by default when it exits MainLoop. However, I noticed that because of the way I shutdown my core, I wasn't receiving the right signal and was exiting the server before I can do any other actions. He then told me that he noticed this issue a long time ago because it was also present for him, only on Windows. Well, after a little bit of digging, I noticed that the signal was simply not handled on a Windows server. So here is a rudimentary (but working) signal management for Windows. I guess you can still rewrite the whole thing using more modern stuff like boost signal. But so far so good. Please not that you should close your db / game using CTRL+C or CTRL+BREAK if you want to gracefully shutdown. As a forced closure (closing the window, shutdown or task manager) would still not allow for the server to properly close, notably because it doesn't give enough grace time. So, here is the fix: Have a nice day!
  4. [Hidden Content] [Hidden Content] You must add these: Reversed from 22.2.7.0 Official Binary. Thanks to @ Owsap You can disable the premium requirement. Edit the CanPickUpItem function according to your server.
  5. Why? Why not? Seriously though, why? I was legit just bored. Ok, first of all, we need to indicate to Visual Studio that we wanna compile with the flag /std:c++17. You do so by selecting all the projects on the right and clicking properties: and click on Apply (duh) Then let's fix the first issue, the introduction of std::byte. For some reason (and you should never ever ever ever ever ever do it), there are some: using namespace std; in the code. DELETE. THEM. ALL. Now compile. Yeah, it's not over, because now, we should edit all the std functions (make_pair, string, declarations of maps, vectors etc.) adding std:: before, for ex: operator const string() const { return m_sRaw; } becomes operator const std::string() const { return m_sRaw; } just compile and fix them all whenever you find them. A few of them are more "difficult". Open Stl.h in EterBase and there's gonna be: namespace std { template <class _Ty> class void_mem_fun_t : public unary_function<_Ty *, void> { public: explicit void_mem_fun_t(void (_Ty::*_Pm)()) : _Ptr(_Pm) {} void operator()(_Ty *_P) const {((_P->*_Ptr)()); } private: void (_Ty::*_Ptr)(); }; template<class _Ty> inline void_mem_fun_t<_Ty> void_mem_fun(void (_Ty::*_Pm)()) {return (void_mem_fun_t<_Ty>(_Pm)); } template<class _Ty> class void_mem_fun_ref_t : public unary_function<_Ty, void> { public: explicit void_mem_fun_ref_t(void (_Ty::*_Pm)()) : _Ptr(_Pm) {} void operator()(_Ty& _X) const {return ((_X.*_Ptr)()); } private: void (_Ty::*_Ptr)(); }; template<class _Ty> inline void_mem_fun_ref_t<_Ty> void_mem_fun_ref(void (_Ty::*_Pm)()) {return (void_mem_fun_ref_t< _Ty>(_Pm)); } // TEMPLATE CLASS mem_fun1_t template<class _R, class _Ty, class _A> class void_mem_fun1_t : public binary_function<_Ty *, _A, _R> { public: explicit void_mem_fun1_t(_R (_Ty::*_Pm)(_A)) : _Ptr(_Pm) {} _R operator()(_Ty *_P, _A _Arg) const {return ((_P->*_Ptr)(_Arg)); } private: _R (_Ty::*_Ptr)(_A); }; // TEMPLATE FUNCTION mem_fun1 template<class _R, class _Ty, class _A> inline void_mem_fun1_t<_R, _Ty, _A> void_mem_fun1(_R (_Ty::*_Pm)(_A)) {return (void_mem_fun1_t<_R, _Ty, _A>(_Pm)); } } fucking remove this shit. Then replace all the: std::void_mem_fun with std::mem_fn Then in cipher.cpp replace std::auto_ptr into std::unique_ptr and then boost is gonna come busting our ass, so just upgrade the folder downloading the last version and..nope: Alright, I'd suggest to just disable this error: How to disable by Microsoft (do it for every project causing this error) If you fix boost's code, kudos to you. Then, after a lot of: from Python, it should be compiled. If you have ikarus offline shop, you should recompile libconfig with the same settings (probably cryptopp aswell? Honestly I can't remember)
  6. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Everything works fine, just add a part of "python" client, so that users change language with a button, i was lazy to do it. [Hidden Content] - The system saves one language per account. - It's capable of translating quest, client, etc. - The system takes the language from the client's mylang.cfg file and save on DB of this account in the client. The guide simply focuses on looking for DEFINE: ENABLE_MULTILANGUAGE So you can see how I placed it.
  7. M2 Download Center Download Here ( Internal ) Hi, here I publish my edit of the public Render Target System. I hate it, when people earn money with public systems. Preview: [Hidden Content] DL: [Hidden Content] Original Thread [Hidden Content]
  8. M2 Download Center Download Here ( Internal ) Hello, today is MCSP release date. Have fun. Some notes, if you like to implement new algorithms: Open CryptAlgorithms.h and define a new class with new stuff, like I did with LZO and Snappy. Make sure to modify Crypt.h "enum class CryptationTypes" Oh btw, you need to add Snappy in your Extern. How you may ask? Download [Hidden Content] Install [Hidden Content] Use cmake-gui to generate stuff, open snappy.sln and build it in release. Copy the .h files inside a newly created "snappy" folder in Extern/iniclude Go to (cmake build folder)/Release and copy your snappy.lib into Extern/lib If you use the vcpkg method: vcpkg install snappy:x86-windows-static Ready!
  9. The game loop freezes when dragging/resizing the window. This is an attempt at fixing that. We'll open a thread and call "Process()" from there when we receive WM_ENTERSIZEMOVE and then shut it down when receiving WM_EXITSIZEMOVE, continuing our main game loop. There's also the option of creating a timer when entering WM_ENTERSIZEMOVE, calling "Process()" when receiving WM_TIMER and killing it when receiving WM_EXITSIZEMOVE, but there's quite a big delay till the timer starts and it's also not very reliable, so.. Note: This is HIGHLY experimental, and it might result in data races and crash the client. Even though I tested it as good as I could and tried to make sure the main thread's loop doesn't resume before ending the future, it's still a possibility for that to happen when you least expect it. Video: Code: Github or M2DL Many thanks to @limefor taking the time to test it. Good luck!
  10. [Hidden Content] [Hidden Content] Reversed from 22.2.7.0 Official Binary. + Football Metin Stone From 22.5.7.0: Functions were in different modules, I gathered them on a single module. Do not forget to get proto and other files for metin stones from official packs.
  11. M2 Download Center Download Here ( Internal ) Hello , tonight i feel good and i will share this system for free. Is one of my first systems made for my server , i know that isn't made by a pro (coding stuff i mean) but it works w/o problems. I don't force anyone to use it, if you don't like the way it is made, make yourself the one you want. You need to have Emoji Texline stuff implemented: [Hidden Content] edit: change PythonTextTail.cpp: TTextTail * pTextTail = RegisterTextTail(VirtualID, c_szChat, pCharacterInstance->GetGraphicThingInstancePtr(), pCharacterInstance->GetGraphicThingInstanceRef().GetHeight() + 10.0f, c_TextTail_Chat_Color); to: TTextTail * pTextTail = RegisterTextTail(VirtualID, strContent.c_str(), pCharacterInstance->GetGraphicThingInstancePtr(), pCharacterInstance->GetGraphicThingInstanceRef().GetHeight() + 10.0f, c_TextTail_Chat_Color);
  12. M2 Download Center Download Here ( Github Backup ) - Download Here ( GitHub ) Download Here ( VM 9.2 ) or Download Here ( VM 12 ) Use this source: [Hidden Content] or [Hidden Content]
  13. M2 Download Center Download Here ( Internal ) Hello together, today i want to share something with you for christmas. But before we start let me tell you, this system isn't in is final form! I will update this thread (if metin2dev will still exist in the new year) to complete this system. Anyways let's get startet. What kind of System is it? You can use inbuilt animations on objects (map objects) and weapons (currently not working, just if the weapon is a ground item instance! I'm working on it). Here is a preview: [Hidden Content] First you can see a placed object on the map with inbuilt animation (sorry it is really far away :O) Later you can see a weapon (thanks to @Tatsumaru) which has an inbuilt animation. But this is currently just working as ground instance and not in the player hands itself. How to implement it What is missing for now? Currently the deforming for weapons holden by the player won't work. But as i said in the first few lines, i will add it later. But for now i want to give this parts to you for christmas! (Sorry i'm currently out of time to finish it before 2019 ends... Maybe someone of you want to complet it in his on way). The attachments Animated Object: [Hidden Content] <- Thanks to KillMoves who did this sometime ago!!! (Animated Weapon: [Hidden Content] <- Thanks to Tatsumaru!!! Have fun with it, your B4RC0D3
  14. Download Alternative download links → GitHub I couldn't find any of the events on the forum to avoid a double post so I decided to post it anyway in case it could be of use to someone. I will also update this topic with new events as needed and if requested. Quest Events / Triggers Fishing Mining Selling Buying Crafting Emoting See example below of how to use them. Usage Example
  15. M2 Download Center Download Here ( Internal ) I know many people like me come here or try to find in another forums this select new character official.. and is just a part or is incomplete.. but i find a full version and i come here to reupload. so GL on servers. For make large description on characters / kingdoms: Check change BOX_VISIBLE_LINE_COUNT from 5 to 14 in PythonEventManager.h Thanks @Lajk Download: [Hidden Content]
  16. Goal: Completing the official functions in the wndMgr module (reversed only) Differences between kraizy and 22.5.7.0: Added Removed This topic will be updated as new functions come. About CEditline class:
  17. M2 Download Center Download Here ( Internal ) Download Here ( GitHub )
  18. M2 Download Center Download Here ( Internal ) Hello guys.. So much people got problem with this system then i do FULL TuT exclusive for metin2dev All is tested and all works TuT included in all FILES.. New Link: Pass: When you find some bug post it here.. I will try to fix it.. Have Fun //EnZi EDITED: #New Link UPDATE cmd_general.cpp - Added some new code char_battle.cpp - Added some new code ProtoReader.cpp - Added some new code questlua_pc - Repaired code item_proto - Query for navicat Quest added UP LINK UPDATED fixed quest: [Hidden Content]
  19. M2 Download Center Download Here ( Internal ) Hello since i was looking for this system and it was "hard" to find it because Sanii's page is gone, i had to put it together taking bits of code from here and there. It is full with all the fixes and working with armor and weapon costumes. With this system you can assign an .mse file to a Vnum via 1 single .txt file It is a nice system so everyone should be able to use it. Only thing left is to adapt it for Sash's/Wing's if someone want's to do that i can post it here. Have fun.
  20. Hi, I have extended the Anti EXP 'System' for party scenarios. When sharing EXP as a party, members with Anti EXP enabled will be excluded from the share and the experience points that player misses will be shared across the other party members. Parties have the feature of a set experience bonus which, by default, ranges from 12% - 100% based on the count of members in range of the party leader. Players will be excluded from the member count when Anti EXP is enabled, this way you can't just create a full-house party and funnel all the EXP + the 100% bonus to one player. I am scripting on top of this piece of work.
  21. Download Alternative download links → Github All details are described in github readme.
  22. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Anyway now you can sell shop items with sockets and attrs at shopex. New price types. New sorting options Every Item can have different price type. price_type: 1:Gold 2:Second Coin 3:Item 4:EXP sort: Asc,Desc,Vnum,Price,Name,Type
  23. [Hidden Content] [Hidden Content] Reversed from 22.2.7.0 Official Binary. Client part is from 2018 Official Root.
  24. Go to the server_src->game->char_item.cpp and search for: case USE_POTION: Comment the line below: item->SetCount(item->GetCount() - 1); // turn it into //item->SetCount(item->GetCount() - 1);
  25. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Hi everyone, in my free time I'm trying to upgrade the mainline to most recently webzen releases. This is the Mythic Class of DS, enjoy. [Hidden Content] In order to use it as Webzen does, you need to have implemented:
×
×
  • 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.