DarkStalker30 Posted August 29 Share Posted August 29 Hello everyone, sorry if my english bad. I did a script that allows to use new models throw the "engineRequestModel". It works good for replace, but I found some problems. First, I thought that if I use a parent ID from car with sirens, it will apply sirens on changed model. It didn't - so I tried to use addVehicleSirens(). It didn't work too - I have only a sound of sirens, but not them visual. On base non-changed models it works okay. I tried to set their positions on server and on client side, and set flag360 = true and checkLosFlag = false, but it still didn't help. Any ideas about fix that (except creating new sirens system)? Second, on new models doesn't work "up" and "down" abilities (dozer, towtruck, forklift etc.). Is any way to fix that? P.S. I understood that new models have new ID's, but I still need to fix this problems. Thanks in advance! 1 Link to comment
AngelAlpha Posted August 29 Share Posted August 29 1 hour ago, DarkStalker30 said: Hello everyone, sorry if my english bad. I did a script that allows to use new models throw the "engineRequestModel". It works good for replace, but I found some problems. First, I thought that if I use a parent ID from car with sirens, it will apply sirens on changed model. It didn't - so I tried to use addVehicleSirens(). It didn't work too - I have only a sound of sirens, but not them visual. On base non-changed models it works okay. I tried to set their positions on server and on client side, and set flag360 = true and checkLosFlag = false, but it still didn't help. Any ideas about fix that (except creating new sirens system)? Second, on new models doesn't work "up" and "down" abilities (dozer, towtruck, forklift etc.). Is any way to fix that? P.S. I understood that new models have new ID's, but I still need to fix this problems. Thanks in advance! давай тоже самое, но на русском Link to comment
DarkStalker30 Posted August 29 Author Share Posted August 29 7 minutes ago, AngelAlpha said: давай тоже самое, но на русском Без проблем. Есть engineRequestModel, использую его для создания нового транспорта на основе старого. У таких моделей две проблемы: 1) Сирены автоматически не добавляются от модели-родителя, через addVehicleSirens() тоже не хотят нормально работать, у них есть только звук. Проверял на базовых моделях - функция работает на сервере. Ставил flag360 = true и checkLosFlag = false, применял сирены на стороне сервера и стороне клиента - всё равно не помогло. Есть ли вариант как-то всё-таки выставить их (без какой-либо новописной системы)? 2) При добавлении нового транспорта у него не работает по умолчанию тягание всяких частей кузова (эвакуатор, бульдозер, погрузчик и т.д.). Можно ли это как-то реализовать? Спасибо Link to comment
AngelAlpha Posted August 29 Share Posted August 29 Just now, DarkStalker30 said: Без проблем. Есть engineRequestModel, использую его для создания нового транспорта на основе старого. У таких моделей две проблемы: 1) Сирены автоматически не добавляются от модели-родителя, через addVehicleSirens() тоже не хотят нормально работать, у них есть только звук. Проверял на базовых моделях - функция работает на сервере. Ставил flag360 = true и checkLosFlag = false, применял сирены на стороне сервера и стороне клиента - всё равно не помогло. Есть ли вариант как-то всё-таки выставить их (без какой-либо новописной системы)? 2) При добавлении нового транспорта у него не работает по умолчанию тягание всяких частей кузова (эвакуатор, бульдозер, погрузчик и т.д.). Можно ли это как-то реализовать? Спасибо 1) Может ты координаты не правильно прописал? Покажи код как ты прописываешь 2) Ты точно при добавлении например нового эвакуатора, за базовый ID берешь ID старого (525)? Link to comment
DarkStalker30 Posted August 29 Author Share Posted August 29 9 minutes ago, IIYAMA said: @AngelAlpha@DarkStalker30 Gentlemen, the primary language for this forum section is English. Please write your posts and replies in English. Yep, sorry. He just asks me for write original post on russian. His answer: Quote 1) Maybe wrong coordinates? Show the code. 2) When adding, for example, a new tow truck, are you sure you take the ID of the old one (525) as the base ID? 24 minutes ago, AngelAlpha said: 1) Может ты координаты не правильно прописал? Покажи код как ты прописываешь 2) Ты точно при добавлении например нового эвакуатора, за базовый ID берешь ID старого (525)? 1) 409 - work, "new_car" - don't. local vehicleSirens = { ["new_car"] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }}, [409] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }} } function setSomeCoolThingsForVehicle(vehicle) if vehicleSirens[model] then outputDebugString('adding sirens, model: '..model) addVehicleSirens(vehicle, vehicleSirens[model].count, 5, false, false, false) for number, siren in ipairs(vehicleSirens[model][sirens]) do setVehicleSirens(vehicle, number, siren.x, siren.y, siren.z, siren.r, siren.g, siren.b) end end end 2) ["new_tt"] = {modelName = "towtruck2", parentID = 525, currentID = nil} 1 Link to comment
AngelAlpha Posted August 29 Share Posted August 29 10 minutes ago, DarkStalker30 said: Yep, sorry. He just asks me for write original post on russian. His answer: 1) 409 - work, "new_car" - don't. local vehicleSirens = { ["new_car"] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }}, [409] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }} } function setSomeCoolThingsForVehicle(vehicle) if vehicleSirens[model] then outputDebugString('adding sirens, model: '..model) addVehicleSirens(vehicle, vehicleSirens[model].count, 5, false, false, false) for number, siren in ipairs(vehicleSirens[model][sirens]) do setVehicleSirens(vehicle, number, siren.x, siren.y, siren.z, siren.r, siren.g, siren.b) end end end 2) ["new_tt"] = {modelName = "towtruck2", parentID = 525, currentID = nil} Как ты заменяешь модель, покажи код How you replace a model, show me code 26 minutes ago, IIYAMA said: @AngelAlpha@DarkStalker30 Gentlemen, the primary language for this forum section is English. Please write your posts and replies in English. may be you can move this topic to russian subforum? Link to comment
DarkStalker30 Posted August 29 Author Share Posted August 29 Just now, AngelAlpha said: Как ты заменяешь модель, покажи код How you replace a model, show me code local modelTable = newModelsTable[newModelName] if modelTable then if modelTable.currentID == nil then modelTable.currentID = engineRequestModel("vehicle", modelTable.parentID) local txd = engineLoadTXD("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".txd") engineImportTXD(txd, modelTable.currentID) local dff = engineLoadDFF("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".dff") engineReplaceModel(dff, modelTable.currentID) elseif getElementModel(source) == modelTable.currentID then return end setElementModel(source, modelTable.currentID) outputDebugString('Модели "'..modelTable.modelName..'" присвоен ID: ' ..modelTable.currentID) end Link to comment
AngelAlpha Posted August 29 Share Posted August 29 2 minutes ago, DarkStalker30 said: local modelTable = newModelsTable[newModelName] if modelTable then if modelTable.currentID == nil then modelTable.currentID = engineRequestModel("vehicle", modelTable.parentID) local txd = engineLoadTXD("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".txd") engineImportTXD(txd, modelTable.currentID) local dff = engineLoadDFF("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".dff") engineReplaceModel(dff, modelTable.currentID) elseif getElementModel(source) == modelTable.currentID then return end setElementModel(source, modelTable.currentID) outputDebugString('Модели "'..modelTable.modelName..'" присвоен ID: ' ..modelTable.currentID) end local modelTable = newModelsTable[newModelName] if modelTable then if modelTable.currentID == nil then modelTable.currentID = engineRequestModel("vehicle", modelTable.parentID) local txd = engineLoadTXD("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".txd") engineImportTXD(txd, modelTable.currentID) local dff = engineLoadDFF("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".dff") engineReplaceModel(dff, modelTable.currentID) elseif getElementModel(source) == modelTable.currentID then return end setElementModel(source, modelTable.currentID) setElementData(source, "newModelName", newModelName) outputDebugString('Модели "'..modelTable.modelName..'" присвоен ID: ' ..modelTable.currentID) end и это / and this local vehicleSirens = { ["new_car"] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }}, [409] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }} } function setSomeCoolThingsForVehicle(vehicle) local model = getElementData(vehicle, "newModelName") or getElementModel(vehicle) if vehicleSirens[model] then outputDebugString('adding sirens, model: '..model) addVehicleSirens(vehicle, vehicleSirens[model].count, 5, false, false, false) for number, siren in ipairs(vehicleSirens[model][sirens]) do setVehicleSirens(vehicle, number, siren.x, siren.y, siren.z, siren.r, siren.g, siren.b) end end end Link to comment
DarkStalker30 Posted August 30 Author Share Posted August 30 12 hours ago, AngelAlpha said: local modelTable = newModelsTable[newModelName] if modelTable then if modelTable.currentID == nil then modelTable.currentID = engineRequestModel("vehicle", modelTable.parentID) local txd = engineLoadTXD("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".txd") engineImportTXD(txd, modelTable.currentID) local dff = engineLoadDFF("added_models/"..modelTable.modelName.."/"..modelTable.modelName..".dff") engineReplaceModel(dff, modelTable.currentID) elseif getElementModel(source) == modelTable.currentID then return end setElementModel(source, modelTable.currentID) setElementData(source, "newModelName", newModelName) outputDebugString('Модели "'..modelTable.modelName..'" присвоен ID: ' ..modelTable.currentID) end и это / and this local vehicleSirens = { ["new_car"] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }}, [409] = {count = 2, sirens = { [1] = {x = -0.5, y = 1.5, z = 0.7, r = 255, g = 0, b = 0}, [2] = {x = 0.5, y = 1.5, z = 0.7, r = 0, g = 0, b = 255} }} } function setSomeCoolThingsForVehicle(vehicle) local model = getElementData(vehicle, "newModelName") or getElementModel(vehicle) if vehicleSirens[model] then outputDebugString('adding sirens, model: '..model) addVehicleSirens(vehicle, vehicleSirens[model].count, 5, false, false, false) for number, siren in ipairs(vehicleSirens[model][sirens]) do setVehicleSirens(vehicle, number, siren.x, siren.y, siren.z, siren.r, siren.g, siren.b) end end end Во втором куске я просто пропустил часть кода, так как там ещё срабатывает пара штук, и модель, если она оригинальная, переопределяется там же. Как я уже писал, на стандартных работает хорошо, на заменённых - нет, но оно добавляется, так как звук есть. В первом не совсем понял смысла дописывать ещё один setElementData, так как это происходит при спавне машины, и он уже есть. newModelName - это как раз оно, я просто тут тоже не весь код привёл, чтобы он не таким большим был, но забыл, что некоторые детали могут быть важны Короче, все эти исправления, которые ты предложил, у меня уже есть, и оно всё равно не работает)) Link to comment
AngelAlpha Posted August 30 Share Posted August 30 7 hours ago, DarkStalker30 said: Во втором куске я просто пропустил часть кода, так как там ещё срабатывает пара штук, и модель, если она оригинальная, переопределяется там же. Как я уже писал, на стандартных работает хорошо, на заменённых - нет, но оно добавляется, так как звук есть. В первом не совсем понял смысла дописывать ещё один setElementData, так как это происходит при спавне машины, и он уже есть. newModelName - это как раз оно, я просто тут тоже не весь код привёл, чтобы он не таким большим был, но забыл, что некоторые детали могут быть важны Короче, все эти исправления, которые ты предложил, у меня уже есть, и оно всё равно не работает)) function setSomeCoolThingsForVehicle(vehicle) local model = getElementData(vehicle, "newModelName") or getElementModel(vehicle) if vehicleSirens[model] then outputDebugString('adding sirens, model: '..model) addVehicleSirens(vehicle, vehicleSirens[model].count, 5, false, false, false) for number, siren in ipairs(vehicleSirens[model][sirens]) do setVehicleSirens(vehicle, number, siren.x, siren.y, siren.z, siren.r, siren.g, siren.b) end end end и то что в коде я дописал второй строкой у тебя тоже есть и все равно не работает? Link to comment
FernandoMTA Posted August 30 Share Posted August 30 Sirens won't work on models added using enginerequestmodel. Other features like dozer or tow truck also don't work. See bug report: https://github.com/multitheftauto/mtasa-blue/issues/1861 I have a lot of experience with these new model features. Feel free to ask. I created this framework: https://github.com/Fernando-A-Rocha/mta-add-models/ Link to comment
DarkStalker30 Posted August 31 Author Share Posted August 31 15 hours ago, AngelAlpha said: function setSomeCoolThingsForVehicle(vehicle) local model = getElementData(vehicle, "newModelName") or getElementModel(vehicle) if vehicleSirens[model] then outputDebugString('adding sirens, model: '..model) addVehicleSirens(vehicle, vehicleSirens[model].count, 5, false, false, false) for number, siren in ipairs(vehicleSirens[model][sirens]) do setVehicleSirens(vehicle, number, siren.x, siren.y, siren.z, siren.r, siren.g, siren.b) end end end и то что в коде я дописал второй строкой у тебя тоже есть и все равно не работает? Да. 10 hours ago, FernandoMTA said: Sirens won't work on models added using enginerequestmodel. Other features like dozer or tow truck also don't work. See bug report: https://github.com/multitheftauto/mtasa-blue/issues/1861 I have a lot of experience with these new model features. Feel free to ask. I created this framework: https://github.com/Fernando-A-Rocha/mta-add-models/ Well, I assumed that. Okay, if with sirens I can creating something new, did you find any another ways to script work for that models? Or it can work only on standard models (I read bugreport and find all I now right now about non-working models, but I have no idea how it can be fixed by MTA scripts)? Thanks for framework, but I'm trying to do as much as possible by myself, because it's interesting for me in that way. And thanks for help! Link to comment
FernandoMTA Posted September 1 Share Posted September 1 You can make a custom "sirens" script with custom corona lights attached to vehicles. This will work regardless of the model. As for the hardcoded vehicle features like truck/tow-truck attach, dozer, ZR350 popup headlights, etc, some of these don't have workarounds in MTA using Lua scripts, but others do. For example, you can code popup headlights using vehicle component position/rotation. Good luck 1 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