mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
Upload
This commit is contained in:
146
lua/lvs_framework/autorun/lvs_pod.lua
Normal file
146
lua/lvs_framework/autorun/lvs_pod.lua
Normal file
@@ -0,0 +1,146 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
|
||||
local meta = FindMetaTable( "Vehicle" )
|
||||
|
||||
if CLIENT then
|
||||
function meta:GetCameraHeight()
|
||||
if not self._lvsCamHeight then
|
||||
self._lvsCamHeight = 0
|
||||
|
||||
net.Start("lvs_camera")
|
||||
net.WriteEntity( self )
|
||||
net.SendToServer()
|
||||
end
|
||||
|
||||
return self._lvsCamHeight
|
||||
end
|
||||
|
||||
function meta:SetCameraHeight( newheight )
|
||||
self._lvsCamHeight = newheight
|
||||
end
|
||||
|
||||
function meta:lvsGetWeapon()
|
||||
if self._lvsWeaponEntChecked then
|
||||
return self._lvsWeaponEnt
|
||||
end
|
||||
|
||||
local found = false
|
||||
|
||||
for _, ent in ipairs( self:GetChildren() ) do
|
||||
if not ent.LVS_GUNNER then continue end
|
||||
|
||||
self._lvsWeaponEntChecked = true
|
||||
self._lvsWeaponEnt = ent
|
||||
|
||||
found = true
|
||||
|
||||
break
|
||||
end
|
||||
|
||||
return found and self._lvsWeaponEnt or NULL
|
||||
end
|
||||
|
||||
net.Receive( "lvs_select_weapon", function( length)
|
||||
local ply = LocalPlayer()
|
||||
local vehicle = ply:lvsGetVehicle()
|
||||
|
||||
if not IsValid( vehicle ) or vehicle:GetDriver() ~= ply then return end
|
||||
|
||||
vehicle._SelectActiveTime = CurTime() + 2
|
||||
end)
|
||||
|
||||
|
||||
net.Receive( "lvs_camera", function( length, ply )
|
||||
local pod = net.ReadEntity()
|
||||
|
||||
if not IsValid( pod ) then return end
|
||||
|
||||
pod:SetCameraHeight( net.ReadFloat() )
|
||||
end)
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
function meta:GetCameraHeight()
|
||||
return (self._lvsCamHeight or 0)
|
||||
end
|
||||
|
||||
util.AddNetworkString( "lvs_select_weapon" )
|
||||
util.AddNetworkString( "lvs_camera" )
|
||||
|
||||
net.Receive( "lvs_select_weapon", function( length, ply )
|
||||
if not IsValid( ply ) then return end
|
||||
|
||||
local ID = net.ReadInt( 5 )
|
||||
local Increment = net.ReadBool()
|
||||
|
||||
local base = ply:lvsGetWeaponHandler()
|
||||
|
||||
if not IsValid( base ) then return end
|
||||
|
||||
if Increment then
|
||||
base:SelectWeapon( base:GetSelectedWeapon() + ID )
|
||||
else
|
||||
base:SelectWeapon( ID )
|
||||
end
|
||||
end)
|
||||
|
||||
net.Receive( "lvs_camera", function( length, ply )
|
||||
if not IsValid( ply ) then return end
|
||||
|
||||
local pod = net.ReadEntity()
|
||||
|
||||
if not IsValid( pod ) then return end
|
||||
|
||||
net.Start("lvs_camera")
|
||||
net.WriteEntity( pod )
|
||||
net.WriteFloat( pod:GetCameraHeight() )
|
||||
net.Send( ply )
|
||||
end)
|
||||
|
||||
function meta:SetCameraHeight( newheight )
|
||||
self._lvsCamHeight = newheight
|
||||
|
||||
net.Start("lvs_camera")
|
||||
net.WriteEntity( self )
|
||||
net.WriteFloat( newheight )
|
||||
net.Broadcast()
|
||||
end
|
||||
|
||||
function meta:lvsAddWeapon( ID )
|
||||
if IsValid( self._lvsWeaponEnt ) then
|
||||
return self._lvsWeaponEnt
|
||||
end
|
||||
|
||||
local weapon = ents.Create( "lvs_base_gunner" )
|
||||
|
||||
if not IsValid( weapon ) then return NULL end
|
||||
|
||||
weapon:SetPos( self:LocalToWorld( Vector(0,0,33.182617) ) ) -- location exactly where ply:GetShootPos() is. This will make AI-Tracing easier.
|
||||
weapon:SetAngles( self:LocalToWorldAngles( Angle(0,90,0) ) )
|
||||
weapon:SetOwner( self )
|
||||
weapon:Spawn()
|
||||
weapon:Activate()
|
||||
weapon:SetParent( self )
|
||||
weapon:SetPodIndex( ID )
|
||||
weapon:SetDriverSeat( self )
|
||||
|
||||
self._lvsWeaponEnt = weapon
|
||||
|
||||
weapon:SetSelectedWeapon( 1 )
|
||||
|
||||
return weapon
|
||||
end
|
||||
|
||||
function meta:lvsGetWeapon()
|
||||
return self._lvsWeaponEnt
|
||||
end
|
||||
Reference in New Issue
Block a user