Popular Content

Showing content with the highest reputation since 01/22/2019 in Posts

  1. 21 points
    Hi everyone, I would like to share a memory leak fix about pack type Hybrid, Hybrid with SDB and panama. I saw it while analyzing Webzen's new pack type. EterPack.cpp Search this: if( !m_pCSHybridCryptPolicy->DecryptMemory(std::string(filename), static_cast<const BYTE*>(*data), index->data_size, *zObj) ) { return false; } Replace with this if( !m_pCSHybridCryptPolicy->DecryptMemory(std::string(filename), static_cast<const BYTE*>(*data), index->data_size, *zObj) ) { delete zObj; return false; } Search this: if( !m_pCSHybridCryptPolicy->GetSupplementaryDataBlock(std::string(filename), pSDBData, iSDBSize) ) { return false; } Replace with this if( !m_pCSHybridCryptPolicy->GetSupplementaryDataBlock(std::string(filename), pSDBData, iSDBSize) ) { delete zObj; return false; } Search this: else if (COMPRESSED_TYPE_PANAMA == index->compressed_type) { CLZObject * zObj = new CLZObject; __Decrypt_Panama(filename, static_cast<const BYTE*>(*data), index->data_size, *zObj); out_file.BindLZObjectWithBufferedSize(zObj); *data = zObj->GetBuffer(); } Replace with this: else if (COMPRESSED_TYPE_PANAMA == index->compressed_type) { CLZObject * zObj = new CLZObject; if (!__Decrypt_Panama(filename, static_cast<const BYTE*>(*data), index->data_size, *zObj)) { delete zObj; return false; } out_file.BindLZObjectWithBufferedSize(zObj); *data = zObj->GetBuffer(); } Best Regards Ken
  2. 12 points
    Hi, I don't think I have to tell much about this. It'll look like the official one, some code is c&p from the official root files. Most of the own written code is NOT like the offical one. I added a new python module ("renderTarget"), so you don't need methods which officials use, like this: "playerm2g2.MyShopDecoShow( True )" You are able to display more than one render target at the same time. If you want to know more, take a look at the code. If there are any bugs, just message me. Download: https://cxl.services/freebies/RenderTarget (CxL).rar Password: Cxl.Services
  3. 11 points
    Until I have no solution to decompress the new compression type6 I have only this of the v19: https://mega.nz/#!2AxGkayZ!NkXbcnRdXZX6u_W3L5Q0D2ayPSxj81-wD7nRZ-2Ympk
  4. 9 points
    Something like that, but for weapons this is a bit messed up, not every camera view good for the different kind of weapons. But now I'm having fun. When I'm done I'll post it here, but my base is totally GF like, so, might not be fit 100% for this base.
  5. 6 points
    Hello, Today I wanted to share with you something that I made quite some time ago that might turn useful to somebody. The package was made without putting too much effort into it so if you find anything that might be off please notify me and I will update it. The script does some basic encryption and saves the encryption key into your win registry so the decrypt works only on your machine, this doesn't mean that this is somehow secure, it's just the way I did it. How it works ----------------------------- DL (Mega) : https://mega.nz/#!5J4VRKAT!HYUwf_5tfyrpucJR0R46v3giatqsca6_hug0WZqRn5k If you need the extra compiled libs, here you go: https://mega.nz/#!1RQxjC4R!bqDsc9ivLDofI_7lF3g-B23OHxwc_Dz6XkTl2URR1NE ...I will also relase my other stuff, when I will find it...
  6. 5 points
    hi guys, I did this for you today, I hope for some either useful or enlightening... Thank you for the attention and sorry for the bad English search in locale_service.cpp bool LocaleService_Init(const std::string& c_rstServiceName) replace like this bool LocaleService_Init(const std::string& c_rstServiceName) { #ifdef ENABLE_MULTY_LANG //or it set local from db column #else if (!g_stServiceName.empty()) { sys_err("ALREADY exist service"); return false; } g_stServiceName = c_rstServiceName; //or it set local from db column #endif if ( "japan" == g_stServiceName) { __LocaleService_Init_JAPAN(); } search for using namespace std; extern string g_stQuestDir; extern set<string> g_setQuestObjectDir; add replace string g_stServiceName; like this #ifdef ENABLE_MULTY_LANG // Raziel |maked a new Token for Global Lang| extern string g_stServiceName; #else string g_stServiceName; #endif then search in config.h enum { ADDRESS_MAX_LEN = 15 }; add later #ifdef ENABLE_MULTY_LANG // Raziel |maked a new Token for Global Lang| extern std::string g_stServiceName; #endif so search in config.cpp char g_szPublicIP[16] = "0"; char g_szInternalIP[16] = "0"; bool g_bSkillDisable = false; int g_iFullUserCount = 2000; int g_iBusyUserCount = 200; //Canada and add later #ifdef ENABLE_MULTY_LANG string g_stServiceName = ""; #endif now in config.cpp search TOKEN("channel") { str_to_number(g_bChannel, value_string); continue; } and add later #ifdef ENABLE_MULTY_LANG TOKEN("LANG_GLOBAL") // Raziel |maked a new Token for Global Lang| { g_stServiceName = value_string; fprintf(stdout, "g_stServiceName: %s\n", g_stServiceName.c_str()); continue; } #endif and the last change in service.h add this #define ENABLE_MULTY_LANG // Raziel |maked a new Token for Global Lang| sintax |LANG_GLOBAL: germany| config from core Now you can use different Language for a each channel and you choose all from config ! 1 server 1 database but not only one locale for each channel Bye ! enjoy . RazieL You can put like ! is FREE !!
  7. 5 points
    Hi, folks! With this guide you will be able to combine textlines with images, like rubinum does. Usage is simple: emojiTextLine.SetText("|Eemoji/key_ctrl|e + |Eemoji/key_x|e + |Eemoji/key_rclick|e - Direct sell") The files are located in the icon pack, so basically the code will load from icon/{GIVEN_PATH}.tga - in the sample the path for the X is: icon/emoji/key_x.tga Here are the images from rubinum client:  Howto: Have fun Sorry for arab players , for sure they have also developers, so let's go guys, finish it If you have problem, maybe I made a mistake in the guide of missed out something, just leave a comment below. PS.: Sometimes the code tag of the board puts an extra invisible character mostly the end of the lines, if your IDE cries for syntax error, but it seems correct, check that part of the file with notepad++, it will show a ?(question mark) where the problem is.
  8. 5 points
    Hello , today i share you new playershop design from official Metin2. Screen : Download
  9. 4 points
  10. 4 points
    Dear @.PolluX, @DevChuckNorris and the rest of the administration staff of this forum. Please do something about the thousands of Zero-Width characters we copy everyday into our sources and save us some of the unnecessary time we take to clear them off!!! Thanks
  11. 3 points
    Hello community, we are investigating a high increase of internal server errors. We will inform you when the problems are resolved. While analyzing these errors it may appear that some features of metin2dev are unavailable. Kind regards, metin2dev Administration
  12. 3 points
  13. 3 points
    Whops, thanks for noticing, heres an updated package that should include everything needed: https://mega.nz/#!5J4VRKAT!HYUwf_5tfyrpucJR0R46v3giatqsca6_hug0WZqRn5k
  14. 3 points
    His power is over 9000 P.S: show us the syserr
  15. 3 points
    Carefull, it now has a new design. New design means of course it is now bulletproof. Buy it now and secure your website
  16. 3 points
  17. 3 points
    https://i.gyazo.com/7bb0ef9ad1b90e89778abdd3b5652bef.mp4 How it works: When player is trying to use buffs on npc/enemy then mouse target is automatically set to main character VID (You can't buff npc/enemy anyway from server side + You can't change target while using skills) UserInterface/PythonPlayerSkill.cpp Search: bool CPythonPlayer::__UseSkill(DWORD dwSlotIndex) Scroll down and search for: if (!pkInstTarget) { // ľ÷µĄŔĚĆ®ÇĎ°í.. __ChangeTargetToPickedInstance(); // ´Ů˝Ă ľňľîł˝´Ů. if (pSkillData->IsNeedCorpse()) pkInstTarget=__GetDeadTargetInstancePtr(); else pkInstTarget=__GetAliveTargetInstancePtr(); } Under: if (pkInstTarget) Paste this: if ((pkInstTarget->IsNPC() || pkInstTarget->IsEnemy() || pkInstTarget->IsStone() || pkInstTarget->IsStoneDoor()) && pSkillData->IsOnlyForAlliance()) { DWORD TargetVid = pkInstMain->GetVirtualID(); SetTarget(TargetVid, TRUE); } Should look like this: This is my way to solve the problem
  18. 3 points
    M: https://i.gyazo.com/d84d73b41414acb3e4570fb9ae7fd049.mp4 F: https://i.gyazo.com/b3ae946b25c4b0f81c6d4dcd1a4b9e29.mp4 GitHub repository: https://github.com/Vegas007/Metin2-Extended-Alignment-System
  19. 3 points
    Official v18.5 XMas patch v18.5.6 r22630 Christmas pet, mount, costumes. New "miniboss" minigame gui + dungeon map. Download Full client: Download And please stop asking for root python files, I don't have them...
  20. 3 points
    I don't compile the source, i have rain serverfile:(
  21. 2 points
    Keep in mind they did changes to a couple of skills with the balancing update. So this one could have been one of those as well. Therefore, there's a chance wiki's data is either out or up-to-date.
  22. 2 points
    Hi devs, this is rather nothing than something and I am not really sure if somene's done it earlier but I am sure that it could be a nice improvement for those who are into mapping just like me. The archive contains a few .mdatr files of buildings from the devils_dragon_update that I improved. From now you will be able to walk through the gazebo, to visit some of the tents and to get closer to the buildings in general. I might be sharing a lot more stuff related to mapping in the future. Credits goes to Ace for a nice collision HowTo . Enjoy! svndbvnv ymir work.zip
  23. 2 points
  24. 2 points
    Hey Metin2dev-Community! WE WISH EVERYONE HAPPY NEW YEAR 2019!! Good health and much happiness for the year 2019. May all your intentions come true. We want to say thank you too, for your activity on our board. LOVELY GREETINGSMETIN2DEV-TEAM
  25. 2 points
    Hello ! I share a lot of work, a month and a week to correct the armor brilliance from level 0 to 70! Overview : Warriors : Shamans : Suras : Ninjas : Download : HERE ! Give me your opinion about this ! And sorry for my bad english I'm French Xayah,