Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/06/19 in Posts

  1. M2 Download Center Download Here ( Internal ) Hello everyone, is my first release and it is something that many people already have, but for those who do not have it, I share it. Then, let's start. root/contsinfo.py root/interfacemodule.py root/uiinventory.py: root/uitaskbar.py: locale_xx/locale/xx/ui/taskbar.py locale_xx/locale/xx/locale_interface.txt uiscript ---> Create a new file with this name expandedmoneytaskbar.py and paste this: One extra step: locale_xx/locale/xx/ui/inventorywindow.py or uiscript/inventorywindow.py or uiscript/inventorywindowex.py If you have this error: InventoryWindow.LoadWindow.BindObject - <type 'exceptions.AttributeError'>:'ImageBox' object has no attribute 'SetEvent' Then: open root/ui.py: If you do not have ENABLE_CHEQUE_SYSTEM and ENABLE_GEM_SYSTEM in your src client, then delete those parts of the code or open: UserInterface/PythonApplicationModule.cpp: I recommend putting this as long as you have cheque_system and gem_system (otherwise the interface is a little ugly) I hope it serves some people, greetings!!
    1 point
  2. M2 Download Center Download Here ( Internal ) Hello, I started to convert some server data files from .txt to .json. I intend to convert them more understandable and modern with these changes, also few bugs and a memory leak in the old system has been fixed. Currently only mob_drop_info.txt file is translated, then all .txt files and proto files will be added. Tutorial for mob_drop_info.txt game part: Add to service.h: #define ENABLE_JSON_GAME_FILES Add to stl.h inline std::wstring StringToWstring(std::string input) { std::wstring output(input.begin(), input.end()); return output; } inline std::string WstringToString(std::wstring input) { std::string output(input.begin(), input.end()); return output; } Search in input_db.cpp "%s/mob_drop_item.txt", LocaleService_GetBasePath().c_str()); Change with: #ifdef ENABLE_JSON_GAME_FILES "%s/mob_drop_item.json", LocaleService_GetBasePath().c_str()); #else "%s/mob_drop_item.txt", LocaleService_GetBasePath().c_str()); #endif Search: if (!ITEM_MANAGER::instance().ReadMonsterDropItemGroup(szMOBDropItemFileName)) Change with: #ifdef ENABLE_JSON_GAME_FILES if (!ITEM_MANAGER::instance().ReadMonsterDropItemGroupNew(szMOBDropItemFileName)) #else if (!ITEM_MANAGER::instance().ReadMonsterDropItemGroup(szMOBDropItemFileName)) #endif Search in item_manager.h: bool ReadDropItemGroup(const char * c_pszFileName); Add it under: #ifdef ENABLE_JSON_GAME_FILES bool ReadMonsterDropItemGroupNew(const char * c_pszFileName); #endif Add in item_manager_read_tables.cpp #ifdef ENABLE_JSON_GAME_FILES #include <fstream> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> #endif Search: bool ITEM_MANAGER::ReadMonsterDropItemGroup(const char * c_pszFileName) Change like this: [Hidden Content] Codes: [Hidden Content] Converter: [Hidden Content] Note: You need c ++ 11 and boost property tree module to use this configuration.
    1 point
  3. M2 Download Center Download Here ( Internal ) Hey today i will show you my new tool. This tool will help you find duplicate files in the client. At the moment, this tool does not support automatic correction of duplicates, but if the community is interested, then I will try to implement this. File uniqueness is verified through the md5 algorithm. Thus, we can see duplicate files by their contents, and not by name. P.S The idea behind this tool belongs to Kori. DOWNLOAD ver. 1.0.0.0 VT
    1 point
  4. game.py search def OnPickMoney(self, money): add oldGold = player.GetElk() - money self.interface.SetLastGold(oldGold) interfaceModule.py search def IsEditLineFocus(self): ... add def SetLastGold(self, amount): self.wndInventory.lastGold = amount uiInventory.py search tooltipItem = None add lastGold = None search self.tooltipItem = None add self.lastGold = None search def RefreshStatus(self): replace money parts (final [Hidden Content]) iLastGold = self.GetLastGold() iGoldNow = player.GetElk() gIncrease = 1 if (not (iGoldNow - iLastGold) / 10000 > 0) else 10000 for goldLoop in range(iLastGold, iGoldNow + 1, gIncrease): goldLoop = goldLoop iGoldNow = iGoldNow self.wndMoney.SetText(localeInfo.NumberToMoneyString(goldLoop)) if (goldLoop == iGoldNow): break self.wndMoney.SetText(localeInfo.NumberToMoneyString(iGoldNow)) [Hidden Content]
    1 point
  5. Thank you! It's perfect! :D.Wish me luck.I hope that will be as successful as this one.I'm somehow proud that i've managed to make it through without error. Tomorrow the next one:
    1 point
  6. PythonNetworkStreamPhaseGame.cpp You've to remove these lines. rkPlayer.SetSkill(7, 0); rkPlayer.SetSkill(8, 0);
    1 point
  7. 1 point
  8. You have the define for one reason, use it! Stop hardcoding. if (iValueLen >= QUEST_STATE_MAX_LEN) char szValue[QUEST_STATE_MAX_LEN + 1];
    1 point
  9. Official v18.5 XMas patch v18.5.6 r22630 Christmas pet, mount, costumes. New "miniboss" minigame gui + dungeon map. (Mega) (Metin2 Download) Full client: (Mega) (Metin2 Download) And please stop asking for root python files, I don't have them...
    1 point
  10. @PACI @DevChuckNorris @arves100
    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.