Borov Posted May 3, 2008 Share Posted May 3, 2008 So, I always wanted to try making GTA first person view, just for the heck of it. The code below can be inserted into your client side script, and to use it, you go in the game and use the command "/fps on" and "/fps off" to toggle the view. You can run around the map in first person view mode, and of course you'll be able to see your hands and feet. I'm not able to implement first person driving and targeting, due to certain limitations, but perhaps in later releases we can do that. also try ducking, and you'll see the camera lowers as well. Please feel free to expand on it so it becomes more fun. EDIT: now you can see from the driver's view when you sit in a car. if it doesn't work, just hold aim button and release. --global variables g_root = getRootElement() cameraFixed = false --custom functions function toggleCameraFixedModeEx(mode) if (mode == false) then toggleCameraFixedMode(false) cameraFixed = false else toggleCameraFixedMode(true) --setCameraLookAt(2000, 2000, 0) cameraFixed = true end end function getCameraModeEx() return cameraFixed end ---places player camera in front of player every frame isFPS = false function turnCamera(cursorX, cursorY, absoluteX, absoluteY, wX, wY, wZ) if (fpsOff() == true) then toggleCameraFixedModeEx(false) return true elseif (getCameraModeEx() == false) then toggleCameraFixedModeEx(true) end setCameraLookAt(wX, wY, wZ) local player = getLocalPlayer() local x,y,z = getElementPosition(player) local r = 0 local dx = wX-x local dy = wY-y local backing = getControlState("backwards") if (dx < 0 and dy >0) then --II r = math.deg((math.atan((wY-y)/(wX-x))))+180 elseif (dx < 0 and dy < 0) then --III r = math.deg((math.atan((wY-y)/(wX-x))))+180 else --I and IV r = math.deg((math.atan((wY-y)/(wX-x)))) end r = r-90 if (r < 0) then r = r + 360 elseif (r > 360) then r = r - 360 end if (backing == false) then setPlayerRotation(player, r) x = x + 0.4 * math.cos(math.rad(r+90)) y = y + 0.4 * math.sin(math.rad(r+90)) if (isPlayerDucked(player) == false) then setCameraPosition(x, y, z+0.7) else setCameraPosition(x, y, z) end end end addEventHandler("onClientCursorMove", g_root, turnCamera) function moveCamera() if (fpsOff() == true) then toggleCameraFixedModeEx(false) return true elseif (getCameraModeEx() == false) then toggleCameraFixedModeEx(true) end local player = getLocalPlayer() --getting new camera position local x,y,z = getElementPosition(player) local r = getPlayerRotation(player) x = x + 0.4 * math.cos(math.rad(r+90)) y = y + 0.4 * math.sin(math.rad(r+90)) if (isPlayerDucked(player) == false) then setCameraPosition(x, y, z+0.7) else setCameraPosition(x, y, z) end end addEventHandler("onClientRender", g_root, moveCamera) function fpsOff() local player = getLocalPlayer() --if (isPlayerInVehicle(player) == true) then --return false if (getControlState("aim_weapon") == true) then return true elseif (isFPS == false) then return true else return false end end function fixCamera ( command, state) if (state == "on") then toggleCameraFixedModeEx(true) isFPS = true elseif (state == "off") then toggleCameraFixedModeEx(false) isFPS = false end end addCommandHandler("fps", fixCamera) function refixCamera(theVehicle, seat) if (isFPS == "true") then toggleCameraFixedModeEx(true) end end addEventHandler("onClientPlayerVehicleEnter", g_root, refixCamera) Link to comment
Borov Posted May 5, 2008 Author Share Posted May 5, 2008 please report any problem or suggestions if you have tried it ^^ Link to comment
Simbad de Zeeman Posted May 5, 2008 Share Posted May 5, 2008 Very usefull! Can you post some screenshots? or video? because i cant run the script atm (@ work) Link to comment
Borov Posted May 5, 2008 Author Share Posted May 5, 2008 sorry don't have any... just try it when you get a chance. I can't wait to see how people may improve it Link to comment
paragon Posted May 6, 2008 Share Posted May 6, 2008 very interesting! Good work and thanks for sharing it ;D Link to comment
HITMANzz Posted March 8, 2010 Share Posted March 8, 2010 how can i put this on my server? Link to comment
karlis Posted March 8, 2010 Share Posted March 8, 2010 toggleCameraFixedModeEx() and setCameraPosition(x, y, z+0.7) is deprecated, use setCameraMatrix() instead Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now