Jump to content

FirstPerson Mode


dewu

Recommended Posts

Posted

Hello guys.

I find this script:

  
player = getLocalPlayer ( ) 
sw, sh = guiGetScreenSize ( ) 
mouse1_pressed = false 
FPS_CAMERA = false 
  
--FUNCTION MADE BY 'Doomed_Space_Marine', FIXED BY 'robhol' 
function findRotation ( x1, y1, x2, y2 ) 
    local t = -math.deg ( math.atan2 ( x2 - x1, y2 - y1 ) ) 
    if t < 0 then t = t + 360 end 
    return t 
end 
  
--ALWAYS SET CAMERA POSITION IN THE PLAYER'S HEAD 
addEventHandler ( "onClientPreRender", getRootElement ( ), 
    function ( ) 
        if FPS_CAMERA then 
            local x1, y1, z1 = getPedBonePosition ( player, 6 ) 
            setCameraMatrix ( x1, y1, z1 ) 
            if not getControlState ( "aim_weapon" ) then setControlState ( "aim_weapon", false ) end 
        end 
    end ) 
  
--MAKE SURE THE PLAYER AIMS WITH THE MOUSE 
addEventHandler ( "onClientCursorMove", getRootElement ( ), 
    function ( guiy1, guiy1, guix2, guiy2, x2, y2, z2 ) 
        if not isCursorShowing ( ) and not isChatBoxInputActive ( ) and not isMainMenuActive ( ) and FPS_CAMERA then 
            local x1, y1, z1 = getPedBonePosition ( player, 6 ) 
            setPedRotation ( player, findRotation ( x1, y1, x2, y2 ) ) 
            setCameraMatrix ( x1, y1, z1, x2, y2, z2 ) 
        end 
    end ) 
  
--A SIMPLE WAY TO MAKE A KEY REPEATER 
bindKey ( "mouse1", "both", 
    function ( k, state ) 
        if state == "down" then mouse1_pressed = true 
        else mouse1_pressed = false end 
    end ) 
  
--CONTROLS PART 
function resetControls ( ) 
    toggleControl ( "aim_weapon",   not FPS_CAMERA ) 
    toggleControl ( "backwards",    not FPS_CAMERA ) 
    toggleControl ( "sprint",       not FPS_CAMERA ) 
    toggleControl ( "right",        not FPS_CAMERA ) 
    toggleControl ( "left",         not FPS_CAMERA ) 
    toggleControl ( "fire",         not FPS_CAMERA ) 
    toggleControl ( "enter_vehicle",         not FPS_CAMERA ) 
    toggleControl ( "enter_passenger",         not FPS_CAMERA ) 
    if FPS_CAMERA then setElementAlpha ( player, 0 ) 
    else setElementAlpha ( player, 255 ) end 
end 
  
--DRAW A BEAUTIFUL CROSSHAIR IN THE MIDDLE OF THE SCREEN 
addEventHandler ( "onClientRender", getRootElement ( ), function ( ) if FPS_CAMERA then dxDrawImage ( ( sw / 2 ) - 4, ( sh / 2 ) - 4, 8, 8, "crosshair.png" ) end end ) 
  
addCommandHandler ( "fp", function ( ) 
    FPS_CAMERA = not FPS_CAMERA 
    if not FPS_CAMERA then setCameraTarget ( player ) else resetCamera ( ) end 
    resetControls ( ) 
end ) 
  

It works perfectly, but have one bug. I can't zoom when have Sniper Rifle or Country Rifle, any ideas?

Posted

For the sniper you could try to disable the first person function while the player is holds the aiming button, then if the player releases the button put it back to fps mode. This is what I would try firstly.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...