Jump to content

Tempo de espera de 3 segundos teleport


Recommended Posts

Olá quero por um tempo de espera com mensagem de 5 segundos nesses dois teleportes quem pode ajudar ❤️

local posicoes =
    {
        { 2488, -1670, 14 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)
end
addCommandHandler ( "cj", PosicaoPlayer  )
---
local posicoes =
    {
        { 324, -1779, 5 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)
end
addCommandHandler ( "praia", PosicaoPlayer  )
---

 

Link to comment
37 minutes ago, SkillZNT said:

Olá quero por um tempo de espera com mensagem de 5 segundos nesses dois teleportes quem pode ajudar ❤️


local posicoes =
    {
        { 2488, -1670, 14 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)
end
addCommandHandler ( "cj", PosicaoPlayer  )
---
local posicoes =
    {
        { 324, -1779, 5 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)
end
addCommandHandler ( "praia", PosicaoPlayer  )
---

 

local posicoes =
    {
        { 2488, -1670, 14 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
  setTimer(function()
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)
end, 5000, 1)
end
addCommandHandler ( "cj", PosicaoPlayer  )
---
local posicoes =
    {
        { 324, -1779, 5 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
setTimer(function()
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)
end, 5000, 1)
end
addCommandHandler ( "praia", PosicaoPlayer  )

 

Link to comment
7 hours ago, Hazardinho said:

local posicoes =
    {
        { 2488, -1670, 14 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
  setTimer(function()
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)
end, 5000, 1)
end
addCommandHandler ( "cj", PosicaoPlayer  )
---
local posicoes =
    {
        { 324, -1779, 5 },	
    }
	
function PosicaoPlayer ( thePlayer, command )
setTimer(function()
    local azar = math.random ( #posicoes )
	local veh = getPedOccupiedVehicle(thePlayer)
		if (veh) then
			setElementPosition(veh, unpack ( posicoes [ azar ] ) )
		else
			setElementPosition(thePlayer, unpack ( posicoes [ azar ] ) )
		end	
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF' .. getPlayerName(thePlayer) .. ' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)
end, 5000, 1)
end
addCommandHandler ( "praia", PosicaoPlayer  )

 

Eu testei não e bem isso e tipo assim o player so pode usar o comando dps de 5 segundos entendeu pra evitar flood se poder ajudar ❤️ plis

E tambem pq maioria dos players floodam ultilizando comando dos teleportes sabe ai por isso queria colocar uma mensagem com um tempo pra usar o comando denovo assim

Aguarde 5 segundos para ultilizar o teleporte novamente!

So queria resolver isso com um tempo de espera pra usar o comando dnv

Link to comment
local posicoesCJ =
{
   { 2488, -1670, 14 },	
};
	
local posicoesPraia =
{
   { 324, -1779, 5 },	
};
	
local segundos = 5 -- tempo em segundos
local tempo = {} -- tabela que salva o tempo do jogador.

function PosicaoPlayer ( jogador, comando )
	if (getTickCount() - tempo[jogador] or 0) >= segundos * 1000) then -- faz a contagem se já passou os 5 segundos para o jogador.
		local veh = getPedOccupiedVehicle(jogador)
		local nome = getPlayerName(jogador)
		if comando == "cj" then
			if (veh) then
				setElementPosition(veh, unpack(posicoesCJ[math.random(#posicoesCJ)]))
			else
				setElementPosition(jogador, unpack(posicoesCJ[math.random(#posicoesCJ )]))
			end
			tempo[jogador] = getTickCount()
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)
		elseif comando == "praia" then
			if (veh) then
				setElementPosition(veh, unpack(posicoesPraia[math.random( #posicoesPraia )]))
			else
				setElementPosition(jogador, unpack(posicoesPraia[math.random(#posicoesPraia)]))
			end	
			tempo[jogador] = getTickCount()
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)
		end
	else
		outputChatBox ('#FFFFFF[ #00FF00Anti-flood#FFFFFF ]: #FFFFFFAguarde Para utilizar o comando novamente!', jogador, 255, 255, 255, true)
	end
end
addCommandHandler("cj", PosicaoPlayer)
addCommandHandler("praia", PosicaoPlayer)

Obs: Não testado!

Ligue primeiro seu debug ( /debugscript 3) e depois inicie o resource! 7

Caso de algum erro só mandar aqui que irei consertar.

@SkillZNT

Link to comment
1 hour ago, Developer. said:

local posicoesCJ =
{
   { 2488, -1670, 14 },	
};
	
local posicoesPraia =
{
   { 324, -1779, 5 },	
};
	
local segundos = 5 -- tempo em segundos
local tempo = {} -- tabela que salva o tempo do jogador.

function PosicaoPlayer ( jogador, comando )
	if (getTickCount() - tempo[jogador] or 0) >= segundos * 1000) then -- faz a contagem se já passou os 5 segundos para o jogador.
		local veh = getPedOccupiedVehicle(jogador)
		local nome = getPlayerName(jogador)
		if comando == "cj" then
			if (veh) then
				setElementPosition(veh, unpack(posicoesCJ[math.random(#posicoesCJ)]))
			else
				setElementPosition(jogador, unpack(posicoesCJ[math.random(#posicoesCJ )]))
			end
			tempo[jogador] = getTickCount()
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)
		elseif comando == "praia" then
			if (veh) then
				setElementPosition(veh, unpack(posicoesPraia[math.random( #posicoesPraia )]))
			else
				setElementPosition(jogador, unpack(posicoesPraia[math.random(#posicoesPraia)]))
			end	
			tempo[jogador] = getTickCount()
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)
		end
	else
		outputChatBox ('#FFFFFF[ #00FF00Anti-flood#FFFFFF ]: #FFFFFFAguarde Para utilizar o comando novamente!', jogador, 255, 255, 255, true)
	end
end
addCommandHandler("cj", PosicaoPlayer)
addCommandHandler("praia", PosicaoPlayer)

Obs: Não testado!

Ligue primeiro seu debug ( /debugscript 3) e depois inicie o resource! 7

Caso de algum erro só mandar aqui que irei consertar.

@SkillZNT

Deu erro no debug como você disse

Link to comment

 


local posicoesCJ =
    {
        { 2488, -1670, 14 },	
    }
	
local posicoesPraia =
    {
        { 324, -1779, 5 },	
	}

local segundos = 5 -- tempo em segundos
local tempo = {} -- tabela que salva o tempo.

function PosicaoPlayer ( jogador, comando )
	if getTickCount() - (tempo[jogador] or 0) >= segundos * 1000 then -- faz a contagem se já passou os 5 segundos para o player.
		local veh = getPedOccupiedVehicle(jogador)
		local nome = getPlayerName(jogador)
		if comando == "cj" then
			if (veh) then
				setElementPosition(veh, unpack(posicoesCJ[math.random(#posicoesCJ)]))
			else
				setElementPosition(jogador, unpack(posicoesCJ[math.random(#posicoesCJ )]))
			end
			tempo[jogador] = getTickCount()
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)
		elseif comando == "praia" then
			if (veh) then
				setElementPosition(veh, unpack(posicoesPraia[math.random( #posicoesPraia )]))
			else
				setElementPosition(jogador, unpack(posicoesPraia[math.random(#posicoesPraia)]))
			end	
			tempo[jogador] = getTickCount()
			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)
		end
	else
		outputChatBox ('#FFFFFF[ #00FF00Anti-flood#FFFFFF ]: #FFFFFFAguarde Para utilizar o comando novamente!', jogador, 255, 255, 255, true)
	end
end
addCommandHandler("cj", PosicaoPlayer)
addCommandHandler("praia", PosicaoPlayer)

Testado!

Pronto, arrumado.

O erro estava nos Parênteses da linha 16

@SkillZNT

Edited by Developer.
Link to comment
48 minutes ago, Developer. said:

 


local posicoesCJ =    {        { 2488, -1670, 14 },	    }	local posicoesPraia =    {        { 324, -1779, 5 },		}local segundos = 5 -- tempo em segundoslocal tempo = {} -- tabela que salva o tempo.function PosicaoPlayer ( jogador, comando )	if getTickCount() - (tempo[jogador] or 0) >= segundos * 1000 then -- faz a contagem se já passou os 5 segundos para o player.		local veh = getPedOccupiedVehicle(jogador)		local nome = getPlayerName(jogador)		if comando == "cj" then			if (veh) then				setElementPosition(veh, unpack(posicoesCJ[math.random(#posicoesCJ)]))			else				setElementPosition(jogador, unpack(posicoesCJ[math.random(#posicoesCJ )]))			end			tempo[jogador] = getTickCount()			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Casa Do Cj #FFFFFF(#00FF00 /cj #FFFFFF)', root, 255, 255, 255, true)		elseif comando == "praia" then			if (veh) then				setElementPosition(veh, unpack(posicoesPraia[math.random( #posicoesPraia )]))			else				setElementPosition(jogador, unpack(posicoesPraia[math.random(#posicoesPraia)]))			end				tempo[jogador] = getTickCount()			outputChatBox ('#FFFFFF[ #00FF00Tele#FFFFFF ]: #FFFFFF'..nome..' #828282Foi Para A Praia #FFFFFF(#00FF00 /praia #FFFFFF)', root, 255, 255, 255, true)		end	else		outputChatBox ('#FFFFFF[ #00FF00Anti-flood#FFFFFF ]: #FFFFFFAguarde Para utilizar o comando novamente!', jogador, 255, 255, 255, true)	endendaddCommandHandler("cj", PosicaoPlayer)addCommandHandler("praia", PosicaoPlayer)

Testado!

Pronto, arrumado.

O erro estava nos Parênteses da linha 16

@SkillZNT



Ei quase esqueci sobre aquele script de algemar sabe ele ta com um erro no debug sim

Quando uso /a apareçe isso ai

 

Se poder ajudar tambem nessa parte kkkk sabe

Eu tentei ate hj arrumar kk so q ficava dando ums erros no debug as vezes pouco erro as vezes algums

esse aq e o seu q so apareçeu um erro no debug ao digitar o /a

Codigo sem alterar nada
apenas o setPedAnimationSpeed

 

function setPedAnimationSpeed(player,anim,speed)
    setPedAnimation(player,anim,speed)
end

function setCuffPlayer(player)
	setPedAnimation(player, nil)
	setPedAnimation(player,'ped', 'pass_Smoke_in_car', 0, true, true, true)
	setTimer(setPedAnimationSpeed,60,1,player, 'pass_Smoke_in_car', 0)
	local x, y, z = getElementPosition(player)
	local box = createObject(364, x, y, z)
	exports.bone_attach:attachElementToBone(box, player, 12, 0,0,0,   0,40,-10)
	setElementCollisionsEnabled(box, false)
	setElementData(player,'cuffOb', box)
	toggleControl(player, 'jump', false)
	setTimer(function(player)
		if getElementData(player,'cuff') and getElementData(player,'cuff') == true then
			toggleControl(player, 'fire', false)
		end
	end,60,0,player)
	toggleControl(player, 'crouch', false)
end

local corpACLS = { -- NOME DAS ACLS Q PODEM ALGEMAR UMA PESSOA!
	"BOPE",
	"PMRJ",
}

function cuff(hit,_,name)
	local player = getPlayerFromName(name)
	local x,y,z = getElementPosition(player)
    local x1,y1,z1 = getElementPosition(hit)
    if isPlayerPermission(hit) then -- FUNÇÃO UTIL, BASICAMENTE VERIFICA SE O POLICIAL (hit) ESTA DENTRO DE UMA DAS ACL'S BOPE OU PMRJ!
        if getDistanceBetweenPoints3D(x1,y1,z1,x,y,z) <= 20 then
            if not getElementData(player,'cuff') or getElementData(player,'cuff') ~= true then
                if isPedInVehicle(player) then
                    setControlState(player,'enter_exit',true)
                    setTimer(setCuffPlayer,2800,1,player)
                    setElementData(player,'cuff', true)
                else
                    setCuffPlayer(player)
                    setElementData(player,'cuff', true)
                end
                outputChatBox(' '..getPlayerName(hit)..'#ff0000 Algemou você',player,255,255,255,true)
            else
                removeElementData(player,'cuff')
                destroyElement(getElementData(player,'cuffOb'))
                removeElementData(player, 'cuff')
                toggleControl(player, 'jump', true)
                toggleControl(player, 'crouch', true)
                toggleControl(player, 'fire', true)
                setPedAnimation(player, 'ped', 'pass_Smoke_in_car', 0, false, false, false, false)
                outputChatBox(' '..getPlayerName(hit)..'#008800 Soltou suas algemas',player,255,255,255,true)
            end
        else
            outputChatBox("Você está longe demais!",hit,255,0,0,true)
        end
    end -- end do if ifPlayerPermission then
end
addCommandHandler('a',cuff)

addEventHandler('onPlayerQuit', root,function()
	if getElementData(source,'cuff') == true then
		destroyElement(getElementData(source,'cuffOb'))
		removeElementData(source, 'cuff')
	end
end)

addEventHandler('onPlayerWasted',root,function()
	if getElementData(source,'cuff') == true then
		destroyElement(getElementData(source,'cuffOb'))
		removeElementData(source, 'cuff')
	end
end)

addEventHandler('onVehicleStartEnter', getRootElement(),
function(player, seat)
	if getElementData(player,'cuff') == true then
		if seat ~= 0 then
			destroyElement(getElementData(player,'cuffOb'))
		else
			cancelEvent()
			outputChatBox('Você não pode dirigir você tem algemas!',player,255,0,0)
		end
	end
end)

setTimer(function()
	for _,player in ipairs(getElementsByType("player")) do
		if getElementData(player,'cuff') == true then
			if isPedInWater(player) then
				setTimer(function(player)
					if isPedInWater(player) then
					  killPed(player)
					end
				end,5000,1,player)
			end
		end
	end
end,1000,0)

addEventHandler('onVehicleExit', getRootElement(),
function(player, seat)
	if getElementData(player,'cuff') == true then
		setCuffPlayer(player)
	end
end)


-- ABAIXO UMA FUNÇÃO UTIL QUE FOI DEMONSTRADA por @MainSCR no seu outro post, deveria ter usado isto em vez da outra!

function isPlayerPermission(thePlayer) -- faz um loop das acls declaradas na tabela e verifica se a acl do jogador é uma das acls declarada na tabela
	if isElement(thePlayer) and getElementType(thePlayer) == "player" then 
		if isGuestAccount(getPlayerAccount(thePlayer)) then return end
		for _, group in ipairs(corpACLS) do
			if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup(group)) then
-- preste atenção acima,                     ("user."..Nome da Conta                              , qual a acl       ))
				return true
			end
		end
	end
	return false
end

 

Debugscript 3:

ERRO:algemas/server.Lua:33: attempt to compare boolean with number

Link to comment
20 minutes ago, Developer. said:

tem duas formas de vc arrumar esse erro.

1 - em vez de passar direito, atribua uma variável ao getDistanceBetweenPoints3D e depois faz a verificação:


local dist = getDistanceBetweenPoints3D(x1,y1,z1,x,y,z)	if isPlayerPermission(hit) then		if dist <= 20 then

2 - ou usar tonumber() no if:


        if tonumber(getDistanceBetweenPoints3D(x1,y1,z1,x,y,z)) <= 20 then

 

 

23 minutes ago, Developer. said:

tem duas formas de vc arrumar esse erro.

1 - em vez de passar direito, atribua uma variável ao getDistanceBetweenPoints3D e depois faz a verificação:


local dist = getDistanceBetweenPoints3D(x1,y1,z1,x,y,z)	if isPlayerPermission(hit) then		if dist <= 20 then

2 - ou usar tonumber() no if:


        if tonumber(getDistanceBetweenPoints3D(x1,y1,z1,x,y,z)) <= 20 then

 

function cuff(hit,_,name)
	local player = getPlayerFromName(name)
	local x,y,z = getElementPosition(player)
    local x1,y1,z1 = getElementPosition(hit)
    if isPlayerPermission(hit) then -- FUNÇÃO UTIL, BASICAMENTE VERIFICA SE O POLICIAL (hit) ESTA DENTRO DE UMA DAS ACL'S BOPE OU PMRJ!
        if tonumber(getDistanceBetweenPoints3D(x1,y1,z1,x,y,z)) <= 20 then
            if not getElementData(player,'cuff') or getElementData(player,'cuff') ~= true then
                if isPedInVehicle(player) then
                    setControlState(player,'enter_exit',true)
                    setTimer(setCuffPlayer,2800,1,player)
                    setElementData(player,'cuff', true)
                else
                    setCuffPlayer(player)
                    setElementData(player,'cuff', true)
                end
                outputChatBox(' '..getPlayerName(hit)..'#ff0000 Algemou você',player,255,255,255,true)
            else
                removeElementData(player,'cuff')
                destroyElement(getElementData(player,'cuffOb'))
                removeElementData(player, 'cuff')
                toggleControl(player, 'jump', true)
                toggleControl(player, 'crouch', true)
                toggleControl(player, 'fire', true)
                setPedAnimation(player, 'ped', 'pass_Smoke_in_car', 0, false, false, false, false)
                outputChatBox(' '..getPlayerName(hit)..'#008800 Soltou suas algemas',player,255,255,255,true)
            end
        else
            outputChatBox("Você está longe demais!",hit,255,0,0,true)
        end
    end -- end do if ifPlayerPermission then
end
addCommandHandler('a',cuff)

Assim?

Link to comment

Sim, a tbm recomendo você mudar aquele getPlayerFromName() por  getPlayerFromPartialName() 

isso muda a forma que vc tem q digitar exemplo se vc quiser me algemar com getPlayerFromName(), você teria que digitar /a eder

já com getPlayerFromPartialName()  você pode simplesmente digitar /a ede ou /a ed que a função já retorna o player.

se não me engano o Jonas^ mandou essa function no seu outro post, da uma procurada lá.

Link to comment
1 hour ago, Developer. said:

Sim, a tbm recomendo você mudar aquele getPlayerFromName() por  getPlayerFromPartialName() 

isso muda a forma que vc tem q digitar exemplo se vc quiser me algemar com getPlayerFromName(), você teria que digitar /a eder

já com getPlayerFromPartialName()  você pode simplesmente digitar /a ede ou /a ed que a função já retorna o player.

se não me engano o Jonas^ mandou essa function no seu outro post, da uma procurada lá.

Eu acho q errei alguma coisa no codigo :p

 

consegue dar uma arrumada não sei se coloquei algo de errado no codigo

 

function setPedAnimationSpeed(player,anim,speed)
    setPedAnimation(player,anim,speed)
end

function setCuffPlayer(player)
	setPedAnimation(player, nil)
	setPedAnimation(player,'ped', 'pass_Smoke_in_car', 0, true, true, true)
	setTimer(setPedAnimationSpeed,60,1,player, 'pass_Smoke_in_car', 0)
	local x, y, z = getElementPosition(player)
	local box = createObject(364, x, y, z)
	exports.bone_attach:attachElementToBone(box, player, 12, 0,0,0,   0,40,-10)
	setElementCollisionsEnabled(box, false)
	setElementData(player,'cuffOb', box)
	toggleControl(player, 'jump', false)
	setTimer(function(player)
		if getElementData(player,'cuff') and getElementData(player,'cuff') == true then
			toggleControl(player, 'fire', false)
		end
	end,60,0,player)
	toggleControl(player, 'crouch', false)
end

local corpACLS = { -- NOME DAS ACLS Q PODEM ALGEMAR UMA PESSOA!
	"BOPE",
	"PMRJ",
}

function cuff(hit,_,name)
	local player = getPlayerFromPartialName()
	local x,y,z = getElementPosition(player)
    local x1,y1,z1 = getElementPosition(hit)
    if isPlayerPermission(hit) then -- FUNÇÃO UTIL, BASICAMENTE VERIFICA SE O POLICIAL (hit) ESTA DENTRO DE UMA DAS ACL'S BOPE OU PMRJ!
        if tonumber(getDistanceBetweenPoints3D(x1,y1,z1,x,y,z)) <= 20 then
            if not getElementData(player,'cuff') or getElementData(player,'cuff') ~= true then
                if isPedInVehicle(player) then
                    setControlState(player,'enter_exit',true)
                    setTimer(setCuffPlayer,2800,1,player)
                    setElementData(player,'cuff', true)
                else
                    setCuffPlayer(player)
                    setElementData(player,'cuff', true)
                end
                outputChatBox(' '..getPlayerName(hit)..'#ff0000 Algemou você',player,255,255,255,true)
            else
                removeElementData(player,'cuff')
                destroyElement(getElementData(player,'cuffOb'))
                removeElementData(player, 'cuff')
                toggleControl(player, 'jump', true)
                toggleControl(player, 'crouch', true)
                toggleControl(player, 'fire', true)
                setPedAnimation(player, 'ped', 'pass_Smoke_in_car', 0, false, false, false, false)
                outputChatBox(' '..getPlayerName(hit)..'#008800 Soltou suas algemas',player,255,255,255,true)
            end
        else
            outputChatBox("Você está longe demais!",hit,255,0,0,true)
        end
    end -- end do if ifPlayerPermission then
end
addCommandHandler('a',cuff)

addEventHandler('onPlayerQuit', root,function()
	if getElementData(source,'cuff') == true then
		destroyElement(getElementData(source,'cuffOb'))
		removeElementData(source, 'cuff')
	end
end)

addEventHandler('onPlayerWasted',root,function()
	if getElementData(source,'cuff') == true then
		destroyElement(getElementData(source,'cuffOb'))
		removeElementData(source, 'cuff')
	end
end)

addEventHandler('onVehicleStartEnter', getRootElement(),
function(player, seat)
	if getElementData(player,'cuff') == true then
		if seat ~= 0 then
			destroyElement(getElementData(player,'cuffOb'))
		else
			cancelEvent()
			outputChatBox('Você não pode dirigir você tem algemas!',player,255,0,0)
		end
	end
end)

setTimer(function()
	for _,player in ipairs(getElementsByType("player")) do
		if getElementData(player,'cuff') == true then
			if isPedInWater(player) then
				setTimer(function(player)
					if isPedInWater(player) then
					  killPed(player)
					end
				end,5000,1,player)
			end
		end
	end
end,1000,0)

addEventHandler('onVehicleExit', getRootElement(),
function(player, seat)
	if getElementData(player,'cuff') == true then
		setCuffPlayer(player)
	end
end)


-- ABAIXO UMA FUNÇÃO UTIL QUE FOI DEMONSTRADA por @MainSCR no seu outro post, deveria ter usado isto em vez da outra!

function isPlayerPermission(thePlayer) -- faz um loop das acls declaradas na tabela e verifica se a acl do jogador é uma das acls declarada na tabela
	if isElement(thePlayer) and getElementType(thePlayer) == "player" then 
		if isGuestAccount(getPlayerAccount(thePlayer)) then return end
		for _, group in ipairs(corpACLS) do
			if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup(group)) then
-- preste atenção acima,                     ("user."..Nome da Conta                              , qual a acl       ))
				return true
			end
		end
	end
	return false
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...