[LUA] Как заспавнить машину

Всем привет!
Хочу реализовать нпс который будет выдавать машину только одной проффесии типо как служебная и спавнить её только один раз и только в одном месте.Проблема в том что я не знаю какая функция/хук отвечает за спавн транспорта, перерыл разные кардилеры дабы стырить оттуда, но чёт не нашёл, знающие люди просьба помочь) Мне нужен только спавн машины, остальное я сам без проблем сделаю.

Давно в гмоде код не писал, но машина вроде спавнится в гмоде, как любая другая энтити. Через ents.Create или как-то так вроде (НЕ ПОМНЮ)

1 лайк

да ты прав через ent.Create,только есть проблема в виде серверной ошибки
Vehicle () unable to properly initialize due to script error in ()!
Вот код:

if SERVER then
    local spawnPos = Vector(1017.008667, 3560.307617, -131.968750) 


    local vehicleModel = "prop_vehicle_jeep"

    local function spawnVehicle(ply)

                local vehicle = ents.Create(vehicleModel)
                vehicle:SetPos(spawnPos)
                vehicle:Spawn()
                vehicle:Activate()
                vehicle:SetModel("models/models/dreams/peugeotp4.mdl")
                ply:EnterVehicle(vehicle)

    end


    concommand.Add("spawn_vehicle", spawnVehicle)
end

vehicle:SetKeyValue("vehiclescript" ,"path_to_script.txt")
Для получения списка скриптов:
lua_run for k, v in pairs( list.Get("Vehicles") ) do PrintTable({v.Name, v.Model, v.KeyValues.vehiclescript}) end

1 лайк

Хорошо я впринципе и сам смог найти код на каком то зарубежном сайте,теперь встал вопрос как сделать лимит для спавна транспорта через кнопку,думал что сам додумаюсь но увы

Помоему это не то вообще)

Перед спавном машины:

if not ply:CheckLimit('vehicles') then return ply:LimitHit('vehicles') end

После спавна машины:

ply:AddCount('vehicles', vehicle)

Мне нужно сделать лимит в одну машину, я наверное не правильно выразился.

local spawnPos = Vector(1017.008667, 3560.307617, -131.968750)
local vehicleModel = "prop_vehicle_jeep"

local function spawnVehicle(pl)
	if (pl.vehicles_spawned or 0) >= 1 then
		pl:ChatPrint("Вы заспавнили " .. pl.vehicles_spawned .. " машин(у) и достигли лимита")
		return
	end

	local veh = ents.Create(vehicleModel)
	veh:SetPos(spawnPos)
	veh:SetKeyValue("vehiclescript" ,"path_to_script.txt")
	veh:Spawn()
	veh:Activate()
	veh:SetModel("models/models/dreams/peugeotp4.mdl")

	pl.vehicles_spawned = (pl.vehicles_spawned or 0) + 1

	veh:CallOnRemove("ChangeSpawnedCounter", function(ent)
		if not IsValid(pl) then return end
		pl.vehicles_spawned = pl.vehicles_spawned - 1
	end)

	pl:EnterVehicle(veh)
end

concommand.Add("spawn_vehicle", spawnVehicle)
1 лайк

Спасибо!

Есть кнопочка “лайк”, а еще “решено”

ну насчёт решено я поставил)а лайк щас нажал