Buff timer allowed? [staff answer pls]

Discussion in 'General Discussion' started by Exthenai, Aug 31, 2024.

  1. Exthenai
    Offline

    Exthenai Member

    Joined:
    Jan 17, 2023
    Messages:
    12
    Likes Received:
    12
    Gender:
    Male
    Location:
    Spain
    Country Flag:
    IGN:
    Fwendit
    Level:
    124
    Guild:
    Macaron
    So I recently got back into royals and I keep letting my HS go down without realising, I created a timer using python (or rather ChatGPT did) to basically countdown from 120 seconds (HS buff time) and when it hits zero it beeps an alarm reminding me to recast. In my mind the timer is no different to using a timer in google and just alt tabbing and resetting it every 120 seconds however this is tedious and not very effecient. I know this is very noob of me to let my buff times fall off and some might say just be more vigilant but I like watching stuff whilst training and sometimes it just slips my mind, Just want to know if this is allowed. I have not used this timer in-game yet (so pls no ban if it's not allowed :3) and am awaiting confirmation that it complies with the rules. I hope this explanation reassures you of its safety and compliance. Thank you for your understanding and any guidance you can provide!

    Here's why I think it's safe:
    • No Game Interaction: The python script doesn't modify the game’s memory, inject code into the game client, or automate gameplay actions. It only runs in terminal and monitors my keyboard input (listening for the R key to reset the timer).
    • No Automation: I'm manually pressing R to reset the timer. The script doesn’t perform any automatic actions within the game; it’s just a timer with an alert.
    • Legitimate Use Case: Setting up external timers or reminders is a common practice among gamers, especially for timing buffs, cooldowns, or other game-related activities.
    • Acts as a Simple Timer:The script functions as a basic countdown timer with an audible alert. This is similar to using a stopwatch, a kitchen timer, or even your smartphone’s alarm to track cooldowns or buffs.
    • No Impact on Other Players: The timer doesn’t give me an unfair advantage over other players. It’s a personal tool designed to help me manage my own gameplay experience without affecting anyone else.
    • User Control:The script requires direct user input to function. It’s completely under the user’s control and only does something when the user specifically interacts with it by pressing the R key.
    Thanks in advance for any answers <3

    The python code (if allowed and not against ToS other users feel free to use):
    import time
    import threading
    import keyboard
    import sys
    import os

    def beep_alarm(stop_event):
    """Function to beep an alarm sound until the stop_event is set."""
    while not stop_event.is_set():
    print('\a') # Beep sound for all platforms
    time.sleep(1)

    def clear_console():
    """Function to clear the console."""
    os.system('cls' if os.name == 'nt' else 'clear')

    def start_timer():
    """Function to start the Holy Symbol buff recast timer."""
    timer_duration = 110 # 120 seconds
    time_left = timer_duration
    alarm_thread = None
    stop_event = threading.Event() # Event to signal stopping the alarm

    def reset_timer(_):
    nonlocal time_left, alarm_thread, stop_event
    clear_console() # Clear the console before resetting the timer
    time_left = timer_duration
    print(f"Timer reset to {timer_duration} seconds.")
    stop_event.set() # Signal the alarm to stop
    alarm_thread = None # Allow new alarm thread to be created

    # Set up the key press handler
    keyboard.on_press_key('r', reset_timer)

    print("Holy Symbol buff recast timer started. Press 'R' to reset the timer.")

    while True:
    time.sleep(1)
    time_left -= 1

    if time_left == 0:
    print("\nTime's up! Recast Holy Symbol!")
    if alarm_thread is None:
    stop_event.clear() # Reset the stop event
    alarm_thread = threading.Thread(target=beep_alarm, args=(stop_event,), daemon=True)
    alarm_thread.start()

    sys.stdout.write(f"\rTime left: {time_left} seconds ")
    sys.stdout.flush()

    if __name__ == "__main__":
    try:
    start_timer()
    except KeyboardInterrupt:
    print("\nTimer stopped.")
     
  2. PurePoisonXD
    Offline

    PurePoisonXD Donator

    Joined:
    Aug 25, 2017
    Messages:
    651
    Likes Received:
    647
    Gender:
    Male
    Country Flag:
    IGN:
    Kolvar
    Guild:
    Storm
    Not exactly the same but I once asked a timer for skills on cooldown and that's what they said. Hopefully yours gets approved since you even showed them out to do it lol, I wouldn't have known how to code.
     
    Exthenai likes this.
  3. Exthenai
    Offline

    Exthenai Member

    Joined:
    Jan 17, 2023
    Messages:
    12
    Likes Received:
    12
    Gender:
    Male
    Location:
    Spain
    Country Flag:
    IGN:
    Fwendit
    Level:
    124
    Guild:
    Macaron
    Edit: "R" is my HS cast key
     
  4. Exthenai
    Offline

    Exthenai Member

    Joined:
    Jan 17, 2023
    Messages:
    12
    Likes Received:
    12
    Gender:
    Male
    Location:
    Spain
    Country Flag:
    IGN:
    Fwendit
    Level:
    124
    Guild:
    Macaron
    Ahh nice thanks, yeah hopefully they can approve this as it's not really CD tracking, more just a way to keep my buff up at all times. Also I'm not great at coding either needed ChatGPT to help me for the most part xDD But if it is allowed by looking at the comments in the code other users could rebind the reset key and time of countdown for their own use cases:
    timer_duration = 110 # 120 seconds - Countdown time
    keyboard.on_press_key('r', reset_timer) - Key that resets the timer ('r')

    Again i see this as being no different to going into google and having a timer open in a tab it's just like 1 less step of having to alt tab and resetting the timer every 120 seconds, just kind of streamlines that proccess
     
  5. Dave Deviluke
    Offline

    Dave Deviluke Forum Moderator

    Joined:
    Oct 5, 2017
    Messages:
    10,965
    Likes Received:
    10,565
    Gender:
    Male
    Location:
    MapleRoyals Discord
    Country Flag:
    IGN:
    CygnusQueen
    Level:
    110
    Guild:
    WorldTour
  6. Exthenai
    Offline

    Exthenai Member

    Joined:
    Jan 17, 2023
    Messages:
    12
    Likes Received:
    12
    Gender:
    Male
    Location:
    Spain
    Country Flag:
    IGN:
    Fwendit
    Level:
    124
    Guild:
    Macaron
    Thank you <3
     
  7. Sylafia
    Offline

    Sylafia Donator

    Joined:
    Jan 2, 2022
    Messages:
    1,434
    Likes Received:
    5,654
    Gender:
    Female
    Country Flag:
    IGN:
    Sylafia
    Level:
    200
    Guild:
    FlatEarth
    That was asking for an in-game feature. This is asking if an external tool is allowed, which is a very different discussion
     
    CreamGoddess and Exthenai like this.
  8. Matt
    Offline

    Matt Administrator

    Joined:
    May 8, 2013
    Messages:
    14,649
    Likes Received:
    18,781
    Gender:
    Male
    Location:
    United Kingdom
    Country Flag:
    IGN:
    Matt
    Level:
    N/A
    Guild:
    Staff
    Yes, this is allowed
     
    Graces, chikanda, Tentomon and 6 others like this.
  9. Exthenai
    Offline

    Exthenai Member

    Joined:
    Jan 17, 2023
    Messages:
    12
    Likes Received:
    12
    Gender:
    Male
    Location:
    Spain
    Country Flag:
    IGN:
    Fwendit
    Level:
    124
    Guild:
    Macaron
    Perfect, Thank you for taking the time, appreciate it <3
     
  10. Exthenai
    Offline

    Exthenai Member

    Joined:
    Jan 17, 2023
    Messages:
    12
    Likes Received:
    12
    Gender:
    Male
    Location:
    Spain
    Country Flag:
    IGN:
    Fwendit
    Level:
    124
    Guild:
    Macaron
    As i've been given the green light from admins to use the tool, to help other members of the community I've compiled the timer into an exe if anyone else thinks they'll find the timer useful, timer can be ran by an executable (https://github.com/Fontodbz/Maple-Buff-Timer/releases/tag/v1.0) or you can build and run the programme from source (if you know how to)

    Full project is at https://github.com/Fontodbz/Maple-Buff-Timer

    If you know how to code and would wish to contribute maybe by making a GUI or something that would be cool as I know a lot of people will be sceptical about code running in cmd.
    All the code is open source and can be viewed here: https://github.com/Fontodbz/Maple-Buff-Timer/blob/main/maple_buff_timer.py

    Thanks once again Staff for taking the time to give the green light <3
     

Share This Page