Jump to content

DeadOfLove

Member
  • Posts

    27
  • Joined

  • Last visited

  • Feedback

    0%

About DeadOfLove

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

DeadOfLove's Achievements

Collaborator

Collaborator (7/16)

  • Very Popular Rare
  • Collaborator Rare
  • Conversation Starter
  • Very Important Person Rare
  • Dedicated

Recent Badges

355

Reputation

  1. I am working on a new set of options and adding each configuration I used. I realized that in this great contribution from @ Mali, there is something that is not necessary, which is the use of a button refresh definition, because we already have a clickradiobutton helper. If you want to work with the clickradiobutton, you just need to make these changes: #Find in def __init__(self): self.RefreshShowSalesText() #Detele if app.__BL_ANIMATION_OPTIMIZATION__: self.RefreshOtherCharAttacked() #Find if app.__BL_ANIMATION_OPTIMIZATION__: self.other_char_attacked_button_list.append(GetObject("other_char_attacked_all")) self.other_char_attacked_button_list.append(GetObject("other_char_attacked_self")) #change if app.__BL_ANIMATION_OPTIMIZATION__: self.other_char_attacked_button_list.append(GetObject("other_char_attacked_self")) self.other_char_attacked_button_list.append(GetObject("other_char_attacked_all")) #Why this change? It's simple. The way it was assigned, there was a detail that 0 was not equal to false, and to add changes to make them match, it's simpler to invert them, so that 0 = false and 1 = true. #find if app.__BL_ANIMATION_OPTIMIZATION__: self.other_char_attacked_button_list[0].SAFE_SetEvent(self.__OnClickOtherCharAttackedAll) self.other_char_attacked_button_list[1].SAFE_SetEvent(self.__OnClickOtherCharAttackedSelf) #change if app.__BL_ANIMATION_OPTIMIZATION__: self.other_char_attacked_button_list[0].SAFE_SetEvent(self.__OnClickOtherCharAttacked, 0) self.other_char_attacked_button_list[1].SAFE_SetEvent(self.__OnClickOtherCharAttacked, 1) self.__ClickRadioButton(self.other_char_attacked_button_list, systemSetting.IsShowOtherCharAttacked()) #or if app.__BL_ANIMATION_OPTIMIZATION__: for i, btn in enumerate(self.other_char_attacked_button_list): btn.SAFE_SetEvent(self.__OnClickOtherCharAttacked, i) self.__ClickRadioButton(self.other_char_attacked_button_list, systemSetting.IsShowOtherCharAttacked()) #NOTE: There is no real change in performance; it is a matter of preference and how you want to manage your code, which is why I am leaving both methods. #Find if app.__BL_ANIMATION_OPTIMIZATION__: def __OnClickOtherCharAttackedAll(self): systemSetting.SetShowOtherCharAttacked(True) self.RefreshOtherCharAttacked() def __OnClickOtherCharAttackedSelf(self): systemSetting.SetShowOtherCharAttacked(False) self.RefreshOtherCharAttacked() def RefreshOtherCharAttacked(self): if systemSetting.IsShowOtherCharAttacked(): self.other_char_attacked_button_list[0].Down() self.other_char_attacked_button_list[1].SetUp() else: self.other_char_attacked_button_list[0].SetUp() self.other_char_attacked_button_list[1].Down() #change def __OnClickOtherCharAttacked(self, idx): systemSetting.SetShowOtherCharAttacked(idx) self.__ClickRadioButton(self.other_char_attacked_button_list, idx) For some, this is not a significant change, but from my point of view, it is unnecessary to repeatedly use refresh definitions when you already have a helper for radio buttons. This can be applied to toggle buttons, but you will need to create the helpers. I hope this is useful to someone. Thank you for your contributions @ Mali
  2. Check that you implemented it correctly. That looks like a problem loading the texture reset, with the terrain information.
  3. Snow Rework The snow system was already working, but there were certain details in how it was displayed that, in my opinion, made it look very outdated. which made me start working on it to improve it to a point where I feel more comfortable with it. Although the system worked quite well without any problems, it could be greatly improved. Modernize certain aspects of the code, improve particle management for better visualization, work on a falling effect on the ground, intensity control, improved texture management, while maintaining the classic look for those who like the old style, and adding ambient sound for a little more immersion. I haven't finished it yet, but here's a preview for your opinions.
  4. You can manage all of this correctly from interfacemodule, to show or hide it. It is already created in Metin2.
  5. I'll make a short video soon showing it better. Thank you for your opinion and noticing the details. It took me a while
  6. Greetings to the community For months now, I have been working on several systems, and I could use some feedback to improve them even more and find out if these are useful ideas These are ideas that came to me about points that I thought were important to improve, either visually or in terms of having better code and functionality, based on my knowledge. Water improvement My first idea about working with water came from wanting to use lava in fire maps. I realized that something had already been published, but the code was somewhat outdated and it wasn't the only thing I wanted to work on, so I dedicated myself to working on different textures and managing them together in the render. This helped me understand how water rendering works, which made me want to work with it more deeply, affecting light, movement, depth, and modulating both water textures to achieve a new look, as well as being able to change the color of the water, creating a detailed range of options. all from the rendering itself, without the need to use shaders achieving some basic effects by visually testing and now applying colors, adding more intensity or saturation as a test Many changes can be made; it's just a matter of creativity and playing with the parameters. I really liked the idea of improving the Metin water, as it often looks very old With changes in the rendering of other map loads, it is possible to obtain reflections in the water without the use of shaders. Rain System Some friends asked me if it was possible to have rain in Metin2, to which I replied that it was possible, but that in order to work properly, it was necessary to create a rendering for this and configure it to obtain good performance and functionality. This led me to work on it, starting from the outdated snow base, then rewriting it. I achieved a couple of effects that helped me improve its visualization, and I dedicated myself to working on the rendering correctly. I take a water drop texture and load it into the rendering, At the same time, I also worked on a thunder effect. I added all the effects that I thought were important, such as the flash when it strikes, sound with depth, different types of sound depending on the depth, and an RNG positioning for the lightning strike, so that it doesn't strike in the same place every time, there is a minimum and maximum wait time before lightning strikes again, where the minimum and maximum time is taken and another lightning strike is generated. add ambient sound of rain, settings, such as rain quality and intensity, managing the sound intensity with rain intensity control to create an immersive effect, or at least that was my idea. and more technical details so that I could get what I was looking for: a functional rain effect, with complete configuration and, above all, avoiding an increase in resource consumption on the computer. I made a video recently showing my progress. I have worked with other systems, but these are the last ones I have worked with.
  7. I have not abandoned the project. If you are looking for information about purple positions, you must make changes to your server to obtain the information. Secondly, this is a free publication, which means that whenever I have free time, I will update it as I see fit. Therefore, I may refuse to make specific changes that you request.
  8. An excellent idea and a good method for working on your shaders thanks @ Mali Depending on how your shadows work, you may need to add them in the End, otherwise you may encounter problems. At least, that was the case with the changes I made to the shadow. I'm sharing this in case anyone else needs it, although it's something that's extremely easy to fix. // search void CShaderManager::End(IShader::ERenderType renderType) { LPDIRECT3DDEVICE9 device = STATEMANAGER.GetDevice(); STATEMANAGER.SaveRenderState(D3DRS_ZENABLE, FALSE); STATEMANAGER.SaveRenderState(D3DRS_ZWRITEENABLE, FALSE); //add: STATEMANAGER.SaveRenderState(D3DRS_FOGENABLE, FALSE); // again inside void CShaderManager::End(IShader::ERenderType renderType) STATEMANAGER.RestoreRenderState(D3DRS_ZENABLE); STATEMANAGER.RestoreRenderState(D3DRS_ZWRITEENABLE); //add STATEMANAGER.RestoreRenderState(D3DRS_FOGENABLE); STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, state_COLORARG1); }
  9. I will update the repository shortly
  10. Its not a bug, dont publish that feature
  11. explain your problem
  12. # Define priority lists PRIORITY_FIRST = { chr.NEW_AFFECT_AUTO_HP_RECOVERY, chr.NEW_AFFECT_AUTO_SP_RECOVERY, chr.AFFECT_ATT_SPEED_POTION, chr.AFFECT_MOV_SPEED_POTION, } #These elements will appear first PRIORITY_LAST = { chr.NEW_AFFECT_POLYMORPH, } # These elements will appear at the end if app.BL_REMOTE_SHOP: PRIORITY_LAST.add(chr.AFFECT_REMOTE_SHOP) check this should be outside of the classes, at the beginning of the file you could put it. sorry for the late reply, I was traveling. that was solved many patches ago, check how you made the guide
  13. I forgot to update the repository, the update test and fully working is already in the git link.
  14. thank you very much, you gave me an idea, since the images of A and B have the same size, I worked them under the same class
  15. Next update: Is in testing at the moment, but so far it is working perfectly. changes made: Removed code added in the source by filip, no longer needed. deleted code not in use the code is now compatible with python3 for those who use it, it is still compatible with python2. the __ArrangeImageList was rewritten, it works giving priority to lovePointImage and horseImage, then it works with a sort to order the affect list by priority, now it has a definition in which we calculate affect priority, where I have added priority to be first, priority to be last and it has 3 ranges where it works the grouping of the affects, mall, water and dew. (is fully compatible with the contribution of comrade quin on the affect of dew and watter.) the Onupdate received changes to have a little more performance, and be easier to understand (the improvement is minimal, but from my point of view is important). added two lists to manage affect that you want to have priority to leave first or priority to leave last # Define priority lists PRIORITY_FIRST = { chr.NEW_AFFECT_AUTO_HP_RECOVERY, chr.NEW_AFFECT_AUTO_SP_RECOVERY, chr.AFFECT_ATT_SPEED_POTION, chr.AFFECT_MOV_SPEED_POTION, } #These elements will appear first PRIORITY_LAST = { chr.NEW_AFFECT_POLYMORPH, } # These elements will appear at the end if app.BL_REMOTE_SHOP: PRIORITY_LAST.add(chr.AFFECT_REMOTE_SHOP) now we work with AutoAppendTextLine so we can keep any text inside the tooltip added remove affect, allows to remove skills and poly, also added a list of affect that should not be removed to have a better control of the system, in order to avoid abuse of the command There are more changes to improve the readability of the code but they are minimal. when I finish the full testing phase I will probably release this update. note: I dont know why the gif looks slow to me, but i dont have any lag or loss of performance when recording.
×
×
  • 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.