How to make a sprint key - EDukeWiki

# How to make a sprint key

From EDukeWiki
Revision as of 02:30, 18 September 2008 by Jblade (talk | contribs)

This simple tutorial will show you how to make a sprint key similar to the one in HL2 or Doom 3.

Open up Game.con and add these lines somewhere near the top:

    define SPRINTSPEED 60200 // Duke's default speed is 53200

This speed is incredibly fast, but Duke already moves at a freakish speed anyways so it's worth tuning this depending on the kind of mod you're making.

    definegamefuncname 36 SPRINT // Changes the 'Turn Around' keyname in the options menu to Sprint

    onevent EVENT_TURNAROUND setvar RETURN -1 endevent // Disables the Turn around key

Once again the poor turnaround key gets the chop to make way for our sprint key. At the moment adding new keys isn't possible so we have to get rid of one of the somewhat reduntant keys to make way for our own.

    gamevar SPRINTING 100 1 // This is the player's sprint 'strength'
    gamevar digx 0 1
    gamevar digy 0 1
    gamevar TEMP 0 2
    gamevar TEMP2 0 2
    gamevar TEMP3 0 2

Here are the neccesary gamevars - if you already have a selection of temporary vars available than simply replace my definitions in the following code with your own (They're here just to make copying + pasting easier)

    onevent EVENT_DISPLAYREST
    ifvarl SPRINTING 100 // Bar code from DukePlus by DeeperThought
    	{
    	setvar digy 175
    	setvar digx 130

    	setvarvar TEMP3 digx
    	addvarvar TEMP3 SPRINTING
    	setvar TEMP 0
    	whilevarn TEMP 1
    	{
    		  ifvarvarg digx TEMP3 setvar TEMP 1
    		  rotatesprite digx digy 16384 0 199 0 21 1 0 0 xdim ydim
    		  addvar digx 1
    		  break
    	}
    	ifvarl SPRINTING 0 setvar TEMP3 2 else setvar TEMP3 0 // turn the icon red if he's out of sprint strength
    	rotatesprite 125 175 16384 0 1431 0 TEMP3 0 0 0 xdim ydim // Places a small Duke running icon
    	}
    endevent

This code creates a bar that appears in the bottom middle of the screen when you're sprinting. If you wish to change the position of the bar, modify the values 'digy' and 'digx' which basically hold where it appears on screen.

Now, search for 'actor APLAYER MAXPLAYERHEALTH' and then add this in the actor code:

    ifvarl SPRINTING 100 addvar SPRINTING 1 // This 'recharges' the bar

    getinput[THISACTOR].bits TEMP // Get the player's input into a temporary variable
    ifvarand TEMP 268435456 // Is the player holding the Sprint key down?
    {
    	ifvarg SPRINTING 0 // If they have sprint strength left
    	{
    	getplayer[THISACTOR].angvel TEMP3 // Get how fast the player is turning
    	divvar TEMP3 4
    	mulvar TEMP3 -1
    	setplayer[THISACTOR].rotscrnang TEMP3 // Tilts the player's screen when he's turning
    	subvar SPRINTING 2 // Reduce his sprint strength
    	setplayer[THISACTOR].runspeed SPRINTSPEED // And change his speed to the faster one
    	}
    	else ifvare SPRINTING 0 // If the player sprints till the bar is competely empty...
            {
            sound DUKE_GASP
            wackplayer
            setvar SPRINTING -20 // Give it a 'cool-down' period
            setplayer[THISACTOR].runspeed 42100 // and make him move slower for a short period
           }
    }
    else
    setplayer[THISACTOR].runspeed RUNNINGSPEED // Sets it to the default speed

Retrieved from "http://wiki.eduke32.com/w/index.php?title=How_to_make_a_sprint_key&oldid=7289"
Category:

- Tutorials