Jump to content

É possível roubar o carro de um ped ?


Recommended Posts

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
)

 

Link to comment
  • Moderators

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
Link to comment

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
Link to comment
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
)

 

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