Jump to content

 

Need help editing Macro for "Hail to the King" Jump Rope Achievement


Jawmuncher
 Share

Recommended Posts

Mine seems to always fail when it gets to 200, what part of the script do I need to adjust please?

 

I'm looking at the delay, the default from the original script is set to 100, I've changed it slightly like 98 but it still only stops when it gets to 200, please help

Link to comment
Share on other sites

  • 2 months later...

I also got it done on Win 10 with the Rivatuner locking my FPS to 30 and this script:

 

 

SendMode Input

SetBatchLines , -1

 

j::

TimePeriod = 1

DllCall("Winmm\timeBeginPeriod", uint, TimePeriod)

DllCall("Sleep", UInt, 500)

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

 

DllCall("Sleep", UInt, 690) ;;; <== Latency value here

; 690

 

 

Loop , 19 ;;; Jumps 2-20

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 565)

}

Loop , 30 ;;; Jumps 21-50

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 430)

}

Loop , 50 ;;; Jumps 51-100

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 365)

}

Loop , 99 ;;; Jumps 101-200

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 332)

; DllCall("Sleep", UInt, 335)

}

Loop , 100 ;;; Jumps 201-300

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 282) ;283

}

Loop , 200 ;;; Jumps 301-500

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 298) ;300

}

Loop , 100 ;;; Jumps 501-600

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 298) ;298

}

Loop , 100 ;;; Jumps 601-700

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 298) ;297

}

Loop , 100 ;;; Jumps 701-800

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 298) ;298

}

Loop , 100 ;;; Jumps 800-899

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 298) ;298

}

Loop , 100 ;;; Jumps 900-999

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 299) ;298

}

Loop , 100 ;;; Jumps 1000-1099

{

Send , {enter down}

DllCall("Sleep", UInt, 100)

Send , {enter up}

DllCall("Sleep", UInt, 298) ;298

}

 

 

DllCall("Winmm\timeEndPeriod", UInt, TimePeriod)

Return

 

r::Reload

esc::pause ; esc = pause, esc again = continue

  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...

Despite Xbox platform we're looking all these scripts and what solutions for, it's all mentioning steam and PS.

Well, have I got an interesting file recovered for the Windows Store version! The address that's tied to the jump rope for counting, and can be applied with ArtMoney, but I can't seem to map the entry for effect correctly. You could basically enter the values coming up just before you receive the rewards, do one jump, and fail immediately to enter the next value for the reward after. I'm not sure if it's allowed to directly share it here however, so you'll have to PM me instead for the file to be sent for the time being. All I ask in return, is one of you can find the mistake in my stead, fix it, and enjoy a quick 1k jumps done without the frustration of trying out many scripts en editing after, or the legit way that's making you fume. 

Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...
On 4/11/2020 at 1:08 AM, Thorgo said:

I struggled with this for a long time!

 

I tried to do this legit and my timing kept messing up around 200. (fail)

 

I tried with the frame rate reduction down to 6, 8, &10. My eyes would struggle to focus around 400. (fail)

 

I tried the auto script and it kept stopping at jump 1 following the directions previously posted.

 

I changed my "shadow detection" and was able to infinite loop the jump 1 failure. (not helpful, but progress)

 

I moved the start of the script to as soon as you approach jump rope and get the (!), instead of past the first dialogue where is shows "0 jumps". With this change I was able to get the script to actually jump to 40's, but not re-loop/retry. (just kept counting as if continuing to jump)

 

At this point I pulled the frame rate control back up and set it to cap at 30. ( most native/original game speed?)

 

I was able to routinely get to 200 exactly. At this point i made minor tweaks (changing jump rate change to go at 199 instead of 200 etc.) until i was able to auto-script all the way past 1000 jumps! As a side note, I also change the "delay" from 100 to 95 and that seemed to improve the speed transitions too.

 

The achievement did not pop until I intentionally messed up to end the mini game ( I was nervous to do so!)

 

Here is the final script I used (be sure to adjust the starting shadow detection to read at where it shows 0 jumps), but start the script as soon as you approach the girls to jump rope and the (!) appears. I hope this helps!

 

Apologies for hitting up a dead thread but wow finally managed this!

 

Special thanks to Link and the others with their edits.

 

In the end the script that worked for me was one I modified from Thorgo, weirdly he referenced the edits that worked but then his script was edited differently.

 

I had issues getting passed 200, changing to 199. Changing the delay from 100 to 95 helped a lot. Also changed the scripts transitions 99 to 101 and 198 to 199. After getting past 301 it was smooth sailing (skipping) to 1000 - managed to repeat this 3 times on my laptop no problem (still waiting for the achievement to pop though).

EDIT: Once I synced the save and loaded up on my xbox it popped straight away.

 

A note that I started the script from the very start where you first interact with the girls, although I set up the shadow detection as outlined in Link's guide. Right click the top of the screen and hover the mouse in between the feet to get the coords/colour - it's tricky but keep at it.

 

I set my resolution to 800x600, locked my fps to 30.

I'll post the exact script I just used to get it below:

 

Esc::ExitApp
r::Reload
CoordMode, Pixel, Relative

a::
Process, priority, , High

loop
{
i = 1

; jump intervals
a = 667
b = 532
c = 467
d = 433
e = 383
f = 400

delay = 95
balancer = 0
currentInterval := a
extraTime = 0

ToolTip, start, 400, 400

; Initiate steps to begin
Send {Enter down}  ; Press down the Enter key.
DllCall("Sleep", "Uint", 100)
Send {Enter up}  ; Release Enter key.
Sleep, 2000
Send {Enter down}  ; Press down the Enter key.
DllCall("Sleep", "Uint", 100)
Send {Enter up}  ; Release Enter key.
Sleep, 3000
Send {Enter down}  ; Press down the Enter key.
DllCall("Sleep", "Uint", 100)
Send {Enter up}  ; Release Enter key.

; Detect position
    Loop
     {
    PixelSearch, x, y, 241, 322, 241, 322, 0x3F1B00, 50, Fast RGB
             If (ErrorLevel = 0)
             {
                 ;sleep, 100
                 tooltip % "Detected shadow"
                 break
             }
        else
        {
            tooltip % "Not detected, check coordinates and/or color"
        }
     }

start := A_TickCount + 50

loop
{
    ; Detect if failed and back at the start to retry
    PixelSearch, x, y, 262, 331, 262, 331, 0x2D1B0E, 50, Fast RGB
        If (ErrorLevel = 0)
        {
            ; reset
            tooltip % "Restarting"
            sleep, 3000
            Send {Enter down}  ; Press down the Enter key.
            DllCall("Sleep", "Uint", 100)
            Send {Enter up}  ; Release Enter key.
            sleep, 2000
            break
        }
    
    ; Manual override
    GetKeystate, state, Enter
    if (state = "D" and stop = 0)
    {
        break
    }

    timer := A_TickCount - start

    if (i = 1)
    {
        currentInterval := a
    }
    else if (i = 20)
    {
        currentInterval := b
        balancer = 0
    }
    else if (i = 50)
    {
        currentInterval := c
        balancer = 0
    }
    else if (i = 101)
    {
        currentInterval := d
        balancer = 0
    }
    else if (i = 199)
    {
        extraTime = 50
        delay = 70
        currentInterval := e
        balancer = 0
    }
    else if (i = 261)
    {
        extraTime = 20
        balancer = 0
    }
    else if (i = 301)
    {
        currentInterval := f
        balancer = 0
    }

    ; If jumps are too late remove the = below
    if(i >= 1)
    {
        DllCall("Sleep", "Uint", (currentInterval - timer + balancer + extraTime))
    }
    Gosub, jump
}
}
return

jump:
fullTime := A_TickCount - start - extraTime
start := A_TickCount
if(i > 1)
{
balancer += currentInterval - fullTime
}
ToolTip, Jump %i% - %fullTime%, 400, 400
Send {Enter down}  ; Press down the Enter key.
DllCall("Sleep", "Uint", delay)
Send {Enter up}  ; Release Enter key.
ToolTip
i += 1
extraTime = 0
return

 

return

 


return

 

#Persistent
SetTimer, PressTheKey, 100
Return

PressTheKey:
Send, {Enter}
Return

Edited by II Supernoob II
Link to comment
Share on other sites

  • 1 year later...

Hi all,

 

Tech/Question:
I feel I'm a bit late to the party, but wanted to check with you if this method mentioned is also working for a Windows 10, Xbox Remote Play and Final Fantasy IX Xbox One version too? I've installed the programs (even PS/PS4 Remote Play to fool the script) but can't get it to run in my Remote game at all. Programs and script runs without errors, apart from it wanting to have PS Remote installed (which I did, thus it shuts-up about it)

Any help, or if not possible for the Xbox Amingo's, a clear no chap, doesn't work, PS4 Only, would both be more than welcome.

 

Personal ramblings/TLDR for some but strict fans/FF sympathizers:


I don't like resorting to such methods, have made the 100 jumps legit after a few hours and decided this is too tedious and unrewarding. None the less I would value getting all achievements for FFIX too.

This stupid mini-game, which timing wise seems nearly undoable on a Series X, makes "A Perfect match for Aerith" in Crisis Core, and messing-up all the superbosses in FFVII and FFVIII a freaking walk in the park.

 

Also this early it's a game breaker. Almost lost the mood to play. Guess I'll save it up for disc 3, hopefully seeing a positive answer. 😃

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
  • Create New...