Pimenta Posted July 8, 2021 Share Posted July 8, 2021 (edited) Boa noite, estou criando uma concessionária bem simples para aprender a programar, mais estou com algumas dificuldades, Eu criei uma tabela com o ID e a Coordenada do carro, mas quando eu compro um veiculo compra todos os veiculos da tabela, é possivel criar uma tabela que quando eu comprar o veiculo eu compre apenas um(Um Carro independente um do outro)? MakerConce = createMarker( 2794.20728, -1828.33508, 9.86094-1, "cylinder", 1.5, 255, 0, 0, 170 ) SpawnSabre = { {475,2772.91821,-1875.39771,9.76530}, {475,2777.66089, -1875.53064, 9.79008}, {475,2782.63550, -1876.05444, 9.81087}, {475,2787.60474, -1875.87512, 9.83121}, } Carros = {} function onResourceStart(source) for i,v in ipairs(SpawnSabre) do veh = createVehicle(v[1], v[2], v[3], v[4]) veiculo = false setElementFrozen(veh, true) local conta = v[1] outputChatBox ( "TESTE"..conta.."!", source ) end end addEventHandler ( "onResourceStart", root, onResourceStart ) function enterVehicle (player,theVehicle,hit) if veh and veiculo == false then outputChatBox ( "/comprarveiculo para comprar o Sabre", source ) end end addEventHandler ( "onPlayerVehicleEnter", getRootElement(), enterVehicle ) function comprarveiculo(source) if getPlayerMoney(source) >= 1200 and veiculo == false then outputChatBox ( "Comprado Com Sucesso", source ) takePlayerMoney( source,1200 ) setElementFrozen(veh, false) veiculo = true table.insert(Carros,{getPlayerName(source)}) elseif veiculo == true then outputChatBox ( "Você ja tem um Veiculo desse modelo", source,255,255,255,true) elseif getPlayerMoney(source) <= 1200 and veiculo == false then outputChatBox ( "você não tem dinheiro para comprar-lo", source,255,255,255,true) end end addCommandHandler("comprarveiculo",comprarveiculo) addCommandHandler("verdados", function(source) for i,dados in ipairs(Carros) do local conta = dados[1] outputChatBox("[DADOS]CARRO DO "..conta.." [O-O]",source,255,255,255,true) end end) function SpawnCarro(source,cmd,arg1) if isElementWithinMarker( source,MakerConce) then if arg1 == "veh" and veiculo == true then spawnVehicle ( veh, 2797.03857, -1832.53711, 9.87224) end end end addCommandHandler("spawn",SpawnCarro) Edited July 8, 2021 by Pimenta Link to comment
DNL291 Posted July 10, 2021 Share Posted July 10, 2021 Você está atribuindo a variável 'veh' dentro do loop dos carros, acontece que essa variável vai armazenar apenas o último veículo criado. Você também tem os seguintes problemas: Evento onResourceStart vai ser chamado sempre que qualquer resource for iniciado; troque getRootElement() por resourceRoot. O primeiro parâmetro do evento onPlayerVehicleEnter é o veículo, no seu código está declarado 'player'. Consulte os parâmetros na wiki. Você terá conflitos com a variável veiculo e com o carro criado que irá pertencer ao novo comprador, mas ao mesmo tempo seria o carro de amostra. Você vai precisar modificar o código tendo em mente que isso irá funcionar de uma forma dinâmica entre todos players do servidor; crie um novo veículo em vez de spawnar o que está de amostra e utilize o nome da conta do jogador em vez do nick ao armazenar o carro do comprador. Sobre o seu tópico, evite colar seu código, mesmo que ele esteja com a formatação do seu Editor, prefira utilizar a formatação do fórum. E não crie um novo tópico similar quando não obter resposta no antigo. Link to comment
Pimenta Posted July 13, 2021 Author Share Posted July 13, 2021 On 10/07/2021 at 18:03, DNL291 said: Você está atribuindo a variável 'veh' dentro do loop dos carros, acontece que essa variável vai armazenar apenas o último veículo criado. Você também tem os seguintes problemas: Evento onResourceStart vai ser chamado sempre que qualquer resource for iniciado; troque getRootElement() por resourceRoot. O primeiro parâmetro do evento onPlayerVehicleEnter é o veículo, no seu código está declarado 'player'. Consulte os parâmetros na wiki. Você terá conflitos com a variável veiculo e com o carro criado que irá pertencer ao novo comprador, mas ao mesmo tempo seria o carro de amostra. Você vai precisar modificar o código tendo em mente que isso irá funcionar de uma forma dinâmica entre todos players do servidor; crie um novo veículo em vez de spawnar o que está de amostra e utilize o nome da conta do jogador em vez do nick ao armazenar o carro do comprador. Sobre o seu tópico, evite colar seu código, mesmo que ele esteja com a formatação do seu Editor, prefira utilizar a formatação do fórum. E não crie um novo tópico similar quando não obter resposta no antigo. Se eu tirar a variável 'veh' como eu iria criar os veiculos com o frozen no true? 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