Pimenta Posted July 8, 2021 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
DNL291 Posted July 10, 2021 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. Please do not PM me with scripting related question nor support, use the forums instead.
Pimenta Posted July 13, 2021 Author 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?
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