Jump to content

Как сделать постоянное скрытие компонентов модели?


Recommended Posts

Ситуация такая:

Сделал скрытие компонентов модели sme_pered и sme_zad, но они скрываются только при старте ресурса.

Код:

function tram()
   for id, vehicle in ipairs(getElementsByType("vehicle")) do 
   if getElementModel(vehicle) == 611 then
setTimer(setVehicleComponentVisible, 100, 1, vehicle, "sme_pered", false)
        end
        if getElementModel(vehicle) == 611 then
setTimer(setVehicleComponentVisible, 100, 1, vehicle, "sme_zad", false)
        end
    end
end
addEventHandler("onClientResourceStart", resourceRoot, tram)

Link to comment
  • Scripting Moderators

?. Переместил тему в подфорум Скриптинг.
Используйте событие onClientElementStreamIn, оно сработает когда элемент попадёт в зону стрима. Затем проверяйте тип элемента (getElementType(source) == "vehicle"), модель и скрывайте компоненты.

Link to comment
  • 3 months later...
On 21/01/2022 at 16:45, Sarrum said:

Должно и для прицепов работать. Было бы неплохо ваш текущий код посмотреть.

Я не про это.
Допустим, есть компоненты "sme_pered" и "sme_zad"

Как сделать так, чтобы на тягаче скрывался компонент "sme_pered", а на прицепе "sme_zad'?

Edited by Danil Merkulov
.
Link to comment
  • Scripting Moderators

Скрывался всегда или в определённый момент? Если в определённый, то при каких условиях?

Link to comment
  • 2 weeks later...

Мне кажется, легче задать заново вопрос.

Есть компоненты sme_pered и sme_zad. Оба имеются на тягаче и прицепе.

Как сделать так, чтобы на тягаче скрывался компонент sme_pered, а на прицепе - sme_zad, если они сцеплены?

Link to comment
  • Scripting Moderators

Есть событие onClientTrailerAttach, которое будет вызываться прицепом, когда он прицепляется к тягачу.
Простой пример:

function onAttach ( vehicle )
	-- vehicle - тягач, source - прицеп
	
	setVehicleComponentVisible ( vehicle, "sme_pered", false )
	setVehicleComponentVisible ( source, "sme_zad", false )
end
addEventHandler ( "onClientTrailerAttach", root, onAttach )

Дополнительно можно добавить проверку на модель транспорта.

Link to comment
  • Scripting Moderators

Мой первый ответ в теме до сих пор актуален. Единственное, нужно ещё использовать getVehicleTowedByVehicle для получения буксируемого транспорта (в данном случае вагона).
В итоге логика такая: если в зону стрима попадает транспорт с ID 611 (локомотив) и имеет прицеп (вагон), скрываются компоненты для локомотива и вагона.

function clientElementStreamIn ( )
	if getElementType ( source ) ~= "vehicle" then
		return
	end
	
	if getElementModel ( source ) ~= 611 then
		return
	end
	
	local trailer = getVehicleTowedByVehicle ( source )
	
	if not ( trailer ) then
		return
	end
	
	setVehicleComponentVisible ( source, "sme_pered", false )
	setVehicleComponentVisible ( trailer, "sme_zad", false )
end
addEventHandler ( "onClientElementStreamIn", root, clientElementStreamIn )

 

Link to comment

function clientElementStreamIn()
    if getElementType(source) ~= "vehicle" then return end
    
    if getElementModel(source) ~= 449 and getElementModel(source) ~= 604 and getElementModel(source) ~= 611 and getElementModel(source) ~= 574 and getElementModel(source) ~= 572 then return end
    
    local vehicle = getVehicleTowedByVehicle(source)
    
    if not (vehicle) then return end

    setVehicleComponentVisible(source, "sme_pered", false)
    setVehicleComponentVisible(source, "sme_zad", true)
    setVehicleComponentVisible(vehicle, "sme_pered", true)
    setVehicleComponentVisible(vehicle, "sme_zad", false)
    setVehicleComponentRotation(vehicle, "pant_1", 40, 0, 0)
    setVehicleComponentRotation(vehicle, "pant_2", -75, 0, 0)
    setVehicleComponentRotation(vehicle, "pant_3", -40, 0, 0)
    setVehicleComponentRotation(vehicle, "pant_4", 75, 0, 0)
    setVehicleComponentRotation(vehicle, "pant_vstavka", 45, 0, 0)
end
addEventHandler("onClientElementStreamIn", root, clientElementStreamIn)

Не скрывается компонент "sme_zad" на вагоне

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...