Muito bem consegui, minha solução:
addEventHandler('onPlayerQuit', root, function()
local account = getPlayerAccount(source)
if not isGuestAccount(account) then
for i, vehicl in pairs(getElementsByType('vehicle')) do
if getElementData(vehicl, "ownercar") == getAccountName(getPlayerAccount(source)) or getElementData(vehicl, "Owner") == source then
setAccountData(account, 'vehitem', toJSON(getElementData(vehicl, 'armasG')))
-- setAccountData(account, 'vehitem', weap)
break
end
end
end
end)
esta é a primeira parte, aqui está a segunda:
local accsalvo = getPlayerAccount(source)
if getAccountData(accsalvo, 'vehitem') then
exports._infobox:addNotification(source, 'funcionou finalmente caralhoo', 'warning')
setElementData(vehicle, 'armasG', fromJSON(getAccountData(accsalvo, 'vehitem')))
else
exports._infobox:addNotification(source, 'não tá funcionando maaano', 'warning')
end
solução:
retirei o ipairs da primeira parte e coloquei pairs, depois eu testei assim:
addEventHandler('onPlayerQuit', root, function()
local account = getPlayerAccount(source)
if not isGuestAccount(account) then
for i, vehicle in pairs(getElementsByType('vehicle')) do
if getElementData(vehicle, "armasG") then
iprint(getElementData(vehicle, 'armasG'))
-- setAccountData(account, 'vehitem', weap)
break
end
end
end
end)
funcionou é claro, porém não era meu objetivo, e sim fazer uma verificação se o carro achado pelo getElements, é do usuário que saiu do servidor, então eu dei uma olhada no outro script de quando o usuário espawna o veículo e estava assim:
-- parte do script que importa --
setElementData(vehicle, "ownercar", getAccountName(getPlayerAccount(source)))
setElementData(vehicle, "Owner", source)
Então eu testei desta forma:
addEventHandler('onPlayerQuit', root, function()
local account = getPlayerAccount(source)
if not isGuestAccount(account) then
for i, vehicl in pairs(getElementsByType('vehicle')) do
if getElementData(vehicl, "ownercar") == getAccountName(getPlayerAccount(source)) or getElementData(vehicl, "Owner") == source then
setAccountData(account, 'vehitem', toJSON(getElementData(vehicl, 'armasG')))
-- setAccountData(account, 'vehitem', weap)
break
end
end
end
end)
(é claro que eu podia ter escolhido entre 'ownercar' e 'owner', mas só por segurança usei os dois)
e como resultado não funcionou, por que? eu não sei, porém.. Quando eu fui olhar o script da concessionaria novamente, percebi que a minha parte da verificação:
local accsalvo = getPlayerAccount(source)
if getAccountData(accsalvo, 'vehitem') then
exports._infobox:addNotification(source, 'funcionou finalmente caralhoo', 'warning')
setElementData(vehicle, 'armasG', getAccountData(accsalvo, 'vehitem'))
else
exports._infobox:addNotification(source, 'não tá funcionando maaano', 'warning')
end
ela estava quase no começo da função de espawnar o veículo, então eu mudei a posição dela e coloquei no final da função, fui testar novamente, e funcionou, mas não entendi o por que de não ter funcionado com ela no começo da função, mas o importante é que está funcionando agora, e o resultado está nos 2 primeiros codes, vou salvar este script e tentar descobrir a fundo por que não estava funcionando, muito obrigado a todos vcs!
(um simples erro de lógica que meu um baita trabalho!)