Jump to content

sfavi

Member
  • Posts

    15
  • Joined

  • Last visited

  • Feedback

    0%

About sfavi

Informations

  • Gender
    Male
  • Country
    Italy
  • Nationality
    Italian

Recent Profile Visitors

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

sfavi's Achievements

Enthusiast

Enthusiast (6/16)

  • One Year In
  • Collaborator
  • Conversation Starter
  • One Month Later
  • Dedicated

Recent Badges

16

Reputation

  1. The service provided by Ashika for my login interface design was exceptional. They created the login interface in a very short time, according to the colors and style I requested. If you're looking for any graphic work, I highly recommend contacting Ashika.
  2. Thank you very much for sharing with us. I'm currently using DirectX 9, and after making some adjustments, it works perfectly. Of course, there will be a drop in FPS, but nothing too concerning if the client is well-optimized. The "test" in the video was conducted using a potato PC . If anyone needs assistance, feel free to send me your Discord in PM. ---> [Hidden Content]
  3. Hello everyone, Since I've decided to remove all the Korean texts from my source, I wrote a really simple python program that allow to check if the syntax of the locale_string.txt is correct. As you know, just one misplaced comma can essentially screw up your locale_string. How it works is really easy to understand, however I'm attaching a screenshot to remove any doubts. I hope this can be useful to someone. Screenshot import re import tkinter as tk from tkinter import filedialog def check_format(string): pattern = r'^"[^"]+";$' return re.match(pattern, string) def check_file(): file_path = filedialog.askopenfilename(filetypes=[('Text files', '*.txt')]) if file_path: count_respect_format = 0 count_do_not_respect_format = 0 invalid_strings = [] with open(file_path, 'r') as file: content = file.read() pairs = content.split('\n\n') for pair in pairs: string1, string2 = pair.strip().split('\n') if check_format(string1.strip()) and check_format(string2.strip()): count_respect_format += 1 else: count_do_not_respect_format += 1 invalid_strings.append((string1.strip(), string2.strip())) result_text.delete('1.0', 'end') result_text.insert('end', f"Number of pairs that respect the format: {count_respect_format}\n" f"Number of pairs that do not respect the format: {count_do_not_respect_format}\n\n") if count_do_not_respect_format > 0: result_text.insert('end', "Invalid strings:\n\n") for invalid_string in invalid_strings: result_text.insert('end', f"{invalid_string[0]}\n{invalid_string[1]}\n\n") else: result_text.delete('1.0', 'end') result_text.insert('end', "No file selected.") # Window gui window = tk.Tk() window.title("Locale String Format Checker - Exodus v.1.0.0") window.geometry("500x300") window.resizable(False, False) # button select_button = tk.Button(window, text="Select File", command=check_file) select_button.pack() # Widget used for whow text result_text = tk.Text(window) result_text.pack() ## window.mainloop()
  4. High-quality work, I am satisfied with the service it provides. -----> Recommending 100%
  5. Hi, actually I just wanted to move the skill icons (if you look at the screenshot, you can easily understand). Anyway, I have already solved it. For those who want to know: on PythonSlotWindow.cpp, function on the function --> void CSlotWindow::OnRender() I added: if (rSlot.pInstance) { int xOffset = 0; int yOffset = 0; if (rSlot.ixCellSize == 38 && rSlot.iyCellSize == 38) { xOffset = (rSlot.ixCellSize - 32) / 2; yOffset = (rSlot.iyCellSize - 32) / 2; } rSlot.pInstance->SetPosition(m_rect.left + rSlot.ixPosition + xOffset, m_rect.top + rSlot.iyPosition + yOffset); rSlot.pInstance->Render(); } PS : Obviously, "CoverButtonSlot" must be adjusted
  6. Hello, Does anyone know how to modify the position (x, y) of the skill icons? I am modifying the skill window, and my new slots have a size of 38x38. To help you understand better what I mean, I am attaching a screenshot. Thank you all. Screenshot
  7. Greetings everyone, I am delighted to share with you my first post. While it may not be groundbreaking, I hope that it will be useful to someone. Typically, to view your exact percentage of EXP, HP, and SP, you need to hover your mouse over the "container" - essentially, this works as a tooltip. However, as I am currently working on a new interface, I decided to change this. By implementing the following code, the experience percentage will always be displayed on the screen, making it more user-friendly, in my opinion. The same goes for HP and SP, although I have chosen to display only their current values. Please note that the (x,y) coordinates provided are simply an example of where the text will appear on the screen. Feel free to adjust them as needed. PS: I have added the level next to the experience percentage on the left side. root/uitaskbar.py ---> Add the following classes: class ExperienceDisplay: #added display level on this class def __init__(self): self.percentage_text = ui.TextLine() self.percentage_text.SetPosition(100, 40) self.percentage_text.SetHorizontalAlignCenter() self.percentage_text.Hide() self.level_text = ui.TextLine() self.level_text.SetPosition(60,40) self.level_text.SetHorizontalAlignCenter() self.level_text.Hide() def UpdateExperiencePercentage(self, percentage): self.percentage_text.SetText("{:.2f}%".format(percentage)) self.percentage_text.SetFontColor(1.0, 1.0, 0.0) #yellow self.percentage_text.Show() level = player.GetStatus(player.LEVEL) self.level_text.SetText("Lv. " + str(level) + " - ") self.level_text.SetFontColor(1.0, 1.0, 0.0) self.level_text.Show() class HPDisplay: def __init__(self): self.curPoint_text = ui.TextLine() self.curPoint_text.SetPosition(100, 70) self.curPoint_text.SetHorizontalAlignCenter() self.curPoint_text.Hide() def update_hp_text(self, curPoint): self.curPoint_text.SetText("HP: " + str(curPoint)) self.curPoint_text.SetFontColor(1.0, 0.0, 0.0) #red self.curPoint_text.Show() class SPDisplay: def __init__(self): self.curPoint_text = ui.TextLine() self.curPoint_text.SetPosition(100, 100) self.curPoint_text.SetHorizontalAlignCenter() self.curPoint_text.Hide() def update_sp_text(self, curPoint): self.curPoint_text.SetText("SP: " + str(curPoint)) self.curPoint_text.SetFontColor(0.0, 0.0, 1.0) #blue self.curPoint_text.Show() Search: self.tooltipEXP.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curPoint) / max(1, float(maxPoint)) * 100)) Replace with: self.experience_display = ExperienceDisplay() self.experience_display.UpdateExperiencePercentage(float(curPoint) / max(1, float(maxPoint)) * 100) Search: self.tooltipHP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_HP, curPoint, maxPoint)) Replace with: self.hpdisplay = HPDisplay() self.hpdisplay.update_hp_text(curPoint) Search: self.tooltipSP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_SP, curPoint, maxPoint)) Replace with: self.spdisplay = SPDisplay() self.spdisplay.update_sp_text(curPoint) That's all, if I missed something please tell me. Screenshot
  8. Thanks for sharing @marvin Here the flagList for who want to add also the Lycan and is too lazy flagList = ( not item.IsAntiFlag(item.ITEM_ANTIFLAG_WARRIOR), not item.IsAntiFlag(item.ITEM_ANTIFLAG_ASSASSIN), not item.IsAntiFlag(item.ITEM_ANTIFLAG_SURA), not item.IsAntiFlag(item.ITEM_ANTIFLAG_SHAMAN), (not item.IsAntiFlag(item.ITEM_ANTIFLAG_WOLFMAN) if app.ENABLE_WOLFMAN_CHARACTER else None) )
  9. I just tried the system and works pretty well (martys source). Anyway if somebody still need help send me discord in pm. Big thanks to Mali and Gurgarath for sharing the code
  10. Write me if you or someone else still need help
  11. if somebody has problem with: def BuildPatchnotes(self): try: patchnotes = pack_open("%s/patchnotes.txt" % app.GetLocalePath(), "r") except: patchnotes = pack_open("locale/pt/patchnotes.txt", "r") Change pack_open with open: def BuildPatchnotes(self): try: patchnotes = open("%s/patchnotes.txt" % app.GetLocalePath(), "r") except: patchnotes = open("locale/it/patchnotes.txt", "r")
  12. thanks for sharing.. I'll work on it
×
×
  • 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.