Dismiss Notice
Hey Guest,
If you are interested in ghosting, the Ghosting Awards for January 2025 has just been announced:

Click here to check it out!

List Official Featured Ghosts

Discussion in 'Races' started by mR..A, Oct 31, 2016.

  1. YourKidding

    YourKidding Well-Known Member Team Truck Official Author

  2. ShamatoZ

    ShamatoZ Forum Legend Team Balloon Official Author

    I've got some quick advice here, be advised I cooked this up in like 10 minutes, so there may have been some big factors that I have missed. Please read everything, and ask me (or the most beneficial thing for you to do is to ask someone who is better than me) for some help!:

    Screenshot 2021-04-13 172130.png

    I noticed here, that you didn't get as close to the corner as you could have. My advice is to try and get closer, as shown here:

    Screenshot 2021-04-13 171531.png

    As you can see, getting closed saves time, but it comes at the cost of being riskier, especially in longer heli levels.
    Speed preservation is also very important in heli, and getting a good line isn't the easiest thing that you can do (especially if you switch between pressing left and right, which you shouldn't do if you want a straight helicopter line)

    Some examples of a heli line, for two different star placements:

    #1 - Star on the very right:

    STAR.png

    Take a line similar to this. Following the red line is a good way to keep the maximum amount of speed possible! (don't move too much at the start. As you get further in, start pressing more in the direction you want to go.) Think of this as a sort of parabola, where the ends don't have much movement, and the middle requires you to move more.

    #2 - Star near the top, it is also where we are heading with the heli, in your ghost:

    STAR_UP.png

    This is similar to the other heli, but even less movement is required at the start, and less overall movement at that corner. Take a line similar to the red one to get good speed. [ask Madara, or another good heli player for more tips, I'm not very good with heli myself to perfectly explain every small detail]


    Point #2:

    Screenshot 2021-04-13 172340.png

    I noticed a big error here (no disrespect meant). You hit the ground, which lost quite a bit of the speed that you would have had. I also noticed your line that you took. [Your line is the blue. The better line that I found would be red] You should try to avoid hitting the ground with heli, as it can mess up your ghost most of the time, depending on how severe the bounce is.

    A showcase of the red line:
    Screenshot 2021-04-13 172658.png

    Entering with more speed, and a wider angle negates the chance of hitting the ground, and you also get set up nicely for the next part! [the next part is obviously specific, without that part there, you should try and get through there just like the red line]

    Point #3:

    Screenshot 2021-04-13 172514.png

    You slowed down here. The blue line represents what you did, while the red shows what you could have done better. Maintaining speed is all about slowing down in the heli, in order to prepare yourself to make difficult sections without slowing down, or bouncing and possibly dying.
    You should try to collect the star as close to the edge as possible.

    Point #4:

    Screenshot 2021-04-13 173004.png

    This was a big mistake that I noticed right away. I produced two, better alternative lines that you could have taken.
    BLUE: This is the line that you ended up taking. You landed pretty badly, and therefore lost a considerable amount of time, unfortunately.
    GREEN: This is a safer line to take. It keeps you from landing akwardly, and is generally a good line to take, as it also allows you the chance to switch directions if you need to.
    RED: This line is for the bravest of riders. Go for this if you really need to save time. You get to keep good speed for this one, and for this track, that would be the best line. [it probably isn't even that hard, remember I made this in 10 minutes xD]

    Screenshot 2021-04-13 173146.png

    I would also like to outline this. You had a slow time when you got the star. You could have done something similar to my ghost [look at my inputs, on the bottom left. When I unpause, all four of those keys will be registered in my ghost. I will flip my bike, and have a faster time getting the star. Of course, do this closer to the star than me. I tried this out, and I missed the star, from being too far right.]

    Point #5:

    Screenshot 2021-04-13 173235.png

    For landings, I noticed you have a tough time keeping speed. Here is a key:
    Be sure to try and land mostly on your back wheel, but never too far on your back wheel where it would result in your death.

    Screenshot 2021-04-13 173314.png

    Another point, after you hold up and left, hold up. This allows you to get your wheels in a nice position to keep speed.

    Screenshot 2021-04-13 173347.png

    Now, you may notice an issue with only holding up: Why do I keep falling on my back and dying?
    To stop this, hold up and right. If you still die, try holding up and right earlier, rather than later, as this will (most of the time) save you.

    Screenshot 2021-04-13 173512.png

    Finally, at the end, your ghost could have saved some time by getting the star earlier. (I don't know if you would have saved much time, but it would have been some time save.) The poorly drawn red circle represents where your wheel could have been to get the star, but this works better when the star isn't in the ground, it works better when the star is higher off the ground.


    Closing Comments:
    Now, if you have questions, don't be afraid to ask! I know that this isn't nearly as in-depth of a critique as I could have provided.

    I have a really good suggestion for you Max, you should get Pie's input display, if you don't already have it. You can see it in some of my screenshots, I have the first version, as I like the look of it much more. You will be able to see what keys are pressed at every single moment, which is SUPER helpful.
    Other than that, hope this helps! :thumbsup:
     
    CF25, 2020v1, Nitrogeneric and 17 others like this.
  3. ShamatoZ

    ShamatoZ Forum Legend Team Balloon Official Author

    MadMaxx21 ^^ (I'm not reposting your name, I've had to rewrite that once because I messed up, so be happy with this solution xD)
     
    CF25, 2020v1, a_drain and 5 others like this.
  4. Cerasium

    Cerasium Mod On The FRHD Speedrun.com Page Ghosting Legend Ghost Moderator Team Helicopter Best Ghoster Of 2024 Official Author

    Awarded Medals
    awe sum explanation
     
    SCrane, josephhd, a_drain and 4 others like this.
  5. YourAverageIndian

    YourAverageIndian Active Member Official Author

    yooooo this man on something. that crazy. great tips. i'll be sure to use them also. man, big essay. Awsome explaination btw
     
    Totoca12, josephhd, a_drain and 2 others like this.
  6. ShamatoZ

    ShamatoZ Forum Legend Team Balloon Official Author

    Also when are you bros gonna revive the FRHD Creators YouTube channel :thumbsdown:
    It could really help with ghosting tips from the best of the best! :thumbsup:
     
    CF25, 2020v1, Totoca12 and 5 others like this.
  7. MadMaxx21

    MadMaxx21 Well-Known Member Official Author

    wow, you have no idea how much this helps. thank you so much. when i have more free time, i'll read this again in depth and lyk if i have any questions. i've never heard of pie's input display, but i'm deffo gonna check it out. thank you so very much for this epic explanation of my ghost, your time is much appreciated.
     
    josephhd, a_drain, Totoca12 and 5 others like this.
  8. ShamatoZ

    ShamatoZ Forum Legend Team Balloon Official Author

    Here is the way that I installed it, just so you don't run into trouble like I did when I first tried to do it:

    1. Install Tampermonkey onto your computer
    Just go to the Chrome Web Store, and search up "Tampermonkey", and add it to chrome.
    Screenshot 2021-04-13 193244.png

    2. Follow this:

    Screenshot 2021-04-13 193554.png

    Click Tampermonkey ^^^

    Screenshot 2021-04-13 193615.png

    Click "Create a new script" ^^^

    Screenshot 2021-04-13 193657.png

    When you get here, select everything like I did, and delete it. Then, paste this into the blank space:

    Code:
    // ==UserScript==
    // @name         FRHD Input Display
    // @namespace    http://freeriderhd.com/
    // @version      0.9
    // @description  try to take over the world!
    // @author       Pie42
    // @include      *freeriderhd.com*
    // @grant        none
    // ==/UserScript==
    
    /*
      Short explanation: The way this works is that the main drawing function first hooks itself up to the game's main update function,
      because that's the best way to make it draw correctly. After that, every time the game ticks, the input display is drawn onto the game canvas.
      To get button highlighting, each drawing function checks the current player's '_gamepad.downButtons' to see if the current button is being held down
      (whether it's by the current player or the current replay). If the current button is being held down, the box is filled in.
    
      This input display will automatically highlight the current player, meaning that if you're watching a ghost, the display will show the ghost's
      inputs, and if you're playing, it will show your inputs. I decided not to include 'enter' and 'backspace' because it's pretty easy to tell if those
      are being held. Enjoy!
    
      Note that you can customize this to your heart's content. I have indicated the main customization things, but feel free to change whatever(just don't
      blame me if it breaks).
    */
    
    function drawDisplay() {
        var container = document.getElementById('game-container'),
            children = (container == void 0) ? undefined : container.children,
            canvas = (children == void 0) ? undefined : children[1];
        if (canvas != void 0){
            var ctx = canvas.getContext('2d');
            var cPlayer = GameManager.game.currentScene.playerManager._players[GameManager.game.currentScene.camera.focusIndex],
                cGamepad = cPlayer._gamepad,
                h = canvas.height,
                w = canvas.width;
    
            //main customization variables
            //to customize a symbol, find the comment stating that key(keys are listed left to right and top to bottom), and then change the drawing done there.
            var bsize = h / 10,     //size of the boxes
                dist = h / 15,      //distance from the edge of the screen
                lcolor = '#000000', //color of the lines
                fcolor = '#1B5264', //color that currently pressed inputs are filled in
                lwidth = 2.5;       //width of the lines
    
            //sy and sx can also be customized. right now, they are set to put the input display in the lower left corner, but to move it to the top, you can use:
            //var sy = dist,
            //instead of the line that is currently there.
            var sy = (h - dist) - (2 * bsize),
    
                //to move the display to the right, you can use
                //sx = (w - dist) - (3 * bsize),
                //instead of the line that is currently there.
                sx = dist,
                tempx, tempy;
            ctx.strokeStyle = lcolor;
            ctx.fillStyle = fcolor;
            ctx.lineWidth = lwidth;
    
            //up arrow key
            tempx = sx + bsize;
            tempy = sy;
            ctx.beginPath();
            ctx.lineTo(tempx, tempy);
            ctx.lineTo(tempx, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy);
            ctx.lineTo(tempx, tempy);
            cGamepad.downButtons.up && !cPlayer._crashed && ctx.fill();
            ctx.stroke();
    
            //change this to change the way the symbol is drawn
            ctx.beginPath();
            ctx.lineTo(tempx + (1 * bsize / 6), tempy + (2 * bsize / 3));
            ctx.lineTo(tempx + (1 * bsize / 2), tempy + (1 * bsize / 3));
            ctx.lineTo(tempx + (5 * bsize / 6), tempy + (2 * bsize / 3));
            ctx.stroke();
    
    
            //z key
            tempx = sx + (2 * bsize);
            tempy = sy;
            ctx.beginPath();
            ctx.lineTo(tempx, tempy);
            ctx.lineTo(tempx, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy);
            ctx.lineTo(tempx, tempy);
            cGamepad.downButtons.z && !cPlayer._crashed && ctx.fill();
            ctx.stroke();
    
            //change this to change the way the symbol is drawn
            ctx.beginPath();
            ctx.lineTo(tempx + (bsize / 6), tempy + (bsize / 6));
            ctx.lineTo(tempx + (5 * bsize / 6), tempy + (bsize / 6));
            ctx.lineTo(tempx + (bsize / 6), tempy + (5 * bsize / 6));
            ctx.lineTo(tempx + (5 * bsize / 6), tempy + (5 * bsize / 6));
            ctx.stroke();
    
    
            //left key
            tempx = sx;
            tempy = sy + bsize;
            ctx.beginPath();
            ctx.lineTo(tempx, tempy);
            ctx.lineTo(tempx, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy);
            ctx.lineTo(tempx, tempy);
            cGamepad.downButtons.left && !cPlayer._crashed && ctx.fill();
            ctx.stroke();
    
            //change this to change the way the symbol is drawn
            ctx.beginPath();
            ctx.lineTo(tempx + (2 * bsize / 3), tempy + (1 * bsize / 6));
            ctx.lineTo(tempx + (1 * bsize / 3), tempy + (1 * bsize / 2));
            ctx.lineTo(tempx + (2 * bsize / 3), tempy + (5 * bsize / 6));
            ctx.stroke();
    
    
            //down key
            tempx = sx + bsize;
            tempy = sy + bsize;
            ctx.beginPath();
            ctx.lineTo(tempx, tempy);
            ctx.lineTo(tempx, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy);
            ctx.lineTo(tempx, tempy);
            cGamepad.downButtons.down && !cPlayer._crashed && ctx.fill();
            ctx.stroke();
    
            //change this to change the way the symbol is drawn
            ctx.beginPath();
            ctx.lineTo(tempx + (1 * bsize / 6), tempy + (1 * bsize / 3));
            ctx.lineTo(tempx + (1 * bsize / 2), tempy + (2 * bsize / 3));
            ctx.lineTo(tempx + (5 * bsize / 6), tempy + (1 * bsize / 3));
            ctx.stroke();
    
    
            //right key
            tempx = sx + (2 * bsize);
            tempy = sy + bsize;
            ctx.beginPath();
            ctx.lineTo(tempx, tempy);
            ctx.lineTo(tempx, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy + bsize);
            ctx.lineTo(tempx + bsize, tempy);
            ctx.lineTo(tempx, tempy);
            cGamepad.downButtons.right && !cPlayer._crashed && ctx.fill();
            ctx.stroke();
    
            //change this to change the way the symbol is drawn
            ctx.beginPath();
            ctx.lineTo(tempx + (1 * bsize / 3), tempy + (1 * bsize / 6));
            ctx.lineTo(tempx + (2 * bsize / 3), tempy + (1 * bsize / 2));
            ctx.lineTo(tempx + (1 * bsize / 3), tempy + (5 * bsize / 6));
            ctx.stroke();
        }
    }
    var track = 0;
    window.setInterval(function () {
        if ($("#track-data").data("t_id") != track) {
            track = $("#track-data").data("t_id");
            function rInterval() {
                window.clearInterval(v)
            }
            var v = window.setInterval(function() {
                if (GameManager != undefined && GameManager.game != undefined) {
                    rInterval();
                    createjs.Ticker.addEventListener("tick", drawDisplay);
                }
            }, 250)
        }
    }, 500)
    3. Save code:

    Screenshot 2021-04-13 194031.png

    Make sure to save it! ^^
    Afterwards, you click "Installed Userscripts", and this should pop up:

    Screenshot 2021-04-13 194045.png

    Keep in mind, the other userscripts will not show up for you if you do this, only the input display. I have installed other userscripts along with it. I could just give you the code if you want them as well.

    [THESE ARE CLEARLY NOT MY USERSCRIPTS, I AM NOT TAKING CREDIT FOR THESE IN ANY WAY!]

    You need to refresh your page for it to work!

    just trying to help you out, before you run into any trouble, like I did :thumbsdown: and ask Pie42 if you have any questions, since he is the one who made it :thumbsup:
     
    Last edited: Apr 14, 2021
    CF25, 2020v1, Chaos-Fallen and 15 others like this.
  9. MadMaxx21

    MadMaxx21 Well-Known Member Official Author

    well i see an immediate problem, haha
    TamperMonkey is blocked by my school administrator on the Chrome Web Store. :cry:
     
    Blank_Guy, Totoca12, a_drain and 2 others like this.
  10. YourAverageIndian

    YourAverageIndian Active Member Official Author

  11. YourAverageIndian

    YourAverageIndian Active Member Official Author

    tic's start was even better tho
     
    Blank_Guy, a_drain and MadMaxx21 like this.
  12. Cerasium

    Cerasium Mod On The FRHD Speedrun.com Page Ghosting Legend Ghost Moderator Team Helicopter Best Ghoster Of 2024 Official Author

    Awarded Medals
  13. Cerasium

    Cerasium Mod On The FRHD Speedrun.com Page Ghosting Legend Ghost Moderator Team Helicopter Best Ghoster Of 2024 Official Author

    Awarded Medals
  14. TheMemeBiker

    TheMemeBiker Well-Known Member Official Author

    Awarded Medals
  15. YourAverageIndian

    YourAverageIndian Active Member Official Author

    a_drain, MadMaxx21 and Cerasium like this.
  16. Cerulean

    Cerulean Legendary Cheater Ghosting Legend Official Author

    Awarded Medals
  17. Madara

    Madara eesoncanaocee Ghosting Legend Official Author

    Awarded Medals
  18. YourKidding

    YourKidding Well-Known Member Team Truck Official Author

    a_drain and MadMaxx21 like this.
  19. Terilune

    Terilune Active Member Official Author

    MadMaxx21 and Madara like this.
  20. Pie42

    Pie42 Well-Known Member Team Blob Official Author

    Awarded Medals
    Hey, this isn't a suggestion, but more of a question. Recently, I managed to get this ghost on one of white_panther's tracks. It's not super fast or anything, but what you may notice is that it uses the strange behavior of a vehicle glitch when using polygon's mod. Without polygon's mod, when you perform this glitch, you become unable to collect any powerups, making it significantly harder to complete tracks. Should ghosts like this one be allowed in the featured ghost thread, or should we stick to things that work fully in an unmodified version of the game? Arigathankyou gozaimuch~
    Edit: I feel like it's also worth noting that if you die while in this glitched state, you become unable to move, adding challenge.
     
    MadMaxx21 likes this.

Share This Page