Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/27/20 in all areas

  1. Hi community, I hope you're all right. The staff needs your opinion today! We've been thinking about a system that could make the forum more lively. Do you know the houses in Harry-Potter? We want to do the same here but with Jinno, Chunjo and Shinsoo. Each member selects the empire they want when they register. To change empire, you will have to pay a "Color of Empires" with yangs. Each member makes his empire earn points by participating in the forum, sharing releases, winning contests organized by the staff, etc ... At the end of each month, the members of the winning empire earn yangs or a yang boost. The counters are thus reset to 0, which starts a new month. With this system, we will be able to develop a lot of things around! Of course, before setting it up, it is important that we have your opinion, so that we don't get into unnecessary development. To your keyboards! The staff
    8 points
  2. M2 Download Center Download Here ( Internal )
    1 point
  3. M2 Download Center Download Here ( Internal )
    1 point
  4. M2 Download Center Download Here ( Internal ) Hey, Today i will share how can you change the Whitemark in Minimap with a new one. I saw that there is a topic in Questions & Answers but seems not complete so. Minimap Whitemark - New Download:
    1 point
  5. Oh you, I indeed love puns... [Hidden Content] [Hidden Content] It might be easier to understand for people who doesn't know about these now, thanks for pointing it out
    1 point
  6. thanks, useful. i managed to play around with this and it's what i need. i would still need the tutorial for animated weapons (.mde) if possible.. ?
    1 point
  7. You need that, check official uiscript or locale and copy-paste
    1 point
  8. Your question makes sense. But at the same times it doesnt. Let me explain you the point. It can be hard for a behinner but I will try my best to explain it. This sentence is wrong, really wrong. When it comes to encryption, there isn't a way to do it. There are bilions and bilions. The fact that no one should make a tutorial about it is that it won't help anyone to protect their client but on the contrary it will ruin the solution for good. That's why it exists barely no tutorials at all. You can easily break something that is open source, at least, more easily (open source is great though). Also, make sure that no matter how strong is your security (it depends on the level of course) it can get unpacked. Back then, we had Rubinuum with the nec plus ultra of the security at that time being FoxFS (based on what the community said, not based on facts). They got unpacked anyway because of reverse engineering and the lack of uniqueness in their encryption and compression. Now, FoxFS is open source, but no one is using it, either because they don't know how, or simply because they know that it is not effective anymore. Instead of giving away how you can secure it, I will simply give you some hint, teach a man how to fish as we commonly say: Change LZO to something better, no matter which one you choose. Despite being small and fast, TEA is somehow depreciated, some newer versions exists, but consider changing it as well. AES, SHA256, SHA512, well, we have a bunch. The usage of keys is good but once you got them (trust me it's easy) you got the masterkey to unpack everything. Change the system, obfuscate them, change the way it works. There are tons of ways to deal with it. The current pack system is working using index and packs, you can change that as well, you can merge them, you can delete them, thousands of methods as well. You can add a bit of salt and pepper to your system, here in France we like when it's perfectly seasoned. You can as well use type4 and type 5. i.e a key sent by the server to your client that decrypt the files. Those are nice, the only problem official had was a backdoor and the lack of overall security, you sniff the keys and you ruin these methods whole career. You can use a brand new method as well. Base yourself upon other protections, you are not forced to use eterpack at all. Make also sure that you use more than two of the things listed above. What official did with type6 was simply an encrypted snappy, which is funny because that's what I did that for the first pack method I made in late 2014.
    1 point
  9. 1 point
  10. @IGNEEL @martysama0134
    1 point
  11. M2 Download Center Download Here ( Internal ) Hey, I will share a function (Set Atlas Scale) that you can set your own scale in your Atlas Window. As you can see in the Preview the Atlas is bigger than the default. You need to have good quality of Map Image, I think you can use World Editor for this. Preview:
    1 point
  12. The idea is good, but the code is bugged and unreadable, here're the bugs: text = '1kks' ValueError: invalid literal for int() with base 10: '1000000s' text = '1kk500' 1000000500 text = '1abcd' '1abcd' If I'm the one who do this, i would do it more extendable and using a proficient way. [Hidden Content] At least, keep the copyright.
    1 point
  13. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
    1 point
  14. 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
  15. 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
  16. Open SphereLib/spherepack.h, search for inline void LostChild(SpherePack *pack); and delete the keyword "inline" void LostChild(SpherePack *pack);
    1 point
  17. M2 Download Center Download Here ( Internal ) Webzen started to code new functions for everything. (They're refreshing the stuff slowly too). Today I'll give an update about SendQuestInputStringPacket. This packet is often used by r34083 to make new systems with communication. This function is only work when the string size is big than 64. net.SendQuestInputLongStringPacket I explained everything in the rar file Kind Regards, Ken
    1 point
  18. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Create app at here:[Hidden Content] Copy CLIENT ID Then change Discord.h/DiscordClientID Add images at here: example my image's name is image1 You can also use smallImageKey and smallImageText
    0 points
  19. wtf? I shared it for free, and you want to pay for implementation. what a nice forum
    0 points
  20. I'm not sure if I understood you 100%, But here is a really helpfull tutorial about adding new items (armors, costumes, haircuts ). It's in French but with google page translate you will have no problem reading it. Link: here Google translated page: here
    0 points
  21. Lol, best asnwer is in this small line.
    0 points
  22. In root/npclist.txt you write the vnum of mob + folder name In mob_proto you create the vnum for the pet In quest of pet_system you add the vnum of item and vnum of mob. For weapons you have to create vnum in item_proto (database and client), and in locale/language/itemlist.txt you add the vnum and weapon location. To see an example search for 469 vnum.
    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.