Jump to content

sistema trancar somente pelo dono, bug de entrar na moto mesmo trancada


Recommended Posts

Posted (edited)

boa noite amigos, estou com um problema que não estou conseguindo cancelar para o player não entrar numa bike trancada

client:

--[[

---ACESSE: https://vikingsmodsmta.blogspot.com/

--]]

local types = {
	["Automobile"] = true,
	["Bike"] = true,
	["Plane"] = true,
	["Helicopter"] = true,
	["Boat"] = true,
	["Train"] = true,
	["Monster Truck"] = true,
	["Quad"] = true
}


function playSounds(sounds, bool)
	if not bool then bool = false end
	if sounds == "ov" then
		beltSound = playSound("files/".. sounds ..".mp3", bool)
	else
	    playSound("files/".. sounds ..".mp3", bool)
	end
end

function processLockUnlock(vehicle)
local locked = isVehicleLocked(vehicle)
	if isPedInVehicle(localPlayer) and getElementData(vehicle, "Owner") == localPlayer then
	playSounds("lockin")
	elseif locked and getElementData(vehicle, "Owner") == localPlayer then 
	playSounds("lockout")
	end
	if locked and getElementData(vehicle, "Owner") == localPlayer then
	triggerServerEvent("vehicleLock", localPlayer,localPlayer, vehicle, false)
	outputChatBox("#1066E7[B9R - Veiculo]: #FFFFFFVeiculo destrancado!", 255, 255, 255, true)
	elseif not locked and getElementData(vehicle, "Owner") == localPlayer then 
	triggerServerEvent("vehicleLock", localPlayer,localPlayer, vehicle, true)
	outputChatBox("#1066E7[B9R - Veiculo]: #FFFFFFVeiculo trancado!", 255, 255, 255, true)
	end
end

function setVehicleLockState() --Função trancar o carro
	if klikkTimer then return end
	if isTimer(klikkTimerRun) then return end
	klikkTimer = true
	klikkTimerRun = setTimer(function()
		klikkTimer = false
	end,1000,1)
	local vehicle = getPedOccupiedVehicle ( localPlayer )
	if vehicle and getElementData(vehicle, "Owner") == localPlayer then
		processLockUnlock(vehicle)
	else
		local int2 = getElementInterior(localPlayer)
		local dim2 = getElementDimension(localPlayer)
		local mx,my,mz = getElementPosition(localPlayer)
			for k,v in ipairs(getElementsByType("vehicle")) do
				local x,y,z = getElementPosition(v)
				local int = getElementInterior(v)
				local dim = getElementDimension(v)
				local dist = getDistanceBetweenPoints3D(x,y,z,mx,my,mz)
				if dist <= 10 and int2 == int and dim2 == dim then
					processLockUnlock(v)
					return
				end
			end
	end
end
bindKey("l", "down", setVehicleLockState)

addEventHandler("onClientPlayerVehicleEnter", localPlayer, function(vehicle, seat)
	if source == localPlayer then
		local vehicle = getPedOccupiedVehicle(localPlayer)		
		if getVehicleType(getPedOccupiedVehicle(localPlayer)) == "Bike" and locked then
			cancelEvent()
		end
	end
end)

source:

addEvent("vehicleLock",true)
addEventHandler("vehicleLock",getRootElement(),function(player,veh,value)
	setVehicleLocked(veh, value)
	veh:setData("veh:status", value)
end)

function vehicleStartExit(thePlayer, seat, jacked)
	if isVehicleLocked(getPedOccupiedVehicle(thePlayer)) then
		outputChatBox("#FFFFFF O seu veículo está fechado!", thePlayer, 255, 255, 255, true)
		cancelEvent()
	end

	if getElementData(thePlayer, "isFuelling") then 
		cancelEvent()
	elseif getVehicleType(getPedOccupiedVehicle(localPlayer)) == "Bike" and locked then
		cancelEvent()
	end
end
addEventHandler("onVehicleStartExit",getRootElement(),vehicleStartExit)

 

 

tentei cancelar o evento ao tenta entrar numa moto trancada, mas não esta dando certo, no demais esta tudo ok

Edited by Looktovask
  • Looktovask changed the title to sistema trancar somente pelo dono, bug de entrar na moto mesmo trancada
  • Moderators
Posted (edited)
addEventHandler ("onClientVehicleStartEnter", root, function (thePlayer)
    if (thePlayer == localPlayer) then
        if (isVehicleLocked (source)) then
            outputChatBox ("Veículo trancado.", 255, 0, 0)
            cancelEvent()
        end
    end
end)

 

Edited by Lord Henry
  • Thanks 1

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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