Local ply problems

Still having some trouble how do i make ply local without getting this error

[ERROR] lua/super_jump.lua:5: unexpected symbol near ‘local’

  1. unknown - lua/super_jump.lua:0
    the code x = 0

function superJump(ply)
if local ply:KeyDown(IN_DUCK) then
repeat
x = x+10
until local ply:KeyReleased(IN_DUCK)
end
end

superJump()


I even got rid of them but to no avail


x = 0

function superJump(ply)
if ply:KeyDown(IN_DUCK) then
repeat
x = x+10
until ply:KeyReleased(IN_DUCK)
end
end

superJump()

[ERROR] lua/super_jump.lua:5: attempt to index local ‘ply’ (a nil value)

  1. superJump - lua/super_jump.lua:5
  2. unknown - lua/super_jump.lua:12

Use the second snippet of code you posted. And make sure when you are callinging the function superJump you supply a player object as the 1st argument

You need to remember that player objects don’t magically appear out of thin air.

Thank you for helping and i did what you said but i still got this error

[ERROR] lua/super_jump.lua:4: attempt to index global ‘ply’ (a nil value)

  1. unknown - lua/super_jump.lua:4

Heres the Code


x = 0

function ply:superJump(ply)
if ply:KeyDown(IN_DUCK) then
repeat
x = x+10
until ply:KeyReleased(IN_DUCK)
end
end

superJump()

It looks like you are attempting to add a meta-method to the player object. to do this:
-before you define the function, define ply to be the Player Metatable (ply = FindMetaTable( ‘Player’ ) )
-remove ply from your arguments
-replace every ‘ply’ INSIDE the function with ‘self’

Read what chessnet said, you are calling this without any args ( that should be the player )

At the minute your function is really doing two things.

First of all you are using a meta function ( i think this is the name ) as you have ply:superJump

If you want to do that then do the following code




local Playermeta = FindMetaTable("Player");

function Playermeta:superJump()

	if self:KeyDown(IN_DUCK) then
		repeat 
			x = x+10
		until self:KeyReleased(IN_DUCK)
	end
end

concommand.Add("testmyjump",function(ply)
    ply:superJump()
end)


You would type testmyjump into your clients console, not the server.

Edit: Dingu beat me to the punch.

Don’t just copy the code above, make sure you do it yourself so you learn something about how function args work, and meta tables too :slight_smile:

FIFY