Jump to content

IceShiva

Member
  • Posts

    134
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Everything posted by IceShiva

  1. Of course you can use great lib created by imer for extending functionality of precompiled binaries Here you have orginal topic: [Hidden Content] but using old game is not recommended since source is available. Fixing all posible bug is insane. Additionally you must keep your game unchanged because you can unfortunally change function offsets, so this method is very intrusive.
  2. you can recompile kernel with pae option or use 64bit freebsd and 32bit jail inside your 64bit freebsd, when you'll use jail restriction about memory is omited since you use 64bit kernel. Just search info about "cbsd"
  3. Which gcc version did you use on working core btw You can of course replace keyworks like EXE to ELF DLL to shared object regardless Additionally you dont have correctly setuped flags for producting debug builds in you makefile.
  4. IceShiva

    Gameforge sucks

    Yes because they don't have enough amount of players ( i don't know why ). As never before. Polish servers are affected to.
  5. Check if you dont use long thread blocking functions like queries or something like that.
  6. Try Azure. But you need to know how to run metin2 server over nat.
  7. just wait a second i will edit this post with video i dont have video anymore, if you have 3ds and teamviewer i can show you
  8. You dont need to bind port on external ip, youmust still use you internal ip.
  9. If you want compile source to 64bit binary you need to change things at post above but if you want compile 32bit binary under x64 FreeBSD let use 32bit jail of FreeBSD inside x64 FreeBSD.
  10. It's most cases that are crt's problems. Now Microsoft have new crt implemantation that may be not compatibile with older than vista system (like Windows XP, Windows Server 2003). Ofc if client bin is compiled under vc14+. According to this https://support.efolder.net/hc/en-us/articles/115010659028-VC-Redistributable-UCRT-Requirements-
  11. desc_client.cpp in void CLIENT_DESC::SetPhase(int iPhase) edit if (!bSentBoot) { bSentBoot = true; TPacketGDBoot p; p.dwItemIDRange[0] = 0; p.dwItemIDRange[1] = 0; memcpy(p.szIP, g_szPublicIP, 16); // set you external ip instead g_szPublicIP DBPacket(HEADER_GD_BOOT, 0, &p, sizeof(p)); } or you can do it in client side at NetAddress.cpp void CNetworkAddress::GetIP(char* szIP, int len) { BYTE IPs[4]; *((DWORD*)IPs)=m_sockAddrIn.sin_addr.s_addr; _snprintf(szIP, len, "%d.%d.%d.%d", IPs[0], IPs[1], IPs[2], IPs[3]); // replace with you external server ip }
  12. it's cache flushing trigger. Called every ITEM_CACHE_FLUSH_SECONDS from config.txt or if you dont have it in config then default 1800 second is setted
  13. Goto desc_client.cpp and change twice g_szPublicIP with you external ip
  14. I can do it with all known streams (mms, rtps, http, rttp)
  15. Can be done with remove filenames from index. Files can be still unpacked but without filenames, extension so extracted files will be useless. Just one minus, you too can't extract files but it isn't problem if you have files. When I find some time i will create tutorial how to make it
  16. If you want use FreeBSD on kvm you need specific host configuration.
  17. Just update you gdb to latest version (pkg install gdb710) and try with new version "gdb710"
  18. M2 Download Center Download Here ( Internal ) Hello. Yesterday I have to measure exp table on server, so I decidet to move exp table from array to mysql to avoid recompile every time. Go to constant.cpp and delete: 2. Go to constants.h and delete 3. Go to constants.cpp and add on last line or whatever you want in file #include "db.h" #include "dev_log.h" exp_vec exp_vector; bool LoadExpTableFromMYSQL(void) { char szCountQuery[64]; char szExp[64]; sprintf(szCountQuery, "%s", "SELECT COUNT(level) FROM common.exp_table"); sprintf(szExp, "%s", "SELECT exp FROM common.exp_table"); std::auto_ptr<SQLMsg> pCountQuery(DBManager::Instance().DirectQuery(szCountQuery)); if (pCountQuery.get() == NULL) { sys_err("Failed to fetch level count from mysql! Check table or database."); pCountQuery.release(); pCountQuery.reset(); return false; } std::auto_ptr<SQLResult> pRes(pCountQuery.get()->Get()); if (pRes->uiNumRows > 0) { MYSQL_ROW row = mysql_fetch_row(pRes.get()->pSQLResult); int level = 0; str_to_number(level, row[0]); exp_vector.reserve(level); sys_log(0, "ExpTable reserved for %d levels", level); pCountQuery.release(); pRes.release(); pCountQuery.reset(); pRes.reset(); } std::auto_ptr<SQLMsg> pExp(DBManager::Instance().DirectQuery(szExp)); if (pExp.get() == NULL) { sys_err("Failed to fetch level count from mysql! Check table or database."); pExp.release(); pExp.reset(); return false; } std::auto_ptr<SQLResult> pRes2(pExp.get()->Get()); if (pRes2->uiNumRows > 0) { for (uint uiRow = 0; uiRow != pRes2->uiNumRows; ++uiRow) { MYSQL_ROW row = mysql_fetch_row(pRes2->pSQLResult); long long exp = 0; str_to_number(exp, row[0]); exp_vector.push_back(exp); sys_log(0, "Pushing exp %d to exp_vector", exp); } pExp.release(); pExp.reset(); pRes2.release(); pRes2.reset(); return true; } return false; } 4. Go to static void __LocaleService_Init_Korea() in locale_service.cpp and delete exp_table = exp_table_euckr; static void __LocaleService_Init_YMIR() delete exp_table = exp_table_euckr; static void __LocaleService_Init_Singapore() delete exp_table = exp_table_newcibn; static void __LocaleService_Init_Vietnam() delete exp_table = exp_table_newcibn; void LocaleService_TransferDefaultSetting() change if (!exp_table) exp_table = exp_table_common; to if(!LoadExpTableFromMYSQL()) { sys_err("Failed to load exp table from mysql!"); exit(1); } char.cpp CHARACTER::GetNextExp() const change exp_table to exp_vector questlua_pc.cpp int pc_give_exp_perc(lua_State* L) change exp_table to exp_vector and int pc_get_exp_perc(lua_State* L) change exp_table to exp_vector Thats all. Code can be refactored. Written in 10min
  19. Better alternative to this tutorial is use GhostBSD distro with "mate" desktop enviroment PRoject home [Hidden Content]
×
×
  • 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.