Всем привет!
Хочу реализовать нпс который будет выдавать машину только одной проффесии типо как служебная и спавнить её только один раз и только в одном месте.Проблема в том что я не знаю какая функция/хук отвечает за спавн транспорта, перерыл разные кардилеры дабы стырить оттуда, но чёт не нашёл, знающие люди просьба помочь) Мне нужен только спавн машины, остальное я сам без проблем сделаю.
Давно в гмоде код не писал, но машина вроде спавнится в гмоде, как любая другая энтити. Через ents.Create или как-то так вроде (НЕ ПОМНЮ)
да ты прав через 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
Хорошо я впринципе и сам смог найти код на каком то зарубежном сайте,теперь встал вопрос как сделать лимит для спавна транспорта через кнопку,думал что сам додумаюсь но увы
Помоему это не то вообще)
Перед спавном машины:
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)
Спасибо!
Есть кнопочка “лайк”, а еще “решено”
ну насчёт решено я поставил)а лайк щас нажал