Jump to content

B4RC0D3

Member
  • Posts

    19
  • Joined

  • Last visited

  • Days Won

    2
  • Feedback

    0%

B4RC0D3 last won the day on May 26 2020

B4RC0D3 had the most liked content!

1 Follower

About B4RC0D3

Informations

  • Gender
    Male

Recent Profile Visitors

1659 profile views

B4RC0D3's Achievements

Rising Star

Rising Star (9/16)

  • Very Popular Rare
  • Reacting Well
  • Dedicated
  • First Post
  • Collaborator

Recent Badges

962

Reputation

  1. NOTE: THIS ISN'T NEEDED BY THE TUTORIAL! For everyone to use, class MiddleBoard. With this you can use the offical loadingwindow.py Open UI.py and search for "class ThinBoard(Window):" and add below the WHOLE class: class MiddleBoard(Window): CORNER_WIDTH = 16 CORNER_HEIGHT = 16 LINE_WIDTH = 16 LINE_HEIGHT = 16 LT = 0 LB = 1 RT = 2 RB = 3 L = 0 R = 1 T = 2 B = 3 def __init__(self, layer = "UI"): Window.__init__(self, layer) CornerFileNames = [ "d:/ymir work/ui/pattern/thinboardb_corner_"+dir+".tga" for dir in ["LeftTop","LeftBottom","RightTop","RightBottom"] ] LineFileNames = [ "d:/ymir work/ui/pattern/thinboardb_line_"+dir+".tga" for dir in ["Left","Right","Top","Bottom"] ] Base = ExpandedImageBox() Base.AddFlag("not_pick") Base.LoadImage("d:/ymir work/ui/pattern/thinboardb_center.tga") Base.SetParent(self) Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT) Base.Show() self.Base = Base self.Corners = [] for fileName in CornerFileNames: Corner = ExpandedImageBox() Corner.AddFlag("attach") Corner.AddFlag("not_pick") Corner.LoadImage(fileName) Corner.SetParent(self) Corner.SetPosition(0, 0) Corner.Show() self.Corners.append(Corner) self.Lines = [] for fileName in LineFileNames: Line = ExpandedImageBox() Line.AddFlag("attach") Line.AddFlag("not_pick") Line.LoadImage(fileName) Line.SetParent(self) Line.SetPosition(0, 0) Line.Show() self.Lines.append(Line) self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT) self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0) def __del__(self): Window.__del__(self) def SetSize(self, width, height): width = max(self.CORNER_WIDTH*2, width) height = max(self.CORNER_HEIGHT*2, height) Window.SetSize(self, width, height) self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT) self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0) self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT) self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT) self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT) verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage) self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage) self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0) self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0) if self.Base: self.Base.SetRenderingRect(0, 0, (float(width)-32)/float(self.Base.GetWidth()) - 1.0, (float(height)-32)/float(self.Base.GetHeight()) - 1.0) def ShowInternal(self): self.Base.Show() for wnd in self.Lines: wnd.Show() for wnd in self.Corners: wnd.Show() def HideInternal(self): self.Base.Hide() for wnd in self.Lines: wnd.Hide() for wnd in self.Corners: wnd.Hide() Now search for "elif Type == "thinboard":" and add below the elif: elif Type == "middleboard": parent.Children[Index] = MiddleBoard() parent.Children[Index].SetParent(parent) self.LoadElementThinBoard(parent.Children[Index], ElementValue, parent) Should look like: Now just add the visuals (if you didn't already got them out of Patch 19.0) DOWNLOAD
  2. No i didn't tested the Performance difference. Because, simplified , you can change so many parts on their input that the Output will be different. Even if you use the same password and salt the hash will be different in many ways. Test it with the online generator. If you just change the memory or the iterations ... You will get different outputs. So as an attacker i need all of this informations and not just to know the hash algorithm and can search for some rainbow tables and maybe find some Data. Even generated keys, which are stored on the server can be loaded by the algorithm to enhance the security of your system. So its hard to get rainbow tables or otherwise forced Data out of a argon2 Hash. SHA is good, that not the point here. But Argon2 can be better in a easier way of use. (OFC it is my personal way of thinking, so its free to everyone if they want to use it or not) €dit: Yes since PHP 7.2 Argon2 is useable as algorithm
  3. M2 Download Center Download Here ( Internal ) Hello togehter, today i want to share a small, but in my opinion, usefull security upgrade for your player password-hashes. The current default hash, which is used by the most of you (some exeptions might be out there) is the MD5 Hash. This hash might be not the best choice for hashing passwords in this modern days. This is why i thought about something to change there. And my solution for this is Argon2. This Method had won the Password Hashing Competition and this is why i had choosen this over bcrypt or scrypt. This tutorial isn't a 100% beginner firendly guide! Just follow my instructions if you got a little bit of c++ knowledge and know how to work with the source! Create the libargon2 Change the hash inner the game-core source (DEFAULT PASSWORD() MYSQL FUNC TUTORIAL) For now you just need to edit the account.account table and set the size for the password to 128 (Why 128? Db.h EArgon2::HASH_LENGTH = 64. 64 * 2 = 128) And you need to replace your hashes with the argon2 once. For this follow the link to the generation: [Hidden Content] Example config for the tutorial setup: Have fun
  4. This is a really good explained and easy to understandable guideline. I wish i had this as i learned more about metin2 and python in general a few years ago. Thanks for your time !
  5. Okay, so i'm sorry for my missunderstanding. Maybe someone like @xP3NG3Rx can provide some kind of pseudo code for this.
  6. You still didn't got the point? Okay here is my item_scale.txt. As you can see it just repeats for the new sashes. It isn't the offical method, but the positions are correct.
  7. Did you maybe thought about the way that all sash's use the same values for the position correction? If you watch the old values you will notice something. Don't just look straight forward. Sometimes you also need to watch your surroundings. That's how i had done it. It isn't the offical way, but it's working nicely for me and looks like the offical one. I hope you will get my hint. Greetings
  8. I've done this by sending the client an information what kind of datatypes in which order got send. So i modified my ChatPacket function to some kind of this: Also then i reversed this on the client-side to get the arguments and got myself a StringModifier to push args step by step. And this is almost everything you need. Here is how i call the strings on the Server: ch->ChatPacket(CHAT_TYPE_INFO, 934, "dd"); I hope this few hints will help you out for a bit.
  9. @Rakancito Maybe i'm wrong, but this version of the 17.5 archer skill is fixed to the character. On the offical server the "bomb" get's dropped on a localtion and isn't directly bound on the character himself. So my question is, is the GIF just an older development state or is it up2date? Here is a video (don't mind what the videocreator is talking ) what i'm talking about:
  10. I didn't tested the Effect with many drops. But this is a server specific "Feature" and not part of this System. Anyways those animated drops can easy disabled by some devs which understand how this release works. (HINT: You just need to edit two lines in PythonItem.cpp) Also this System was built, because i hate those mde weapons which will have a lower Performance as inbuilt animations. Anyways lets see what the future will bring to us.
  11. M2 Download Center Download Here ( Internal ) Hello together, today i want to share something with you for christmas. But before we start let me tell you, this system isn't in is final form! I will update this thread (if metin2dev will still exist in the new year) to complete this system. Anyways let's get startet. What kind of System is it? You can use inbuilt animations on objects (map objects) and weapons (currently not working, just if the weapon is a ground item instance! I'm working on it). Here is a preview: [Hidden Content] First you can see a placed object on the map with inbuilt animation (sorry it is really far away :O) Later you can see a weapon (thanks to @Tatsumaru) which has an inbuilt animation. But this is currently just working as ground instance and not in the player hands itself. How to implement it What is missing for now? Currently the deforming for weapons holden by the player won't work. But as i said in the first few lines, i will add it later. But for now i want to give this parts to you for christmas! (Sorry i'm currently out of time to finish it before 2019 ends... Maybe someone of you want to complet it in his on way). The attachments Animated Object: [Hidden Content] <- Thanks to KillMoves who did this sometime ago!!! (Animated Weapon: [Hidden Content] <- Thanks to Tatsumaru!!! Have fun with it, your B4RC0D3
  12. B.U.M.P. I'm still looking for the inbuilt animation on a weapon.
  13. Thank's for the fast response Changed the attachement to a mega link @.plechito' [Hidden Content]
  14. Hello together, i need to ask for some kind of help. 1. Can someone provide me the pseudocode for this function player.FineMoveAcceItemSlot 2. Can someone provide me a simple animated weapon? I'm not talking about MDE Weapons. A real inbuilt animation like the one in the mega link(Watch this in granny_viewer and select animation to see it). The weapon which is animated is not relevant, also the kind of animation just should be clearly visible. I want to test if my code works for weapons (This will be shared as soon as it works) @.plechito' @martysama0134 @xP3NG3Rx @Tatsumaru Sorry guy's that i'm linking you, but i think your the best choice to get a quick help on this! [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.