Keven Campos Posted September 15, 2021 Share 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 Link to comment
Other Languages Moderators androksi Posted September 15, 2021 Other Languages Moderators Share 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? Link to comment
Keven Campos Posted September 19, 2021 Author Share 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 Link to comment
Keven Campos Posted September 28, 2021 Author Share 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 Link to comment
Other Languages Moderators androksi Posted September 28, 2021 Other Languages Moderators Share 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 Link to comment
Keven Campos Posted September 28, 2021 Author Share Posted September 28, 2021 deu certo, muito obrigado Link to comment
Asuramaru Posted June 13, 2023 Share 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 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