Keven Campos Posted September 15, 2021 Posted September 15, 2021 Gostaria de saber como eu poderia salvar a tunagem de um veiculo, quais funções eu poderia usar acredito que após tunar o veiculo ter uma verificação as alterações feitas e salvar em um elementdata ? faz um tempo que eu estou perdido nisso e não encontro nem um mod para estudo
Other Languages Moderators androksi Posted September 15, 2021 Other Languages Moderators Posted September 15, 2021 Olá! Movi o seu tópico para o local mais apropriado. Sobre a sua dúvida: isso depende de como a tunagem é salva no veículo. Poderia compartilhar o trecho do código onde isso acontece?
Keven Campos Posted September 19, 2021 Author Posted September 19, 2021 On 15/09/2021 at 09:24, androksi said: Olá! Movi o seu tópico para o local mais apropriado. Sobre a sua dúvida: isso depende de como a tunagem é salva no veículo. Poderia compartilhar o trecho do código onde isso acontece? Opa, tudo bom ? vou deixar uma parte abaixo if selectedSubCategory == 10 then -- Air-Ride if hoveredCategory == equippedTuning then giveNotification("error", getLocalizedText("notification.error.itemIsPurchased", loopTable[hoveredCategory]["categoryName"])) promptDialog["state"] = false else if hasPlayerMoney(loopTable[hoveredCategory]["tuningPrice"]) then setElementData(enteredVehicle, "tuning.airRide", loopTable[hoveredCategory]["tuningData"], true) if hoveredCategory == 1 then removeAirRide(enteredVehicle) end equippedTuning = hoveredCategory moneyChange(loopTable[hoveredCategory]["tuningPrice"]) promptDialog["state"] = false else giveNotification("error", getLocalizedText("notification.error.notEnoughMoney")) promptDialog["state"] = false end end elseif selectedSubCategory == 11 then -- Lamp color if hasPlayerMoney(loopTable[hoveredCategory]["tuningPrice"]) then savedVehicleColors["all"] = {getVehicleColor(enteredVehicle, true)} savedVehicleColors["headlight"] = {getVehicleHeadLightColor(enteredVehicle)} triggerServerEvent("tuning->Color", localPlayer, enteredVehicle, savedVehicleColors["all"], savedVehicleColors["headlight"]) equippedTuning = -1 moneyChange(loopTable[hoveredCategory]["tuningPrice"]) promptDialog["state"] = false else giveNotification("error", getLocalizedText("notification.error.notEnoughMoney")) promptDialog["state"] = false end elseif selectedSubCategory == 12 then -- Neon if hasPlayerMoney(loopTable[hoveredCategory]["tuningPrice"]) then saveNeon(enteredVehicle, loopTable[hoveredCategory]["tuningData"], true) equippedTuning = hoveredCategory moneyChange(loopTable[hoveredCategory]["tuningPrice"]) promptDialog["state"] = false else giveNotification("error", getLocalizedText("notification.error.notEnoughMoney")) promptDialog["state"] = false end end end Cara, confesso estar um tanto perdido nesse código, aparentemente ele salva em elementData ? eu necessitava setar as handling no veiculo após spawnar ele pelo painel da concessionaria, a concessionaria salva através de SQLite os veiculos, quando eu destruo o veiculo comprado e spawno ele novamente não acompanha tunagem
Keven Campos Posted September 28, 2021 Author Posted September 28, 2021 Ignora a resposta acima, falei besteira. A Parte que salva a tunagem está na concessionaria, porém ela salva somente os upgrades, e eles não envolvem algumas coisas como por exemplo a handling do veiculo. Os Upgrades ta sendo salvo por sqlite, através do getVehicleUpgrades (https://wiki.multitheftauto.com/wiki/GetVehicleUpgrades) ele está salvando os upgrades porem tentei seguir o mesmo padrão para o getVehicleHandling e não obtive resultado, provavelmente porque ele retorna um tipo de tabela diferente --Servidor for _, upgradee in ipairs (getVehicleUpgrades(theVehicle)) do if upgrade == "" then upgrade = upgradee else upgrade = upgrade..","..upgradee end end handling = "" -- Essa parte foi minha tentativa frustada de tentar obter as Hand do veiculo for _, hand in ipairs (getVehicleHandling(theVehicle)) do if handling == "" then handling = hand else handling = handling..","..hand end end dbExec(db, "UPDATE VehicleList SET X = ?, Y = ?, Z = ?, RotZ = ?, Handling = ?, HP = ?, Colors = ?, Upgrades = ?, Paintjob = ?, new_hydr = ? WHERE Account = ? AND ID = ?", x, y, z, rz, handling, getElementHealth(theVehicle), color, upgrade, Paintjob, getElementData(theVehicle, "veh:fuel"), getAccountName(getPlayerAccount(Owner)), id) Tentei utilizar o getVehicleUpgrades no lugar onde esta o getVehicleHandling e retornou corretamente os Upgrades
Other Languages Moderators androksi Posted September 28, 2021 Other Languages Moderators Posted September 28, 2021 @Keven Campos, foi uma boa tentativa, mas a função getVehicleHandling retorna uma tabela com índice não-numérico. Por isso o ipairs não vai funcionar corretamente. O que você pode fazer, é transformar essa tabela em um JSON. Além disso, te aconselho a criar uma whitelist das propriedades que você deseja salvar, uma vez que existem muitas delas. local handling = toJSON(getVehicleHandling(theVehicle)) Acredito que com o código acima, ele já salvaria corretamente no banco de dados, não consigo realizar testes agora. - bom, e claro, pra você carregar isso, seria usando a função fromJSON. Para transformar novamente em uma tabela que o MTA reconheça (em Lua). 1
Asuramaru Posted June 13, 2023 Posted June 13, 2023 (edited) Olá, eu estou com a mesma duvida no exato mesmo código, eu entendi a parte de salvar a handling. Só não estou conseguindo carregar ela de volta quando eu spawno o veiculo, com isso também talvez teria que mexer o banco de dados do mod? eu ainda sou iniciante, estou a dias testando possibilidades Edited June 13, 2023 by Asuramaru
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