Jump to content

Owsap

Honorable Member
  • Posts

    264
  • Joined

  • Last visited

  • Days Won

    29
  • Feedback

    91%

Everything posted by Owsap

  1. const CPythonNonPlayer::TMobTable* pkMobTable = CPythonNonPlayer::instance().GetTable(rVictim.GetRace()); if (pkMobTable && pkMobTable->bRank == CPythonNonPlayer::MOB_RANK_PAWN) return false; You also need to include PythonNonPlayer.h #include "../UserInterface/PythonNonPlayer.h"
  2. Use a static variable instead for szTmpBuf. static char szTmpBuf[1024 + 1] = {};
  3. This is actually something interesting to implement in the client with a drop-down menu because all modern games are now using this type of in-game setting. Changing the size of the window is relatively easy but the biggest issue is that it will distort every texture, font and any type of graphical objects in the client. Since we are talking about Metin2 it will not be that easy task in my point of view because changing the resolution of the entire game isn’t so easy in DirectX as in OpenGL because you need to reset the device in DirectX and doing this it will mess the anti-analyzing of the terrain textures, you can call it the “famous UAC bug” (and that happens because when the screen is black/lost it will reset itself) and that’s just one problem. The worst part is all graphical elements in the client getting distorted like fonts. I’m not an expert in DirectX but I assume you would have to reset the *ms_lpd3dDevice device and render the entire graphical objects again. I did try to play around with CGraphicDevice and ms_matScreen2 but the results weren’t so good as expected.
  4. I actually added them just for support in case it ends up beeing used.
  5. Please, avoid spamming this topic and when you post a problem show us a screenshot or GIF / video to help us identify the problem. I have reviewed and double checked the entire system on a clean server file "40250", there is no problem with GetGlobalPosition function or the pickle functions, you don’t even need the pickle module in the library because it uses standard C. About the GetGlobalPosition issue, there is only 1 GetGlobalPosition inside the Window class since 2014 so you don’t need to add another one anywhere else and the system doesn’t even call this function inside the ChatWindow whatsoever. @Maze, when you teleport, if the setting window is open, it will close, this has been fixed 21 days ago. If you need a better guide than the tutorial guidelines I made, check the entire file I implemented the system clicking the link below. [Hidden Content] Troubleshooting on older clients. Here is also a preview of the system working on an older client which sources and root files are clean / basic. Preview: [Hidden Content]
  6. Thanks @Jxxkub, the quick slot pagination is now fixed, check the repository. Tutorial for adding new keys & functions. [Hidden Content] This is just an example to guide the implementation of new keys and functions.
  7. I couldn't identify any problem with the key changing, before posting everything I took the time to implement the system on a clean binary source. Once again, I checked and everything seems to be working correctlty. Preview 1 / Preview 2
  8. Make sure you edited the OnKeyDown and OnKeyUp functions correctly in game.py Take a look at this full file example (search for ENABLE_KEYCHANGE_SYSTEM) : [Hidden Content]
  9. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Download Here ( MEGA ) As the title indicates, the system allows you to change the default keyboard keys. Click here to check the tutorial for adding new keys & functions. Click here for tab targeting key support.
  10. Personally, I found the title of this topic being a little confusing just because the fact that Metin2 has a stupid resistance gauge which is also called “Stamina”, BUT what we also know from Metin2 and other RPG’s that use special magical abilities is that they are usually measured in MP "Magic Points", "Mana Points" and even “Stamina Points” and here is the confusion from the title. Which Stamina? Resistance or Mana? Here is a little reference in Magic (game terminology) - Wikipedia : [Hidden Content] EXP = ("Experience") HP = ("Health Points") SP = ("Stamina Points") MP = ("Magic Points") MP = ("Mana Points") Both in game terminology are the same designation. ST = (Simply, "Stamina") And again, personally, I would suggest, if the author agrees along as the administration team, altering the topic name from “Stamina” to “Mana” or something similar that’s not simply just “Stamina”. Regardless, thanks for sharing.
  11. I find it hard to believe that 1 line of code causes that. It must be something else and certainly it's another topic.
  12. @Cunoowhat do you mean with kick? Does the client crash or does the character get disconnected back the the login phase? If the client is crashing, have you tried to debug it?
  13. He is already giving us a clue of what's coming next, just pay attention to the details and you will notice it.
  14. Give this guy an award for sharing what I would call “premium systems” with logical and modern coding while he could be selling it for wasting his time and knowledge of the Metin2 sources, instead he does it for free and adores sharing his work with the community. He has over 70 repositories related to Metin2 systems on his GitHub and you can clearly see from the first repositories to the last that he is evolving his skills from each system he develops. I hope you also apply these skills in the real-world programing if you aren’t already. It’s very rare to see developers that are actually talented and have a lot of experience in the Metin2 sources / environment to actually share their knowledge for free. Big thumbs up to you @Mali and to all the other developers that contribute to the private server community because without them we wouldn’t have half of what we have today.
  15. Thanks for contributing, I will update the repository soon.
  16. The chat log is a set of tabs separated by the type of chat, in my opinion it doesn't make sense to hide the text in the log window. How are you going to see a log if it's hidden?
  17. @ Fluff99s Sorry, but this has nothing to do with the system or the modified files. I have added some dependencies (check the repository) it could help you solve your problem. @rares2017 Search the exp string in your source and change CHAT_TYPE_INFO with CHAT_TYPE_EXP_INFO @ MrPicks The GetGlobalPosition function has always been there even on older roots, possibly you added something wrong but show us your uiChat.py so we can take a look at it.
  18. I only planned to release a Mini Version, that's why I didn't add that feature but who knows maybe sooner or later I can extend it or until then you can find it already done from someone else.
  19. Reports Sorry for the delay regarding the reported issue with the pickle module. I have reviewed the tutorial and noticed a dump line intended for debugging while opening the chat setting window. Removing that line will solve the unpickling issue. There were also some faults in the tutorial that have been corrected and some files that have been added which were missing. The MEGA link and repository have been updated.
  20. ''' 1. @ root/ui.py ''' # Search @ class Button def SetText(self, text, height = 4): # Add above def SetTextAddPos(self, text, x_add = 0, y_add = 0, height = 4): if not self.ButtonText: textLine = TextLine() textLine.SetParent(self) textLine.SetPosition(self.GetWidth() / 2 + x_add, self.GetHeight() / 2 + y_add) textLine.SetVerticalAlignCenter() textLine.SetHorizontalAlignCenter() textLine.Show() self.ButtonText = textLine self.ButtonText.SetText(text) Repository updated, check the updated links and if there is anything missing please let me know.
  21. M2 Download Other Mirrors Download Here ( GitHub ) Download Here ( MEGA ) A Mini Version of the official chatting window renewal. All settings are saved in UserData/chatting/<character_name> using the cPickle module in C, a powerful algorithm for serializing and de-serializing a Python object structure, also used by Webzen.
  22. M2 Download Center Download Here ( GitHub ) Download Here ( MEGA ) Download Here ( Internal ) I came across this new insert event by quests which I had to use while I was developing the 6th & 7th Attribute System so I decided to share this little feature and it could be useful in some situations.
  23. Glad someone had to point that out, obviously, every allocation must be freed after using it but I wasn’t sure if IcmpSendEcho2 function cleared it for me, but honestly, I forgot about it. Since you had good eyes in pointing that out, you also forgot to mention to close the IcmpFile HANDLE. The file in the tutorial "UIScript/MiniMap.py" already contains the correct structure to attach more children in the window. If you didn't use the file you can do this (2 options); Or you can just add; Links & Repository Updated.
×
×
  • 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.