Jump to content

Karbust

Management
  • Posts

    1161
  • Joined

  • Days Won

    10
  • Feedback

    100%

Everything posted by Karbust

  1. Bruh, you never tried it, but you are sure as fuck that it would work. I admire your confidence and persistence... Learn FreeBSD, do it yourself and then share the results.
  2. There was never a leaked version of granny. This was already asked in here, wouldn't hurt using the search function...
  3. On channel's CONFIG file add MALL_URL Like this: MALL_URL: google.com Without http or https, that part is defined on source where @Gurgarath already referenced.
  4. Bruh You are confusing memory usage by services and other software with memory leaks... FreeBSD is already lightweight, you wouldn't get a noticeable difference. This is FreeBSD 13 32bits on a Virtual Machine with 3GB of RAM and 12 cores: The only things using resources are bpytop (resource monitor) (cpu usage) and mysql (memory usage). The memory usage doesn't go above 617MB and the CPU oscillates between 1 and 2% usage. What exactly are you trying to achieve? It's already pretty good "without" anything running...
  5. Do you even know what memory leaks are? You probably should read this: [Hidden Content]
  6. Memory leaks result from somewhere between the chair and the keyboard. Don't blame the OS, much less a battle-tested OS like FreeBSD.
  7. When you make a FreeBSD installation it asks you what you want to install. Just remove a few boxes, and pray it still works. Whatever is there is necessary, I don't know why you want to "delete the junk code". Sendmail comes enabled by default, you have to disable it manually... If you have a good reason why you want a completely stripped version of FreeBSD, maybe the folks at [Hidden Content] may be able to help you out. For metin2 there are 0 reasons why you would need something like that...
  8. Just use the official ISO... It's available for download on FreeBSD's website... [Hidden Content]
  9. Update Sorry for another sudden update. Added support for update locale.cfg when changing the language on the patcher. The default value is false which means the locale.cfg file will not be updated when changing the patcher's language. To set it up edit src\config.ts. [Hidden Content] Disclaimer: The locales may not be 100% correct since I don't have every metin2 client. If you find a mistake on the ones already defined let me know.
  10. Update Added support for NodeJS 17 (OpenSSL Issue). Added a discord button (can be enabled/disabled on src\config.ts). Fixed the error when building saying electron belongs to devDependencies. Fixed the isDev issue not working on production build. [Hidden Content]
  11. Post your ClientManager.cpp too, the problem is probably coming from the query. You probably have an out of order on the function CreatePlayerTableFromRes on ClientManagerPlayer.cpp. You must be sure the query that returns the code to RESULT_COMPOSITE_PLAYER has the fields in the same order. Since it can't access the memory, you probably missed a field on the query.
  12. The biggest map ever map is 16x16, which is 4 times the size of the desert (4x4), why the hell do you want a map 32x32? This is a 32 bit application, probably it's running out of memory. 32 bits applications can only use up to 2GB, or 4GB if compiled large addresses aware, which is the default, at least for the client source, which is also a 32 bit application. Summing up, don't be crazy and try to build a gigantic map that has absolutely zero use cases on metin2. Even the 16x16 I never saw any server using it...
  13. Don't just copy and paste all the stuff, you need to make changes, mainly on the protos, msm, locale_game, locale_interface and others.
  14. If you haven't upgraded granny yet (Granny 2.4), you need to. The newer models are Granny 2.12.0.2, I think 2.9 accepts them, and Granny 2.11.8 works fine with them.
  15. You probably should figure out the why it breaks instead leaving a stupid and useless if... It doesn't return anything, so it literally goes through the if and executes whatever code comes after it.
  16. ahahahahah I though about that, but the original metin2 source is the only leaked content allowed in here, because #fuckymir #fuckwebzen and definitely #fuckgameforge But #dontfuckmetin2devs
  17. Sup bois and grils I still see a lot of people not being able to select the character when using a local server for friends or VPS behind a internal router or firewall. Disclaimer: This code (apart from the changes to support DNS names) wasn't made by me, it was originally posted on the metin2dev's French brother Funky-Emu by @Veltor88. On service.h add this: #define ENABLE_PROXY_IP On char.cpp: After: p.lAddr = lAddr; Add: #ifdef ENABLE_PROXY_IP if (!g_stProxyIP.empty()) p.lAddr = inet_addr(g_stProxyIP.c_str()); #endif Like this: On config.cpp: After (or anywhere within the global variables definition): char g_szInternalIP[16] Add: #ifdef ENABLE_PROXY_IP std::string g_stProxyIP = ""; #endif Like this: Still on config.cpp: After: the last TOKEN Add: #ifdef ENABLE_PROXY_IP TOKEN("proxy_ip") { #ifndef WIN32 if (validateIpAddress(value_string)) g_stProxyIP = value_string; else { struct hostent *host = gethostbyname(value_string); g_stProxyIP = inet_ntoa(*(struct in_addr *)host->h_addr_list[0]); fprintf(stderr, "PROXY_IP: [%s] resolves to [%s]\n", value_string, g_stProxyIP.c_str()); } #else g_stProxyIP = value_string; #endif fprintf(stderr, "PROXY_IP: %s\n", g_stProxyIP.c_str()); } #endif Like this: Still on config.cpp: Before: void config_init(const string& st_localeServiceName) Add: bool validateIpAddress(const std::string &ipAddress) { #ifndef WIN32 struct sockaddr_in sa; int result = inet_pton(AF_INET, ipAddress.c_str(), &(sa.sin_addr)); return result != 0; #else return true; #endif } Like this: On config.h: After (or anywhere in the file): extern char g_szInternalIP[16]; Add: #ifdef ENABLE_PROXY_IP extern std::string g_stProxyIP; #endif Like this: On desc.cpp: Within the function: void DESC::SendLoginSuccessPacket() Inside: for (int i = 0; i < PLAYER_PER_ACCOUNT; ++i) Add in the beginning: #ifdef ENABLE_PROXY_IP if (!g_stProxyIP.empty()) rTable.players[i].lAddr=inet_addr(g_stProxyIP.c_str()); #endif Like this: On input_db.cpp: Withing the function: bool GetServerLocation(TAccountTable & rTab, BYTE bEmpire) After: rTab.players[i].szName); Add: #ifdef ENABLE_PROXY_IP if (!g_stProxyIP.empty()) rTab.players[i].lAddr=inet_addr(g_stProxyIP.c_str()); #endif Still on input_db.cpp and within the same function: After: struct in_addr in; Add: #ifdef ENABLE_PROXY_IP if (!g_stProxyIP.empty()) rTab.players[i].lAddr=inet_addr(g_stProxyIP.c_str()); #endif Like this: Still on the same file: Within the function: void CInputDB::PlayerCreateSuccess(LPDESC d, const char * data) After: pack.player = pPacketDB->player; Add: #ifdef ENABLE_PROXY_IP if (!g_stProxyIP.empty()) pack.player.lAddr=inet_addr(g_stProxyIP.c_str()); #endif Like this: Done on the source, you can compile. On every channel config, add this: BIND_IP: <Private IPv4 IP> (it will be something within a private IP class. Check the IP of the machine using the "ifconfig" command) PROXY_IP: <Public IPv4 IP or a domain name (like example.com)> (check out something like [Hidden Content]) DNS names will only work on FreeBSD. I didn't make the code for Windows. Private IPv4 classes: On some sources (like the one from vanilla, BIND_IP was renamed to PUBLIC_IP, just check which TOKEN is responsible to set the value on the variable g_szPublicIP. You will need to open the ports on your router, even for yourself on localhost with the virtual machine because the game server will try to "proxy" you through the public IP you defined. This wasn't tested using a VPN, like Hamachi or ZeroTier.
  18. Those errors mean you have the function's header but not the body. Check if the functions really exist, somehow you may have missed something before those functions or mistakenly deleted their bodies.
  19. [Hidden Content] I don't know about any complete leak. You need model, animations, skills, weapons, armors, hairs, c++ part. Basically the same amount of stuff has Lycan but you don't have anywhere to take it out xD I don't recommend you doing it unless you have a 3d model on duty to make the necessary changes for new armors and stuff from the official, and make new weapons.
  20. The last time I touched that code was when I committed it to the GitHub repo, 3 years ago, maybe update the cryptopp lib with one compiled on VS2019
  21. If it crashes without syserr, most certainly it's a C++ crash. Try to run the Debug build or use the Visual Studio debugger to find the culprit.
  22. Yes it is, it has already been done by Keyto. It's some kind of Elf, you can search for it on Google, you probably will find topics in epvp. It has leaks, but I have no clue if it works as no server uses it.
×
×
  • 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.