1. Hello!

    First of all, welcome to MapleLegends! You are currently viewing the forums as a guest, so you can only view the first post of every topic. We highly recommend registering so you can be part of our community.

    By registering to our forums you can introduce yourself and make your first friends, talk in the shoutbox, contribute, and much more!

    This process only takes a few minutes and you can always decide to lurk even after!

    - MapleLegends Administration-
  2. Experiencing disconnecting after inserting your login info? Make sure you are on the latest MapleLegends version. The current latest version is found by clicking here.
    Dismiss Notice

T2's journal

Discussion in 'MapleLegends Journeys' started by T2Smile, Dec 9, 2023.

  1. T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    hi hi
    This T2.

    I've been here 3 months, I think it's about time to start making a journal about:
    1. My setup for playing ML, including hardware and software tools.
    2. My ongoing projects/tools for QoL.
    3. My characters, my routes and my plans.
    I think I'm the kind of person that very likely will across the line of ToS, so I would like to make a journal share all my tricks that I used to improve my gaming experience while ensure no part of it conflict with ToS.

    Besides self-reflecting, I also would like to take notes of my crazy odd ideas somewhere for fun.

    I wish by sharing my thoughts and discovories, I could have more similar companions and enjoy gaming together! Ty for reading.

    ------------------------------------------

    Context:

    Entry 1: My Setups
    Entry 2: My Multiple Accounts' Voting Solutions
    Entry 3: Update - My Voting Solution V2.0
    Entry 4: My GearScrolling Analyser Tool
    Entry 5: Timer Tool For Tracking Mobs Respawn - XNote Stopwatch
     
    Last edited: Dec 21, 2023
    • Great Work Great Work x 4
    • Like Like x 2
  2. -ovv
    Offline

    -ovv Horntail

    2,363
    954
    500
    Feb 23, 2020
    Male
    5:55 AM
    -ovv
    Beginner
    200
    Honor
    A mechanical optimization journal. That's a new concept. Subscribed!
     
    • Agree Agree x 1
    • Friendly Friendly x 1
  3. OP
    OP
    T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    Entry 1 : My Setups

    What is my gaming setups?

    upload_2023-12-9_12-45-18.png

    Here is a photo for my desktop. oops hope no personal info leaked here.

    There're actually 2 pc here, one hdmi output to the left 1080p screen (my side pc), one DP output to the right 2k screen (my main pc).

    upload_2023-12-9_11-34-13.png
    This is the main controller I used for playing ML - DuelSense
    I also have a spare controller, my old reliable xbox one controller. Not as comfortble grabing as duelsense, which makes it the alternative.
    I'll share my software tools for my controller in later sections.

    I have considered to buy foot pedals, but since I don't have enough characters to multi-client, so that's only a plan for now.
    (maybe I should try my toes on keyboard? hmmm)

    How do I use one keyboard, mouse, controller for 2 computers?

    I'm currently using a software solution to share my keyboard and mouse over my 2 computers: Synergy. Synergy has a commercial version which charges, and also has a core open source version on github, but I believe most people are not that geek to try compiling their source code version (I tried and failed).

    There is an alternative free option: Barrier, which basicly is a modified compilation based on an old version of Synergy. Which works fine but no hot key support.

    Synergy not only enable use your 2 computers with one sets of keyboard & mouse, but also provide hokey for switch between screens or mapping a key to a specific computer, which makes pure keyboard/controller playing across computers multi-client possible and much easier.

    upload_2023-12-9_11-20-40.png upload_2023-12-9_12-43-1.png
    additional trick about Synergy: shift/alt/ctrl + ins/ del/ home/ end/ pgup/ pgdn/ Print/ Scroll/ Pause, won't trigger the original key functions, which is nice to be used for hotkey bindings.
    I'm using shift+ins to switch to left, and shift+del to switch right. About my shift+home and shift+end? I'll introduce them in detail in a future entry about my multi-client plan :cool:.
    upload_2023-12-9_12-37-32.png upload_2023-12-9_12-33-44.png
    This is a software tool for controller mapping. Now it charges, but there is free older version online. It's what I'm using and it is all fine.
    The "2" layout can be switched to while pulling the right trigger, which enable more keys to be used on my controller.

    upload_2023-12-9_12-38-22.png
    I post my keyboard settings here as a reference for how I mapping my controllers. I change the default layout for these reasons:
    1. shift has to be empty in order to not conflic with my synergy hotkeys.
    2. alt has to be modifiable, because later on I'll try multi-client, I need to bind attaking*3 macro on this key, then alt + esc through all clients to keep them attacking.

    And how I managed borderless fullscreen ML?

    upload_2023-12-9_12-49-43.png
    I got the info here.
    It's pretty easy to use, with just looking at the interface you would know what it achieved. It's necessary to make ML window in borderless fullscreen if you're also using synergy like me. Original fullscreen will stuck for several seconds each time switching between screens.
    And it can not only achieve borderless fullscreen, but also multiple clients spread across the entire screen like this.
    upload_2023-12-9_13-14-7.png

    Above is my setups and my general software tools used.
     
    Last edited: Dec 9, 2023
    • Great Work Great Work x 5
  4. OP
    OP
    T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    Entry 2: My Multiple Accounts' Voting Solutions

    Now I have 2 available methods. One is easy to copy for most people, the other requires more knowledge about network and programming.

    Thanks to MirrorsMirrors shared this voting app. And also thanks to KrythanKrythan shares with me Automate Flow to make voting via data even easier.

    Basicly, I create a flow in Automate Flow, that enables airplane mode and after several seconds disable it, then jump to the voting app.
    Then I just need to swipe to the flow page, click start, then click into voting page to vote.
    phone_voting.gif

    And as you may notice, if I'm at somewhere the data connection is not good, voting on multiple characters could cost a long time and makes me burnout pretty quick. Which leads me to find another way to multi-voting through Wi-Fi.

    My discovory: GTOP and TTOP only check's your ip address. If your device have ipv6 address, they check on your ipv6 address, if no ipv6 then they check on ipv4. Which makes multi-voting on the same device with same network connection possible. We just need to find a way to change device's ipv6 address conveniently.

    Requirements for this method to work:
    1. You must be able to change your device's ipv6 address. In my case, my router is OpenWrt system, I checked on my router's control pannel under interface tabs inside the DHCPv6 Client sec, "IPv6-PD: xxxx:xxxx:xxxx:xxxx::/56" confirmed I can allocate ipv6 address to my devices in my local network.
    2. You must find a way to be able to change your device's ipv6 address conveniently. In my case, I made sure SLAAC is disabled and DHCPv6 is enabled on my router. Because my router is Linux based system, I could ssh to my router and send command lines to router to change my device's ipv6 address. Here is my python code to do that.
      Code:
      import paramiko, random
      
      def generate_ipv6_suffix():
          # Generate a random 4-character hexadecimal string
          hex_suffix = ''.join(random.choice('0123456789abcdef') for _ in range(4))
      
          # Return the uppercase hexadecimal string
          return hex_suffix
      
      
      ssh = paramiko.SSHClient()
      ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
      try:
          ssh.connect('192.168.123.1', username='root')
          while True:
              print('Please press enter to grand a new random ipv6 address:')
              input()
              newipv6 = generate_ipv6_suffix()
              print(newipv6)
              newipv6 = f"'{newipv6}'"
              stdin, stdout, stderr = ssh.exec_command("uci set dhcp.@host[2].hostid=" + newipv6)
              stdin, stdout, stderr = ssh.exec_command('uci commit')
              stdin, stdout, stderr = ssh.exec_command('/sbin/reload_config')
      except KeyboardInterrupt:
          print('KeyboardInterrupt')
      except Exception as e:
          print(e)
      finally:
          ssh.close()
    3. Your device must be covenient enough to update the ipv6 address - either disable Wi-Fi and enable it to refresh ipv6 (On mobile devices or computers using Wi-Fi), or disable the net adapter and enable it (On ethernet cable connected device). I've tried on windows, batch script can disable and enable net adapters with administration. But I don't like the solution since it requires admin, and my pc gets blue screen once while I test my code. My solution is using mobile device (an ipad) over ethernet device (my pc).
    As you can see this method is not suitable for most people. But if you happen to be the small group of people that can try this out, I'm glad to share my solution in detail :D. Anyway here comes a demo of one attempt vote via my method.
    ipad_voting.gif

    And for the second method I have a update here
     
    Last edited: Dec 28, 2023
    • Great Work Great Work x 3
  5. Krythan
    Offline

    Krythan Skelegon

    971
    265
    403
    Sep 2, 2022
    8:55 AM
    Krythan
    Bishop
    176
    Reset
  6. OP
    OP
    T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    If I use 4:3 instead of 16:9 ML window mode, I think I could for sure haha. And so do my side screen, there should be able to be 6 clients. Holy.... That's 12 clients in total, WOW.

    Edit:
    Forgot to answer second line lol. Gonna post it.
     
    Last edited: Dec 11, 2023
    • Like Like x 1
  7. LeonardoJF
    Offline

    LeonardoJF Horntail

    2,375
    435
    490
    Jun 16, 2021
    Male
    Rio grande do Sul - BR
    9:55 AM
    ItzLeo
    Paladin
    200
    Favela
    very cool to follow
     
    • Friendly Friendly x 1
  8. flashblaize
    Offline

    flashblaize Chronos

    88
    30
    98
    Feb 25, 2017
    Male
    Germany
    2:55 PM
    promisQ
    F/P Arch Mage
    143
    Followed. Borderless Fullscreen is a thing i have missed.

    How did you connect your ps Controller with your pc?
     
    • Friendly Friendly x 1
  9. OP
    OP
    T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    Both Bluetooth and type-C to USB cable connecting works. I normally use cable, sometimes I would forget to charge my controller lol. I bought 2 USB bluetooth adapter for my PCs.

    As far as I remembered, after connecting controller to computer, no further step needed for it to be recognized by Xpadder.

    And here is a official win10 tool to update the duelsense controller's firmware. I believe I've downloaded and used it long ago, not sure if it's a necessary step for duelsense to work on windows system.
     
    • Informative Informative x 1
  10. OP
    OP
    T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    Entry 3: Update - My Voting Solution V2.0

    After recalling that there is Shortcus on IOS, I decide to transfer the part of script running on my pc to my ipad, which will make each voting loop even easier.

    Here's how I done it:
    I add a script for changing my ipad's ipv6 on my router.
    Code:
    #!/bin/sh
    
    # Generate a random 4-character string in hex format
    random_string=$(cat /dev/urandom | tr -dc '0-9a-f' | head -c 4)
    
    # Set the hostid using uci with the generated random string
    uci set dhcp.@host[2].hostid="$random_string"
    
    # Commit changes
    uci commit
    
    # Reload the configuration
    /sbin/reload_config
    Then ceate a shortcut on my ipad to trigger the script via SSH:
    [​IMG]
    [​IMG]

    And then enable the AssistiveTouch by: Seetings->Accessibility->AssistiveTouch
    [​IMG]

    Next, go into "Costomise Top Level Menu", add a icon, modify it to the former ShortCuts I created.
    [​IMG]

    Finally, go back one layer, change Double-Tap or Long Press (or Single-Tap if you like) to the former Shortcuts I created.
    [​IMG]

    All settled!
    Now you can either click into the "White Spot" to run the shortcut, or though double-tap it.

    Here's one of my voting attampt demo.
    ipad_voting_2.0.gif

    In addition, there's a seperate disccussion about my discovery based on changing IPV6 address to multi-vote. You can view it click here.
     
    Last edited: Dec 19, 2023
    • Like Like x 1
    • Great Work Great Work x 1
  11. OP
    OP
    T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    Entry 4: My GearScrolling Analyser Tool

    This is still an ongoing project, but most part has been done. The disccussion thread for my tool can be viewed here.
    The Source Code can be find here, and the Windows system executable release can be downloaded here.

    The tool can do 3 kinds of caculation for now:
    1. Single Analyse - By giving a detailed scrolls' sequence and initial gear, the calculator will generate the result for that sequence.
    2. Best Order - By giving a detailed scrolls' sequence and specific initial gear, the calculator will generate the best order of given scrolls based on EV of total meso cost, and then output the result of the best ordered sequence.
    3. Best Sequence - By giving how many successful 10%/30% slots and 60%/70% slots in total, the tool is going to compare all possible sequences and output the best sequence based on EV of total cost.
    And 2 methods to use above tools:
    1. Command line interaction.
    2. "QuickCommand" to load commands from file.
    quick_command_demo.gif
     
    Last edited: Dec 19, 2023
    • Great Work Great Work x 3
  12. OP
    OP
    T2Smile
    Offline

    T2Smile Pink Teddy

    73
    12
    71
    Sep 24, 2023
    1:55 PM
    Entry 5: Timer Tool For Tracking Mobs Respawn - XNote Stopwatch

    This tool can be downloaded here.
    My config file is here. Put it next to the xnsw.exe then open xnsw.exe should work.

     
    Last edited: Dec 21, 2023
    • Great Work Great Work x 2
  13. Krythan
    Offline

    Krythan Skelegon

    971
    265
    403
    Sep 2, 2022
    8:55 AM
    Krythan
    Bishop
    176
    Reset
    Oh sweet! I wrote a little one in Javascript, but the way timeout work, it has a slow offset given long enough. I gotta try this out!
     
    • Like Like x 1

Share This Page