Create ball.txt

This commit is contained in:
Niko 2025-01-31 15:41:24 +03:00 committed by GitHub
parent ba150b7593
commit 4cffafbe6f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

123
ball.txt Normal file
View file

@ -0,0 +1,123 @@
--@name baallssssssssssssssssssss
--@author
--@shared
if SERVER then
local main = prop.create(chip():getPos() + Vector(0,0,20),Angle() , "models/hunter/misc/sphere075x075.mdl",true)
main:setMass(20000)
main:setMaterial("models/props_pipes/pipesystem01a_skin2")
main:getPhysicsObject():setMaterial("gmod_silent")
main:enableSphere(true, 37.5/2)
main:getPhysicsObject():addGameFlags(FVPHYSICS.DMG_DISSOLVE)
local chair = prop.createSent(chip():getPos() + chip():getUp() * 10, Angle(), "Chair_Plastic", true)
local podc = prop.createSent(chip():getPos(), Angle(), "gmod_wire_pod", true)
local pod= podc:getWirelink()
local mass = main:getMass()
podc:setNocollideAll(true)
podc:setNoDraw(true)
main:enableDrag(false)
pod["Vehicle"]=chair
pod["Hide Player"]=1
chair:setNoDraw(true)
chair:setNocollideAll(true)
local first = chair:getPos()
local hud = prop.createComponent(chip():getPos(), Angle(0) , "starfall_hud", "models/bull/dynamicbuttonsf.mdl", true)
hud:linkComponent(chip())
hud:linkComponent(chair)
hud:setNoDraw(true)
hud:setNocollideAll(true)
chip():setPos(Vector(0))
chip():setNoDraw(true)
local driver
local function set_driver(ply, vehicle, role)
if vehicle ~= chair then return end
driver = role and ply
main:setFrozen(not isValid(driver))
end
local function onground(ent)
return trace.line(ent:getPos(),ent:getPos()-Vector(0,0,40),function() return false end).Hit
end
hook.add("PlayerEnteredVehicle", "SetDriver", set_driver)
hook.add("PlayerLeaveVehicle", "SetDriver", set_driver)
hook.add("ClientInitialized","load",function(ply)
net.start("load")
net.writeEntity(main)
net.send(ply)
end)
hook.add("tick","",function()
chair:setPos(main:getPos()+Vector(0,0,10))
chair:setAngles(Angle(0))
chair:setFrozen(true)
main:setNocollideAll(false)
if driver and onground(main) then
if driver:keyDown(IN_KEY.FORWARD) then
main:applyAngForce(Angle(12*mass,0,0))
main:applyForceCenter(Vector(6*mass,0,0):getRotated(Angle(0,driver:getEyeAngles()[2],0)))
end
if driver:keyDown(IN_KEY.BACK) then
main:applyAngForce(Angle(-12*mass,0,0))
main:applyForceCenter(Vector(-6*mass,0,0):getRotated(Angle(0,driver:getEyeAngles()[2],0)))
end
if driver:keyDown(IN_KEY.MOVELEFT) then
main:applyAngForce(Angle(12*mass,90,0))
main:applyForceCenter(Vector(0,6*mass,0):getRotated(Angle(0,driver:getEyeAngles()[2],0)))
end
if driver:keyDown(IN_KEY.MOVERIGHT) then
main:applyAngForce(Angle(12*mass,-90,0))
main:applyForceCenter(Vector(0,-6*mass,0):getRotated(Angle(0,driver:getEyeAngles()[2],0)))
end
if driver:keyDown(IN_KEY.JUMP) then
main:applyForceCenter(Vector(0,0,106*mass):getRotated(Angle(0,driver:getEyeAngles()[2],0)))
end
if driver:keyDown(IN_KEY.SPEED) then
local force = -main:getVelocity()/3*mass
main:applyForceCenter(Vector(force[1],force[2]))
main:applyAngForce(-main:getAngleVelocityAngle()/2*mass)
end
end
end)
hook.add("EntityTakeDamage","",function(ent)
if ent == main then
return true
end
end)
end
if CLIENT then
net.receive("load",function()
net.readEntity(function(ent)
main(ent)
end)
end)
function main(ent)
local font = render.createFont("Arial",72,400,false,true,false,true)
hook.add("drawhud","",function()
local pos1 = ent:getPos():toScreen()
local x1,y1=pos1.x,pos1.y
local vel = ent:getVelocity()
local tr = trace.line(ent:getPos(),ent:getPos()+Vector(vel[1],vel[2],0)*10,function() return false end)
local pos2 = tr.HitPos:toScreen()
local x2,y2=pos2.x,pos2.y
render.setColor(Color(255,0,0))
render.drawLine(x1,y1,x2,y2)
render.setColor(Color(104,104,104))
render.drawRoundedBox(10,1600,800,300,100)
render.setColor(Color(255,255,255))
local speed = ent:getVelocity():getLength() * 0.01905 * 3.6
render.setFont(font)
render.drawSimpleText(1750,850,tostring(math.ceil(speed)).." KM/H",1,1)
end)
hook.add("calcview","",function()
local tr = trace.line(ent:getPos(),ent:getPos()+Vector(-100,0,0):getRotated(eyeAngles()),function() return false end)
return {origin=tr.HitPos+Vector(9,0,0):getRotated(eyeAngles()),drawviewer=true}
end)
end
end