Jump to content

[Help] someone can help me


trux_yt

Recommended Posts

How can I do that if the vehicle touched the model with id 2892, execute the event?

 

addEventHandler("onClientColShapeHit", root, function(hit,dim)
  if dim and getElementType(hit) == 'vehicle' then
    if getElementModel(hit) == 2892 then
        triggerServerEvent("pierceWheel", vehicle)
    end
  end
end)

 

Link to comment
  • Scripting Moderators

As long as it have collision it should be retrievable with https://wiki.multitheftauto.com/wiki/OnClientVehicleCollision
With either hitElement or model parameter. However i think that's not a case for stinger - which you are trying to do i guess?
Have a look at this resource which might help you: https://community.multitheftauto.com/index.php?p=resources&s=details&id=125

Edited by srslyyyy
Link to comment
--create spikes
registerEvent("createSpike", root, function(id, data)
	createdSpike[id] = {} -- OID: 2892
	
	createdSpike[id].object = createObject(data.objectId, data.posX, data.posY, data.posZ, 0, 0, data.rotZ)
    local x, y, z = getElementPosition( createdSpike[id].object ) -- get vehicle position
	local a = getElementRotation( createdSpike[id].object ) -- get player facing angle
    x = x + math.sin( math.rad(a) ) * 4
		y = y - math.cos( math.rad(a) ) * 4
	theColShapes = createColRectangle( (x - 2.0), (y - 2.0), 4.0, 4.0 ) -- set a colshape to check when a car hits the stinger
	setElementData( theColShapes, "amistinger", "yesplz" ) -- set the colshape as a stinger colshape
	if isElement(sound) then
		stopSound(sound)
		
	end
	sound = playSound3D("spike.wav", data.posX, data.posY, data.posZ + 0.1, false)
	print(getSoundLength(sound), getSoundLength(sound) * 1000)

	initAnimation("spikeAnim" .. id	, false, {0, 0, 0}, {1, 0, 0}, 2450, "Linear", function(id, data)
		local rotated_x1, rotated_y1 = rotateAround(data.rotZ, -spikeDetails[data.objectId].width/ 2, -spikeDetails[data.objectId].length / 2)
		local rotated_x2, rotated_y2 = rotateAround(data.rotZ, spikeDetails[data.objectId].width  / 2, -spikeDetails[data.objectId].length / 2)
		local rotated_x3, rotated_y3 = rotateAround(data.rotZ, spikeDetails[data.objectId].width  / 2, spikeDetails[data.objectId].length / 2)
		local rotated_x4, rotated_y4 = rotateAround(data.rotZ, -spikeDetails[data.objectId].width  / 2, spikeDetails[data.objectId].length  / 2)

		createdSpike[id].col = createColPolygon(
			data.posX, data.posY, -- Center

			data.posX + rotated_x1,
			data.posY + rotated_y1,

			data.posX + rotated_x2,
			data.posY + rotated_y2,

			data.posX + rotated_x3,
			data.posY + rotated_y3,

			data.posX + rotated_x4,
			data.posY + rotated_y4
		)

		if isElement(sound) then
			stopSound(sound)
		end
	end, {id, data})
end)

--wheels
addEventHandler("onClientColShapeHit", root, function(vehicle, dimMatch)
	if vehicle and getElementType(vehicle) == "vehicle" and getElementData( source, "amistinger" ) == "yesplz" then
		triggerServerEvent("pierceWheel", vehicle)
	end
end)

the wheels puncture in only one corner

 

Edited by trux_yt
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...