Personal tools

Lua/Server/StaticObject/Static Functions/Create

From JC2-MP Documentation

< Lua‎ | Server‎ | StaticObject
Jump to: navigation, search



Returns    StaticObject
Prototype    StaticObject.Create(Vector3 position, Angle angle, string model)
Description    Spawns a StaticObject with the specified model at position and angle.


Examples

Spawn a barrel model at the player

function PlayerChat(args)
	if args.text == "/barrel" then
		local path = "34x09.flz/go001-a.lod"
		StaticObject.Create(args.player:GetPosition(), Angle(0, 0, 0), path)
 
		return false
	end
 
	return true
end
 
Events:Subscribe("PlayerChat", PlayerChat)





Returns    StaticObject
Prototype    StaticObject.Create(table)
Description    No description


Description

Spawns a StaticObject using an argument table.

The following arguments are supported:

Required values

Type Name Notes
Vector3 position
Angle angle
string model Path to the model file. See the model viewer for the full list.

Optional values

Type Name Default Notes
string collision "" Path to the collision file. See the model viewer for the full list.
World world DefaultWorld
boolean enabled true
boolean fixed true If false, the object will move smoothly and players can be transported while standing on it.

Notes

  • If collision isn't provided, or is invalid, the object will have no collision.
  • If fixed is false, you must provide a collision argument.

Examples

Create a ramp in front of you when the horn button is pressed

Server
function SpawnRamp(arg, player)
	local vehicle = player:GetVehicle()
 
	-- Make sure they're in a vehicle
	if vehicle == nil then
		return
	end
 
	Chat:Broadcast("Spawning ramp for "..tostring(player), Color(255, 255, 255))
 
	local angle = vehicle:GetAngle()
	local direction = angle * Vector3.Forward
	-- Compensate for latency using velocity.
	local distance = 30 + vehicle:GetLinearVelocity():Length() * 0.5
	local position = vehicle:GetPosition() + direction * distance
	angle = angle * Angle(math.pi * -0.5, 0, 0)
 
	spawnArgs = {}
	spawnArgs.position = position
	spawnArgs.angle = angle
	spawnArgs.model = "17x48.fl/go666-b.lod"
	spawnArgs.collision = "17x48.fl/go666_lod1-b_col.pfx"
	spawnArgs.world = vehicle:GetWorld()
 
	StaticObject.Create(spawnArgs)
end
 
Network:Subscribe("SpawnRamp", SpawnRamp)
Client
pressed = false
 
function PreTick()
	local currentlyPressed = Input:GetValue(Action.SoundHornSiren) > 0
	if currentlyPressed then
		if pressed == false then
			Network:Send("SpawnRamp")
		end
	end
 
	pressed = currentlyPressed
end
 
Events:Subscribe("PreTick", PreTick)