Jump to content

É possível roubar o carro de um ped ?


Recommended Posts

Posted

Eae pessoal, hoje eu pensei em criar um script que possibilitasse que ao sair do veículo as rodas permanecessem do modo em que estavam, exemplificando, eu estou com a roda virada, e ao sair do carro, a roda continua virada...

No entanto, ao tentar voltar ao veículo que está com o ped mantendo a roda virada, eu não consigo realizar a ação de entrar no veículo, nem se quer é chamado o evento onPlayerVehicleEnter, e com isso penso que não seja possível fazer carjack com um ped, e gostaria de saber se existe algum outro modo para realizar o que tenho em mente ?

Server:

local peds = {}

addEventHandler("onVehicleStartExit",getRootElement(),
	function(player,seat)
		if (seat == 0) then
			if (getControlState(player, "vehicle_left" )) then
				control = "vehicle_left"
			elseif (getControlState(player, "vehicle_right" )) then
				control = "vehicle_right"
			else
				return
			end
			ped = createPed(0,0,0,0)
			warpPedIntoVehicle (ped, source)
			setElementAlpha(ped,0)
			peds[source] = ped
			--setElementData()
			--setElementCollisionsEnabled ( ped, false) 
			triggerClientEvent ( root, "setControl", root, ped, source, control )
		end
	end
)

addEventHandler ( "onPlayerVehicleEnter", getRootElement(),
	function(veh,seat)
		if (seat == 0) then
			if (peds[veh]) then
				destroyElement(peds[veh])
				peds[veh] = nil
			end
		end
	end
)

Client:

addEvent( "setControl", true )
addEventHandler( "setControl", localPlayer,
	function(ped,veh,control)
		--warpPedIntoVehicle (ped, veh)
		setPedControlState(ped,control,true)
	end
)

 

Posted

Nunca tentei isso, mas acho que não dá pra entrar no veículo com o ped. Você pode usar como alternativas, a função setControlState pra fazer o ped sair quando você entrar no veículo ou usar a função removePedFromVehicle.

  • Like 1
Posted (edited)

O complicado é como saber a hora de remover o ped, já que nenhum dos eventos abaixo é chamado quando tento entrar em um veículo com ped:

onPlayerVehicleEnter / onVehicleEnter / onVehicleStartEnter

Ontem eu tive a ideia de criar um veículo secundário, setando sua colisão false e alpha 0, anexando ao veículo primário, para então poder acionar tais eventos. No evento do carro secundário, eu então identifiquei o carro primário, e seu ped, desanexando o carro secundário do primário, e removendo, logo após eu utilizei o removePedFromVehicle para remover o ped do carro primário, e até ai ocorreu tudo como esperado, o carro primário já estava sem ped, e eu poderia entrar normalmente... Mas não foi o que ocorreu, estranhamente “bugo” minha entrada em qualquer veículo próximo a min ali, nem mesmo conseguia entrar como passageiro, precisei dar /kill para então voltar a conseguir entrar em veículos.

Quando eu chegar em casa hoje anoite, posto o código...

Edited by MaligNos
Posted
local elements = {}

addEventHandler("onVehicleStartExit",getRootElement(),
	function(player,seat)
		if (seat == 0) then
			if (getControlState(player, "vehicle_left" )) then
				control = "vehicle_left"
			elseif (getControlState(player, "vehicle_right" )) then
				control = "vehicle_right"
			else
				return
			end
			vehPrimario = source

			vehSecundario = createVehicle(411, 0, 0, 0)
			setElementCollisionsEnabled(vehSecundario, false)
			setElementAlpha(vehSecundario, 0)
			
			attachElements(vehSecundario, vehPrimario)
			
			ped = createPed(0,0,0,0)
			warpPedIntoVehicle (ped, vehPrimario)
			--setElementAlpha(ped,0)
			
			elements[vehSecundario] = {vehPrimario, ped}
			triggerClientEvent ( root, "setControl", root, ped, source, control )
		end
	end
)

addEventHandler ( "onVehicleStartEnter", getRootElement(),
	function(_,seat)
		if (seat == 0) then
			if (elements[source]) then
				vehSecundario = source
				vehPrimario = elements[vehSecundario][1]
				ped = elements[vehSecundario][2]
				detachElements(vehSecundario, vehPrimario)
				destroyElement(vehSecundario)
				removePedFromVehicle(ped)
				destroyElement(ped)
			end
		end
	end
)

 

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