【资源分享】Gmod自由移动镜头脚本

*----------------------------------------------[下载区]----------------------------------------------*

 1 local UX = {}
 2 UX.Enabled = false
 3 UX.ViewOrigin = Vector( 0, 0, 0 )
 4 UX.ViewAngle = Angle( 0, 0, 0 )
 5 UX.Velocity = Vector( 0, 0, 0 )
 6 function UX.CalcView( ply, origin, angles, fov )
 7     if ( !UX.Enabled ) then return end
 8     if ( UX.SetView ) then
 9         UX.ViewOrigin = origin
10         UX.ViewAngle = angles
11         UX.fov = 90
12         UX.SetView = false
13     end
14     return { origin = UX.ViewOrigin, angles = UX.ViewAngle, fov = UX.fov }
15 end
16 hook.Add( "CalcView", "uxcalc", UX.CalcView )
17 function UX.CreateMove( cmd, ply, origin, angles, fov )
18     if ( !UX.Enabled ) then return end    
19     local time = FrameTime()
20     UX.ViewOrigin = UX.ViewOrigin + ( UX.Velocity * time)
21     UX.Velocity = UX.Velocity * 0.95    
22     local sensitivity = 0.022
23     UX.ViewAngle.p = math.Clamp( UX.ViewAngle.p + ( cmd:GetMouseY() * sensitivity ), -89, 89 ) 
24     UX.ViewAngle.y = UX.ViewAngle.y + ( cmd:GetMouseX() * -1 * sensitivity )
25     local nig = Vector( 0, 0, 0 )
26     local add = Vector( 0, 0, 0 )
27     local ang = UX.ViewAngle
28     if ( cmd:KeyDown( IN_FORWARD ) ) then add = add + ang:Forward() end
29     if ( cmd:KeyDown( IN_BACK ) ) then add = add - ang:Forward() end
30     if ( cmd:KeyDown( IN_MOVERIGHT ) ) then add = add + ang:Right() end
31     if ( cmd:KeyDown( IN_MOVELEFT ) ) then add = add - ang:Right() end
32     if ( cmd:KeyDown( IN_JUMP ) ) then add = add + ang:Up() end
33     if ( cmd:KeyDown( IN_DUCK ) ) then add = add - ang:Up() end    
34     add = add:GetNormal() * 80
35     if ( cmd:KeyDown( IN_SPEED ) ) then add = add * 4 end
36     UX.Velocity = UX.Velocity + add
37     if ( UX.LockView == true ) then
38         UX.LockView = cmd:GetViewAngles()
39     end
40     if ( UX.LockView ) then
41         cmd:SetViewAngles( UX.LockView )
42     end
43     cmd:SetForwardMove( 0 )
44     cmd:SetSideMove( 0 )
45     cmd:SetUpMove( 0 )
46 end
47 hook.Add( "CreateMove", "uxwalk", UX.CreateMove )
48 function UX.Toggle()
49     UX.Enabled = !UX.Enabled
50     UX.LockView = UX.Enabled
51     UX.SetView = true
52 end
53 concommand.Add( "uxcam", UX.Toggle )
54 concommand.Add( "uxpos", function() print( UX.ViewOrigin ) end )
查看脚本

*----------------------------------------------[下载区]----------------------------------------------*

*----------------------------------------------[介绍区]----------------------------------------------*

本脚本可以让使用者的镜头在地图内随意移动 无视任何障碍物

控制台输入“uxcam”可进入自由镜头模式,纵览地图

控制台输入“uxpos”可获取自由镜头坐标,方便记录

*----------------------------------------------[介绍区]----------------------------------------------*

游戏截图:

 

猜你喜欢

转载自www.cnblogs.com/fBuX/p/12152527.html