Jump to content

Concessionária comprar todos os veiculos de vez


Recommended Posts

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 by Pimenta
Link to comment
  • Moderators

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
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...