Jump to content

ElementData entre outras coisas.


Recommended Posts

Bom dia, vim aqui esclarecer uma coisa.

Estou fazendo o emprego de carregador, e o mesmo precisa de 5 caixas entregues para puder pegar o camião e sair.

1º- Quero que ao chegar no marker "Marker_Entregar[source]" , ele adicione +1 elementData.

2º Quero que quando o veículo saia dali, ele faça uma vericação se não tem nada naquele local e spawne outro veículo na mesma posição.

veh_pc = {}

local markercarregar = createMarker(2795.09546, -2425.29395, 13.63188-1.1, "cylinder", 2, 30,144,255)

ocupado = { -- x, y, z, ocupado
    [1] = {2787.782, -2424.239, 13.634, 0, 0, 180, false, 2787.803, -2420.378, 13.634}, -- Esta coordenada está no seu script.
    [2] = {2788.123, -2410.558, 13.634, 0, 0, 0, false, 2788.146, -2414.291, 13.634}, -- Esta coordenada eu inventei.
    [3] = {2750, -2431.782, 13.643, 0, 0, 270, false, 2746.177, -2431.841, 13.643},
    [4] = {2750, -2441.882, 13.643, 0, 0, 270, false, 2746.153, -2441.895, 13.643},
    [5] = {2750, -2448.111, 13.643, 0, 0, 270, false, 2746.181, -2448.31, 13.648},
}


function showMarker()
local Emprego = getElementData(source, "Emprego")
	if Emprego == "Carregador" then
		for i, vaga in ipairs (ocupado) do	
       		local x, y, z, r, g, b, status, a, c, d = unpack(vaga)
			marcacao = createMarker( a, c, 12, "cylinder", 1.5, 30,144,255, 180 )
			attachElements ( marcacao, veh_pc[source], 0, -4, -1 ) 
			outputDebugString("02")
end
end
end
addEvent( "ShowMarkers", true)
addEventHandler( "ShowMarkers", getRootElement(), showMarker)

function createVeh(thePlayer)
	local Emprego = getElementData(source, "Emprego")
	for i, vaga in ipairs (ocupado) do	
       	local x, y, z, r, g, b, status, a, c, d = unpack(vaga)
		veh_pc[source] = createVehicle ( 414, x, y, z, r, g, b)	
		setVehicleLocked( veh_pc[source], true)
		outputDebugString("01")
		end
    end
addEventHandler( "onResourceStart", getRootElement(), createVeh )




function tempo(thePlayer)
	if getElementData(thePlayer, "veiculoalreadyspawnado") == true then
		setTimer(function()
			setElementData(source, "veiculoalreadyspawnado", false) 
		end, 3000, 1)
	end
end

function setartempo(source)
			setElementData(source, "veiculoalreadyspawnado", false) 
end
addCommandHandler("fodasse", setartempo)

--------------------------------------------
--JOB--


Object_Caixa = {}
Marker_Entregar = {}
Blip_Entregar = {}


local Blip_Emprego = createBlipAttachedTo( markercarregar, 16 )
setBlipVisibleDistance(markercarregar, 150)

function Mesa_Caixa (source) 			
	local Emprego = getElementData ( source, "Emprego" )
	local Px, Py, Pz = getElementPosition( markercarregar )
	local Caixa = getElementData( source, "Caixa" )  
		if isElementWithinMarker(source, markercarregar) then
			if Caixa == false then 		
				if Emprego == "Carregador" then
					setPedAnimation( source, "CARRY", "liftup", 1.0, false )
					setTimer(function()
						if isElement( Object_Caixa[source] ) then destroyElement( Object_Caixa[source] ) end
						if isElement( Marker_Entregar[source] ) then destroyElement( Marker_Entregar[source] ) end
						if isElement( Blip_Entregar[source] ) then destroyElement( Blip_Entregar[source] ) end
						setElementData(source, "Recompensa", 0)
						setPedAnimation( source, nil )
						setElementData( source, "Caixa", true )
						toggleControl( source, "jump", false )
						toggleControl( source, "fire", false )
						toggleControl(source, "aim_weapon", false)
						setPedAnimation( source, "CARRY", "crry_prtial", 4.1, true, true, true )
						Object_Caixa[source] = createObject( 1271, Px, Py, Pz )
						Marker_Entregar[source] = createMarker (2787.84521, -2420.40527, 13.63365-1.1, "cylinder", 2.5, 16, 111, 231, 50)	
						Blip_Entregar[source] = createBlipAttachedTo( Marker_Entregar[source], 0 )				
						setElementVisibleTo ( Marker_Entregar[source], root, false )
						setElementVisibleTo ( Blip_Entregar[source], root, false )
						setElementVisibleTo ( Marker_Entregar[source], source, true )
						setElementVisibleTo ( Blip_Entregar[source], source, true )
						exports.bone_attach:attachElementToBone(Object_Caixa[source], source, 4, 0, 0.4, - 0.6, -90, 0, 0 )
					end, 1000, 1)
				end
			end
		end
	end
addCommandHandler("caixa", Mesa_Caixa)

function Fim_Emprego (source) 
	local Caixa = getElementData( source, "Caixa" )	
	local pay = math.random(100,200)
	local Recompensa = math.random(1, 35)
	if not isPedInVehicle ( source ) then 
		if isElementWithinMarker(source, Marker_Entregar[source]) then
			if Caixa == true then    
				setPedAnimation( source, "CARRY", "putdwn", 1.0, false, false, false, true )  
				setTimer(function()
					if isElement( Object_Caixa[source] ) then destroyElement( Object_Caixa[source] ) end
					if isElement( Marker_Entregar[source] ) then destroyElement( Marker_Entregar[source] ) end
					if isElement( Blip_Entregar[source] ) then destroyElement( Blip_Entregar[source] ) end
					setElementData( source, "Caixa", false )	
					toggleControl( source, "jump", true )
					toggleControl( source, "fire", true )
					toggleControl(source, "aim_weapon", true)
					setPedAnimation( source, "CARRY", "liftup", 0.0, false, false, false, false)
            		setElementData(source,"char:money", getElementData(source,"char:money") + pay)
            		setElementData(source,"Entregues", tonumber(getElementData(source,"Entregues") + 1))
					exports.Scripts_Dxmessages:outputDx ( source, "Você entregou a caixa e ganhou: "..getElementData(source, "Recompensa").."$", "success" )
				end, 1200, 1) 
			end
		end
	end
end	
addCommandHandler( "entregar", Fim_Emprego)


fds = createMarker (2796.03687, -2420.05981, 13.63165-1.1, "cylinder", 2.5, 16, 111, 231, 50)

function setardata(source)
	if getElementData( source, "Caixa" ) == true then
		setElementData( source, "Caixa", false )	
	end
end
addCommandHandler("a", setardata)

function aaaa(source)
	cona = tonumber(getElementData(source, "Entregues"))
   	if cona >= 1 then
   		outputDebugString(""..cona.."")
   	end
end
addEventHandler( "onMarkerHit", fds, aaaa )


addEventHandler( "onPlayerQuit", root,
  function()
	if isElement( Object_Caixa[source] ) then destroyElement( Object_Caixa[source] ) end
	if isElement( Marker_Entregar[source] ) then destroyElement( Marker_Entregar[source] ) end
	if isElement( Blip_Entregar[source] ) then destroyElement( Blip_Entregar[source] ) end
  end)
  
addEventHandler( "onPlayerWasted", root,
  function()
	if isElement( Object_Caixa[source] ) then destroyElement( Object_Caixa[source] ) end
	if isElement( Marker_Entregar[source] ) then destroyElement( Marker_Entregar[source] ) end
	if isElement( Blip_Entregar[source] ) then destroyElement( Blip_Entregar[source] ) end
	setElementData( source, "Caixa", false )	
	toggleControl( source, "jump", true )
	toggleControl( source, "fire", true )
	toggleControl(source, "aim_weapon", true)
  end)

 

Link to comment
11 hours ago, MesaDowN said:

1º- Quero que ao chegar no marker "Marker_Entregar[source]" , ele adicione +1 elementData.

Explique com detalhes, o que você quer dizer em adicionar +1 elementoData?

Para você adicionar +1 Element, basta seta-lo, utilizando setElementData(_,"Nome_do_Elemento", _)

11 hours ago, MesaDowN said:

2º Quero que quando o veículo saia dali, ele faça uma vericação se não tem nada naquele local e spawne outro veículo na mesma posição.

Crie um veiculo pelo editor de maps, e salve-o no local que você o deseja, é a melhor forma de fazer, ou terá que fazer por meio de script.

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