So it's giving me
C:\Program Files (x86)\Lua\5.1\lua.exe: T:\space\Game\bin\f.lua:19: attempt to p
erform arithmetic on a nil value
stack traceback:
T:\space\Game\bin\f.lua:19: in function 'theta'
T:\space\Game\bin\f.lua:38: in main chunk
[C]: ?
when it has clearly become a number multiple times. Any help would be grand.
f.lua 1 300 -300 300 0 0 0 130
-- Testing Ground for Space Game
-- 1 = Find F_x, F_y, and F_z
-- 2 = Find Theta.x, Theta.y, and magnitude
-- 3 = Find magnitude of Gravity
grav = function(g,d)
--gravitation <Gravitaion> <distance>
if (g/d) == (1/0) then
return g
else
return(g/d)
end
end
theta = function(x1, y1, z1, x2, y2, z2)
local x = tonumber(x2) - tonumber(x1)
local y = tonumber(y2) - tonumber(y1)
local z = tonumber(z2) - tonumber(z1)
-- 1
if arg[1] == "1" then print(math.floor(grav(tonumber(arg[8]),x)+0.5) .."," ..math.floor(grav(tonumber(arg[8]),y)+0.5) .."," ..math.floor(grav(tonumber(arg[8]),z)+0.5) ) end
-- 2
if arg[1] == "2" then print("theta.x=" ..math.floor( ( math.tan( y / z ) )*1000+0.5 ) / 1000 ) end
if arg[1] == "2" then print("theta.y=" ..math.floor( ( math.tan( math.sqrt( y * y + z * z ) / x ) ) * 1000 + 0.5 ) / 1000 ) end
if arg[1] == "2" then print("magnitude=" ..math.floor( (math.sqrt( x * x + y * y + z * z ) ) * 1000 + 0.5 ) / 1000 ) end
-- 3
if arg[1] == "3" then print(grav(math.floor( (math.sqrt( x * x + y * y + z * z ) ) * 1000 + 0.5 ) / 1000, arg[8]) ) end
if arg[1] == "3" then print("theta.x=" ..math.floor( ( math.tan( y / z ) )*1000+0.5 ) / 1000 ) end
if arg[1] == "3" then print("theta.y=" ..math.floor( ( math.tan( math.sqrt( y * y + z * z ) / x ) ) * 1000 + 0.5 ) / 1000 ) end
end
arg = {...}
theta(tonumber(arg[2]),tonumber(arg[3]),tonumber(arg[4]),tonumber(arg[5]),tonumber(arg[6]),tonumber(arg[7]))