Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/23/20 in all areas

  1. Memory leaks are very important when we speak about reusing memory, it prevents the game to keep allocating new RAM over and over. WIth this simple fixes memory leaks on Metin2 will be fixed. 1. Server Open the file game/main.cpp Search this function: int main(int argc, char **argv) { After this add the following code: return 0; Now open the file db/Main.cpp. Search this function: int main() { After this add the following code: return 0; 2. Client Open the file UserInterface/UserInterface.cpp Search this function: int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { After this add the following code: return 0; I hope it will works now, enjoy just 200MB for a complete client. Good luck.
    10 points
  2. Here is my fix for a huge mem leak on great Offshop. If you use SQLMsg* pkMsg(DBManager::instance().DirectQuery(... : void CHARACTER::UpdateShopItems() At the End: delete Msg; ####################################################### void CHARACTER::LoadPrivShops() At the End: delete pkMsg; ####################################################### void CHARACTER::OpenShop(DWORD id, const char* name, bool onboot) At the End: pkMsg.reset(nullptr); ####################################################### ACMD(do_shop_update_item) After: if (CHARACTER_MANAGER::instance().GetCharactersByRaceNum(30000, i)) { CharacterVectorInteractor::iterator it = i.begin(); while (it != i.end()) { LPCHARACTER pc = *it++; if (pc) if (pc->GetRaceNum() == 30000 && pc->GetPrivShop() == shop_id) { pc->UpdateShopItems(); return; } } } Add: delete pkMsg; After: if (CHARACTER_MANAGER::instance().GetCharactersByRaceNum(30000, i)) { CharacterVectorInteractor::iterator it = i.begin(); while (it != i.end()) { LPCHARACTER pc = *it++; if (pc) if (pc->GetRaceNum() == 30000 && pc->GetPrivShop() == shop_id) { pc->UpdateShopItems(); return; } } } Add: delete pkMsg; After: TPacketShopUpdateItem packet; packet.shop_id = shop_id; db_clientdesc->DBPacket(HEADER_GD_SHOP_UPDATE_ITEM, 0, &packet, sizeof(packet)); } } Add: delete pkMsg; ####################################################### ACMD(do_shop_refresh_items) At the End: delete pkMsg; ####################################################### EVENTFUNC(fix_shop_event) Before: return PASSES_PER_SEC(SHOP_TIME_REFRESH * 60); Insert: delete pkMsg; Have a look at the names of Msg or pkMsg. These are just names, so change them, like your function need it !!
    4 points
  3. M2 Download Center Download Here ( Internal ) Halloween sashes in three variants DOWNLOAD: [Hidden Content] Special place: [Hidden Content]
    2 points
  4. Excellent work! It's just mastermind because we all tried to fix memory leaks by ourselves and try to analize them while in fact we can simply tell the game to return 0 to every memory it stores once it used it. Excellent. Deserved +1
    2 points
  5. you don't have to do for smart ptr
    2 points
  6. Hello, Since yesterday afternoon, Metin2Dev and everything related to it has been inaccessible. The infrastructure has encountered many problems that have taken some time to correct: saturated storage on a third party service, chassis problem, unavailability of VSphere HA, ... We sincerely apologize for any inconvenience caused and we invite you to let us know of any problems you may encounter. Have a nice day ! Calypso
    2 points
  7. That's right, I want to see your reaction when your players of a private server, saying the same thing about your staff when the server it's down because of your provider and they've no idea what's behind of it. And guess what? You'll get insults also, because they pay you with tens of thousands of euros. So, do you think your reply it's right in this case with metin2dev? When you just open the forum and download resources? I don't think so. This staff bought the forum when it was dead and paying a lot for it from their pocket and they will not get that amount of money even in years (they also have jobs and other things), so you're attitude it's very bad. That's a reply from a human being, not from staff.
    2 points
  8. You are blind not to have noticed the work that we do daily for the forum. A server failure, no one is safe.
    2 points
  9. Required level : Beginner Estimated time : 15 minutes This tutorial is to explain how to install a map on Metin2. Needed : A map, you can find many maps here. You will need access to your server, with WinSCP for example, as well as a packer like EterNexus or PackMakerLite for depack your client. I. Serveur side II. Client side A category Questions and Answers is available. If you have a problem or question, feel free to post a request!
    1 point
  10. M2 Download Center Download Here ( Internal ) Hi there Devs, I would like to share my "little" system. If you aren't interested in the introduction/preview etc. and you just want to download it and put in to your server, just scroll down until the "[How-To] Set up" subtitle. The story Firstly let me tell this system's story. I've got an idea one year before, that it would be good if the players would be able to put their items into a "global" system where they could see the other player's items, and they could buy it for DC or gold (that time I worked with the latest vanilla core (not with the source)). Then in the following 8 days I made it (it took about 80-90 working hours). Originally the system was created for one of my friend's server. but this server has never started, and nobody used this system. After some mounts I've decided to publish it on the Hungarian forum, because it won't worth to work on it for long hours if nobody uses it and its just collecting dust on my computer. Then I've published it on the 2nd of December, 2014. After some time I've decided to translate it into English and I've got a new idea for a new feature. This feature was: the trade system (I will explain its working later). This idea inspired by one of the players (from a server where this system was able to use). He told me that it would be better if they could set the gold price via an item (what's value is very high). Then with more than 180 working hours (totally) behind my back I'm here. Overview [How-To] Set up Customizing the tradehouse Questions and Answers Notes changelog: 19th of August, 2015: I publicated the tradehouse here. my toDo list: add logging for the system (the released version don't log the actions in the tradehouse) Thanks for reading the topic, if you have any problem/remark feel free to ask it here or write me a PM. Have a good day!
    1 point
  11. Top notch quality with every one of your work, from presentation to release itself. Good job!
    1 point
  12. Hi Asikoo welcome to the board I hope you'll find this place nice for you.
    1 point
  13. Here you go boys, for the sake of nostalgia. [Hidden Content]
    1 point
  14. VegaS closed the topic because it is not made to discuss or have an argument about it. If you want more informations, it was a general shutdown that was completely out of our control and our sphere of ability. It was hitting the provider and was not a local problem. The whole machine was down and we were unable to access it by any means and it had to undergo manual maintenance. Sorry for the downtime, but it had nothing to do with team.
    1 point
  15. You can do it, is a good idea !
    1 point
  16. M2 Download Center Download Here ( Internal ) Effects of the stone are using only original textures, if you have any problem with effects, make sure you have latest gf effect textures Download link: If you are interested in more halloween stuff:
    1 point
  17. Nice tutorial, it is good to sum up it for beginners Some things to mention: 1) Actually, dungeons are not good to be in ch99 at the most cases, because if the map where you want to teleport from, and the dungeon is not in the same core, it won't teleport. If you want to place a dungeon to ch99, you have to make a "lobby" level, like demon tower level 1. That level of demon tower is not a dungeon yet, it will be ported to dungeon after we destroy the metin there. Also the dungeon must be in same core with the map where you want to teleport to the dungeon. For example if you want to enter a dungeon from Map1 what is in ch1 core1, the dungeon should be in ch1 core1. If it's in core2/3/x, then it will not teleport, and you'll get a syserr like "cannot create dungeon". 2) If the coordinates of the map can't be divided by 256, it will cause a lots of problem. (2600000/256=10156.25 so it will be bad) For example the server_attr will be slided, so the block, pvp, water areas will not 100% there where you placed, also if you go to the slide's opposite side you'll get kicked out because there is nothing there according to the server, because it is slided in the other way (This is because the maps are stricted to areas, and 1 area's size is 256x256) Maybe it is hard to understand with just text so i gonna show it in a picture: If you check Ymir's maps, every default map can be divided by 256 to prevent this problem. This was not a criticism, please do not take it as that.
    1 point
  18. The idea isn't so bad, but the code has too many useless lines, here's what you can do to improve it. def RefreshPickupFilter(self): #Weapon if systemSetting.IsPickUpFilterWeapon(): self.PickUpFilterList[0].Down() else: self.PickUpFilterList[0].SetUp() #Armor if systemSetting.IsPickUpFilterArmor(): self.PickUpFilterList[1].Down() else: self.PickUpFilterList[1].SetUp() #Ear if systemSetting.IsPickUpFilterEar(): self.PickUpFilterList[2].Down() else: self.PickUpFilterList[2].SetUp() #Neck if systemSetting.IsPickUpFilterNeck(): self.PickUpFilterList[3].Down() else: self.PickUpFilterList[3].SetUp() #Foots if systemSetting.IsPickUpFilterFoots(): self.PickUpFilterList[4].Down() else: self.PickUpFilterList[4].SetUp() #Shield if systemSetting.IsPickUpFilterShield(): self.PickUpFilterList[5].Down() else: self.PickUpFilterList[5].SetUp() #Book if systemSetting.IsPickUpFilterBook(): self.PickUpFilterList[6].Down() else: self.PickUpFilterList[6].SetUp() #Stone if systemSetting.IsPickUpFilterStone(): self.PickUpFilterList[7].Down() else: self.PickUpFilterList[7].SetUp() #Etc if systemSetting.IsPickUpFilterEtc(): self.PickUpFilterList[8].Down() else: self.PickUpFilterList[8].SetUp() To: def RefreshPickupFilter(self): checkFilterList = ( systemSetting.IsPickUpFilterWeapon(), systemSetting.IsPickUpFilterArmor(), systemSetting.IsPickUpFilterEar(), systemSetting.IsPickUpFilterNeck(), systemSetting.IsPickUpFilterFoots(), systemSetting.IsPickUpFilterShield(), systemSetting.IsPickUpFilterBook(), systemSetting.IsPickUpFilterStone(), systemSetting.IsPickUpFilterEtc() ) for child, flag in zip(self.PickUpFilterList, checkFilterList): if flag: child.Down() else: child.SetUp() self.PickUpFilterList.append(GetObject("Pick_Up_FilterWeapon")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterArmor")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterEar")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterNeck")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterFoots")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterShield")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterBook")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterStone")) self.PickUpFilterList.append(GetObject("Pick_Up_FilterEtc")) To: for name in ('Weapon','Armor','Ear','Neck','Foots','Shield','Book','Stone','Etc'): self.PickUpFilterList.append(GetObject("Pick_Up_Filter{}".format(name))) self.PickUpFilterList[0].SetToggleUpEvent(self.__OnClickPickupFilterButtonWeapon) # Weapon self.PickUpFilterList[0].SetToggleDownEvent(self.__OnClickPickupFilterButtonWeapon) # Weapon self.PickUpFilterList[1].SetToggleUpEvent(self.__OnClickPickupFilterButtonArmor) # Armor self.PickUpFilterList[1].SetToggleDownEvent(self.__OnClickPickupFilterButtonArmor) # Armor self.PickUpFilterList[2].SetToggleUpEvent(self.__OnClickPickupFilterButtonEar) # Ear self.PickUpFilterList[2].SetToggleDownEvent(self.__OnClickPickupFilterButtonEar) # Ear self.PickUpFilterList[3].SetToggleUpEvent(self.__OnClickPickupFilterButtonNeck) # Neck self.PickUpFilterList[3].SetToggleDownEvent(self.__OnClickPickupFilterButtonNeck) # Neck self.PickUpFilterList[4].SetToggleUpEvent(self.__OnClickPickupFilterButtonFoots) # Foots self.PickUpFilterList[4].SetToggleDownEvent(self.__OnClickPickupFilterButtonFoots) # Foots self.PickUpFilterList[5].SetToggleUpEvent(self.__OnClickPickupFilterButtonShield) # Shield self.PickUpFilterList[5].SetToggleDownEvent(self.__OnClickPickupFilterButtonShield) # Shield self.PickUpFilterList[6].SetToggleUpEvent(self.__OnClickPickupFilterButtonBook) # Books self.PickUpFilterList[6].SetToggleDownEvent(self.__OnClickPickupFilterButtonBook) # Books self.PickUpFilterList[7].SetToggleUpEvent(self.__OnClickPickupFilterButtonStone) # Stone self.PickUpFilterList[7].SetToggleDownEvent(self.__OnClickPickupFilterButtonStone) # Stone self.PickUpFilterList[8].SetToggleUpEvent(self.__OnClickPickupFilterButtonEtc) # Etc self.PickUpFilterList[8].SetToggleDownEvent(self.__OnClickPickupFilterButtonEtc) # Etc To: eventFuncList = ( self.__OnClickPickupFilterButtonWeapon, self.__OnClickPickupFilterButtonArmor, self.__OnClickPickupFilterButtonEar, self.__OnClickPickupFilterButtonNeck, self.__OnClickPickupFilterButtonFoots, self.__OnClickPickupFilterButtonShield, self.__OnClickPickupFilterButtonBook, self.__OnClickPickupFilterButtonStone, self.__OnClickPickupFilterButtonEtc ) for child, event in zip(self.PickUpFilterList, eventFuncList): child.SetToggleUpEvent(event) child.SetToggleDownEvent(event)
    1 point
  19. I would do it like this, in a simple way, without useless code, as i said in another forum too. [Hidden Content]
    1 point
  20. NextUpdate will include Hair [Hidden Content] UiToolTip-Fix_2.0.txt UiToolTip-Fix_3.0.txt 2.0 -> Rüstung Costüme/Waffen 3.0 -> Hair bug Fix + On/Off Render Target on Gameoptions
    1 point
  21. Bug-Fix for all others. Preview is now only on Items in Inventory UiToolTip-Fix.txt
    1 point
  22. M2 Download Center Download Here ( Internal ) Hi everyone! So, after serveral days of searching a tool that could change the texture path of a .gr2 file, I found the tool(probably all of you know it, the texture changer by marv). After that I tried to change the texture paths of some gr2 models of a weapon, and guess what, it didn't work. I'm gonna reupload the file, because I didn't seen it on metin2dev, and I'm gonna teach you how to use it. First of all, I don't know about others, but for me it didn't work to change anything with this (I'm running windows 7 x64 bit). Some of guys told me that this "texture changer" works only on windows 7 x86 bit, so I reinstalled my windows(I really needed that tool), of course, it didn't work either way. So, go in Start and search cmd, and run it. After the cmd started you'll see a path right there C:\Users\Name (Instead of Name you'll have your username of computer administrator, or the account you're logged in), now that's the path where we can work with the tool. PAY ATTENTION!!! IF YOU START THE TOOL IN OTHER FOLDER INSTEAD OF C:\Users\Name THE TOOL WILL NOT WORK, AND YOU WILL NOT BE ABLE TO SAVE THE NEW MODEL. Exctract all the files from the archive(I'll post it below), and start Metin2TextureChanger.exe. Now click "Load" to choose a gr2 file you want to change texture path, BUT, the model name can't have spaces in name(devil sword.gr2 for example, it's wrong, the tool won't read it, and you'll not be able to save your new gr2 model), so if you want to change for example devil sword.gr2 you need to rename it into devil_sword.gr2 or devilsword.gr2 or any other name without spaces betwen. Where is "Neuer Texturpfad" we will chose the new path for texture, for example d:\ymir work\test\devil_sword_blue.dds , there you can choose any other path, but you can't modify "d:\ymir work" or you won't be able to see the weapon/armour in-game. Now we save the file wherever we want, it doesn't matter, this way must work for everybody. AGAIN, THIS TOOL WASN'T MADE BY ME. And I made this post because I've searched many days a tool that would work, but neither didn't work, and this tool didn't work for me either just when I used this method. So, this post is for guys who had the same problem like me (they had the tool, but couldn't save the new model) that's why I wanted to help them, and any other people who weren't been able to use it. And about the other tool I've found on this forum, the tool "made" by thunder-core, I didn't find that tool satisfying, it worked, but after the new model was made, I wasn't been able to import it in 3d max, or to convert the model from file format revision 7 to 6. So you were basicaly forced to upgrade your client to granny 2.9, and I found that inconvenient, because, I don't know about others, but I don't use source for binary, and because of that it's imposible to see the model in-game. And of course, the new model you've created, with the tool in attachement, is revision 7, so you need the new granny if you want to see it in-game, but you can use the converter from archive to convert from revision 7, to revision 6 (old), and you'll be able to see it in-game. If you already see it in-game, you don't need to use the converter. If you found this post helpful I'm glad I could help you.
    1 point
  23. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Some months ago a user asked here how to do it. Github repository: [Hidden Content]
    1 point
  24. the problem is that you didn't add the files in userinterface.vcproj , so the compiler doesn't compile them and it gives you those errors because he can't find the functions declared in the files.
    1 point
  25. M2 Download Center Download Here ( Internal ) hallo all thos quests are only present in my files that i sell ( NewWorld) and someone stole it from one of my clients so i will public it here ( while the last update for thos two quests have too new feature ) the system will send a leeter to any gm with high level so he can start / close any event & also rate note : it was writen too long time by me , so maybe u may not like some method note2: the other event i will upload it here < useing official 40k quests < some of them i make litile change for them note3: for adding more events , u can just add new line in the next two quests < easy to add event manger: event drop :
    1 point
  26. Me upon opening the topic: https://static.wikia.nocookie.net/darkestdungeon_gamepedia/images/3/38/Vo_narr_town_backstory_19.ogg
    0 points
  27. I'm still getting messages like this: you finally got me out of this trouble with a professional solution.
    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.