DanyaAST Posted October 17, 2021 Share Posted October 17, 2021 Ситуация такая: Сделал скрытие компонентов модели 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 Sarrum Posted October 18, 2021 Scripting Moderators Share Posted October 18, 2021 . Переместил тему в подфорум Скриптинг. Используйте событие onClientElementStreamIn, оно сработает когда элемент попадёт в зону стрима. Затем проверяйте тип элемента (getElementType(source) == "vehicle"), модель и скрывайте компоненты. Link to comment
DanyaAST Posted January 21, 2022 Author Share Posted January 21, 2022 Спустя несколько месяцев, ну да ладно. Как скрыть таким же образом компоненты на прицепе? Link to comment
Scripting Moderators Sarrum Posted January 21, 2022 Scripting Moderators Share Posted January 21, 2022 Должно и для прицепов работать. Было бы неплохо ваш текущий код посмотреть. Link to comment
DanyaAST Posted January 22, 2022 Author Share Posted January 22, 2022 (edited) On 21/01/2022 at 16:45, Sarrum said: Должно и для прицепов работать. Было бы неплохо ваш текущий код посмотреть. Я не про это. Допустим, есть компоненты "sme_pered" и "sme_zad" Как сделать так, чтобы на тягаче скрывался компонент "sme_pered", а на прицепе "sme_zad'? Edited January 22, 2022 by Danil Merkulov . Link to comment
Scripting Moderators Sarrum Posted January 22, 2022 Scripting Moderators Share Posted January 22, 2022 Скрывался всегда или в определённый момент? Если в определённый, то при каких условиях? Link to comment
DanyaAST Posted February 5, 2022 Author Share Posted February 5, 2022 Мне кажется, легче задать заново вопрос. Есть компоненты sme_pered и sme_zad. Оба имеются на тягаче и прицепе. Как сделать так, чтобы на тягаче скрывался компонент sme_pered, а на прицепе - sme_zad, если они сцеплены? Link to comment
Scripting Moderators Sarrum Posted February 6, 2022 Scripting Moderators Share Posted February 6, 2022 Есть событие onClientTrailerAttach, которое будет вызываться прицепом, когда он прицепляется к тягачу. Простой пример: function onAttach ( vehicle ) -- vehicle - тягач, source - прицеп setVehicleComponentVisible ( vehicle, "sme_pered", false ) setVehicleComponentVisible ( source, "sme_zad", false ) end addEventHandler ( "onClientTrailerAttach", root, onAttach ) Дополнительно можно добавить проверку на модель транспорта. Link to comment
DanyaAST Posted February 13, 2022 Author Share Posted February 13, 2022 1) Как привязать код к onClientElementStreamIn? 2) Как действовать, если это поезд, заспавненный скриптом, а вагон прицеплен к локомотиву через attachTrailerToVehicle? Link to comment
Scripting Moderators Sarrum Posted February 14, 2022 Scripting Moderators Share Posted February 14, 2022 Мой первый ответ в теме до сих пор актуален. Единственное, нужно ещё использовать 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
DanyaAST Posted February 18, 2022 Author Share Posted February 18, 2022 (edited) Протестировал, то скрывается, то не скрывается Edited February 18, 2022 by Danil Merkulov Link to comment
DanyaAST Posted February 18, 2022 Author Share Posted February 18, 2022 59 minutes ago, Danil Merkulov said: Протестировал, то скрывается, то не скрывается Чуток поменял код - работает Link to comment
DanyaAST Posted February 19, 2022 Author Share Posted February 19, 2022 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now