Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/28/21 in all areas

  1. This hwid ban works in a quite simple way and I'm pretty sure that this isn't the best way to get HWID from a computer, but nonetheless it works It was released a long time ago by someone on this forum, but that solution was awful. So I reimplemented it only in c++ without the need of an external exe and to add python code. Client File: packet.h Find typedef struct command_login3 { BYTE header; char name[ID_MAX_NUM + 1]; char pwd[PASS_MAX_NUM + 1]; DWORD adwClientKey[4]; } TPacketCGLogin3; Replace with typedef struct command_login3 { BYTE header; char name[ID_MAX_NUM + 1]; char pwd[PASS_MAX_NUM + 1]; DWORD adwClientKey[4]; char hwid[255]; // <----- } TPacketCGLogin3; File: AccountConnector.cpp Find TPacketCGLogin3 LoginPacket; LoginPacket.header = HEADER_CG_LOGIN3; strncpy(LoginPacket.name, m_strID.c_str(), ID_MAX_NUM); strncpy(LoginPacket.pwd, m_strPassword.c_str(), PASS_MAX_NUM); LoginPacket.name[ID_MAX_NUM] = '\0'; LoginPacket.pwd[PASS_MAX_NUM] = '\0'; Add under HW_PROFILE_INFO hwProfileInfo; GetCurrentHwProfile(&hwProfileInfo); Tracef("hwid %s\n", hwProfileInfo.szHwProfileGuid); strncpy(LoginPacket.hwid, hwProfileInfo.szHwProfileGuid, 254); Server File: packet.h Find typedef struct command_login3 { BYTE header; char login[LOGIN_MAX_LEN + 1]; char passwd[PASSWD_MAX_LEN + 1]; DWORD adwClientKey[4]; } TPacketCGLogin3; Replace with typedef struct command_login3 { BYTE header; char login[LOGIN_MAX_LEN + 1]; char passwd[PASSWD_MAX_LEN + 1]; DWORD adwClientKey[4]; char hwid[255]; } TPacketCGLogin3; File: input_auth.cpp Find char login[LOGIN_MAX_LEN + 1]; trim_and_lower(pinfo->login, login, sizeof(login)); char passwd[PASSWD_MAX_LEN + 1]; strlcpy(passwd, pinfo->passwd, sizeof(passwd)); add under char hwid[255]; strlcpy(hwid, pinfo->hwid, sizeof(hwid)); Find char szPasswd[PASSWD_MAX_LEN * 2 + 1]; DBManager::instance().EscapeString(szPasswd, sizeof(szPasswd), passwd, strlen(passwd)); char szLogin[LOGIN_MAX_LEN * 2 + 1]; DBManager::instance().EscapeString(szLogin, sizeof(szLogin), login, strlen(login)); Add under char szHWID[255]; DBManager::instance().EscapeString(szHWID, sizeof(szHWID), hwid, strlen(hwid)); // ENABLE_HWID_BAN // update client hwid // DBManager::instance().DirectQuery("UPDATE account.account SET hwid = '%s' WHERE login = '%s'", szHWID, szLogin); std::auto_ptr<SQLMsg> pUpdateMsg("UPDATE account.account SET hwid = '%s' WHERE login = '%s'", szHWID, szLogin); // check if client hwid is banned std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM account.hwid_ban WHERE hwid = '%s'", szHWID)); if (pMsg->Get()->uiNumRows > 0) { LoginFailure(d, "BLOCK"); printf("Account %s HWID ban - tried to login\n", szLogin); sys_log(0, "Account %s HWID ban - tried to login\n", szLogin); return; } // end HWID BAN Database Add a new column called "hwid" (varchar 255) to table account. Create a new table in the database "account" and call it hwid_ban. Inside this table put a column called "hwid".
    3 points
  2. This is a pretty simple tutorial in which I'll show you how to get notified via email (or sms, but this feature is not free) when your server goes offline or is not reachable for some reason. I personally suggest and use HetrixTools, which will be also used in this tutorial. Step 1) First of all, you want to create an account on HetrixTools website. Step 2) After you have logged in, from the main menu click on Tools -> Uptime montitors. and then click on Add monitor to add a new server. Step 3) A window will pop up. As monitor type select "Ping/Service monitor". Then fill up the form as follows: In the "Monitor from" section you have to select 4 locations. Choose them according to the continent where your server is hosted. For example, my server is hosted in France and I picked these four locations: Then click on "show advanced settings" and change "Number of tries" to 1 (or 2) and finally click on "Add monitor". Now you will be notified if your server goes offline and you will have your personal server status page with detailed information
    3 points
  3. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Hi ! First: sorry. My code is not clean, I am not a developer or anything, I am just a math student. I am just trying to do my best. And my skills in English are… non-existent. So, be nice please. Using very often PyCharm, I wanted to be able to use it on Metin2, but PyCharm (or another IDE) hit me hard with baseball bat because he could not find the modules. So, I have made this tool to create module’s python skeleton and use autocompletion with IDE. The biggest flaw is that you must have Python3 installed on your machine to use typing. Example of result with PyCharm: And you can't find an exemple of output here. To follow this tutorial, you must have: Python3 (i'm using Python3.8) PyCharm or other IDE, but in this tutorial, I will use PyCharm (from JetBrains). Tools to make skeletons. I – Generate your module skeleton. You can find just upper, a link to download my script. It is easy to use. You can find all the manipulations in README.md file, but I will explain it here too: Move all your client’s .cpp file (with module) in src folder. Just use now main.py with Python3 (I developed it with Python3.8) You will see many files in bin folder. II – Make a virtual environment of Python3 for IDEs We will have to create a virtual environment for our IDEs to do not dirty our real Python installation. To do that, you can use the command : python3 -m venv /path/to/new/virtual/environment Find all information on the doc : [Hidden Content] I will show you how to do that with PyCharm: And with Visual Studo Code: III - Add our skeletons to virtualenv For that, you just must move all your .py file in bin folder to venv/Lib/site-packages. Example : This manipulation is a little dirty ... But I couldn't find anything better so as not to have too much change to make. If you have a better one, I take... Don't forget to configure your IDE to use new virtualenv. IV - Known issues: Script cannot predict value of the constants; It does not yed manage structures of this type: V - Debug: Script now support Tuple in functions' returns; Add the method GetWindow for arguments. With using Python3 IDE, he will consider print without parentheses and except bloc as error... Thanks to @Gurgarath for his help Github Takuma.
    1 point
  4. M2 Download Center Download Here ( Internal ) This is the visual studio code extension for metin2 quests: it's based on these things: * [Hidden Content] * [Hidden Content] * [Hidden Content] special thanks: @martysama0134 for the detailed documentations. Known issues: defines like: define VAR x (are not allowed) [0.0.2] * Added support for quest as a separate language. * Added lua syntax checker from lualinter. * Fixed quest syntax checker will check both lua and quest. [0.0.3] - 2019-09-25 * Minor fixes. [0.0.4] -2019-09-26 * Added functions parameters support. [Hidden Content] * Added the extension to VS Code MarketPlace. [Hidden Content]
    1 point
  5. @Sonitexwill soon sell its version. You can see with him.
    1 point
  6. Marketplace Rules The rules of the Marketplace have been updated. These are mostly explanations, no significant change. Deletion of the 250 required messages.
    1 point
  7. I already contacted ATAG the owner of DDMT2 if he kept the Hongkong website, waiting for his reply. Btw his server still running just in another domain (ddmt2.net) maybe it's the oldest (or at least on of the oldest) P server what still running since it started in 2009. My reg date is 2009-12-29 If I don't succeed to find the HK webpage then i may rebuild it in the future using the web archive images-css files.
    1 point
  8. Thanks for all i hope someday find old web for example ddmt2 .... I don't understand why nothing related to the Asian Metins has survived, it's as if everything suddenly disappeared ... Jp metin2: [Hidden Content] reason for closing: they had problems with the vps, losing all kinds of backups. if someone have know about old webs tell my :(((
    1 point
  9. Do you get any syslog/syserr messages? Can you show us you cube file? Might be a format problem.
    1 point
  10. GF v21.0.8 Patch (Metin2 Download) (Full client) Contents: root-meta, dumped binary, locales with protos new monsters, maps, dungeon, armors, 2021 easter costumes and mount the package contains the separated folders(m00xxx) and the unpacked files together in one folder.
    1 point
  11. i love you mate ! Thank you.Whenever i am available we will talk again on discord xD [Hidden Content] thank you !
    1 point
  12. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) M: [Hidden Content] F: [Hidden Content] GitHub repository: [Hidden Content] 02.03.2019 - Polymorph bug fixed.
    1 point
  13. Version of Files : martysama Hello, I'm trying to add the extended item award from Vegas: [Hidden Content] I have a problem compiling this part, but i think i did everything correcly This is my ItemAwardManager.cpp @VegaS™Do you know how I could fix this? Thank you Vegas helped me, i needed to add #include <math.h> at the beninning #solved
    1 point
  14. No, we don't need a timer for this, you're right that you can't do this inside of login because the POINT_MOUNT is seted after, so, this method is for all types of mounts/horses: [Hidden Content] Not tested.
    1 point
  15. (2.5) Questions & Answers specific rules Don't modify your thread (or reply to it) to mark it solved, and not explain the solution to the issue. For those who want this, you can do something like: [Not tested] [Hidden Content]
    0 points
×
×
  • 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.