Jump to content

Problema com teles


Recommended Posts

Olá ontem entrou ums caras pra aproveitar de uma falha com um resource de teleporte meu que eu não sei resolver

 

Eu queria por um tempo de espera de 5 segundos pro player usar o comando novamente com mensagem 

 

O script não e meu mais se alguem poder resolver desejo um obrigado por que eu to sofrendo com esse problema!

 

Essa msg que queria por com o tempo pra usar comando novamente apos o player usar

#FF0000Você precisa aguardar 5 segundos para ultilizar o teleporte novamente!

Nesses dois teletransportes

 

 

local posicoes =
    {
        { -1461.9892578125,1491.4815673828,8.2578125 },	
    }
	
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 O Aeroporto De SF #FFFFFF(#00FF00 /sf #FFFFFF)', root, 255, 255, 255, true)
end
addCommandHandler ( "sf", PosicaoPlayer  )
---
local posicoes =
    {
        { -300, 1533, 76 },	
    }
	
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 pista de Drift #FFFFFF(#00FF00 /drift #FFFFFF)', root, 255, 255, 255, true)
end
addCommandHandler ( "drift", PosicaoPlayer  )
---

 

Link to comment
  • Other Languages Moderators

Não há necessidade de math.random se você está usando apenas 1 coordenada para cada teleporte.

Faça assim:

local posicoes = {
    ["sf"] = {-1462, 1491.5, 8.26},
    ["drift"] = {-300, 1533, 76},
    -- ["comando"] = {x, y, z}, -- Adicione outros teles aqui.
}

local spamTimer = {}

function teleporte (thePlayer, cmd) -- cmd = "sf" ou "drift" dependendo do comando utilizado.
    if (isTimer (spamTimer[thePlayer])) then return outputChatBox ("Aguarde 2 segundos para poder teleportar novamente.", thePlayer, 255, 0, 0) end -- Se o jogador já executou algum teleporte recentemente, manda isso pra ele e cancela a função.
    if (posicoes[cmd]) then -- Se existe esse comando na lista de posições, então:
        if (getPedOccupiedVehicle(thePlayer)) then -- Se o jogador que executou o comando estiver dentro de um veículo, então:
            setElementPosition (getPedOccupiedVehicle(thePlayer), unpack (posicoes[cmd])) -- Teleporta o veículo para a posição x, y, z que estão na posição [cmd] da lista.
        else -- Se o jogador não estiver em um veículo, então:
            setElementPosition (thePlayer, unpack (posicoes[cmd])) -- Teleporta o jogador para a posição x, y, z que estão na posição [cmd] da lista.
        end
        spamTimer[thePlayer] = setTimer (function () -- Inicia um timer de 2 segundos, enquanto esse timer estiver ativo, nenhum teleporte funcionará para este jogador.
            spamTimer[thePlayer] = nil -- Depois de 2 segundos, finaliza o timer e anula a variável do spamTimer desse jogador.
        end, 2000, 1)
        if (cmd == "sf") then -- Manda uma mensagem diferente no chat dependendo do comando utilizado.
            outputChatBox ("[ #00FF00Tele#FFFFFF ]: " .. getPlayerName(thePlayer) .. " #828282Foi Para O Aeroporto De SF #FFFFFF(#00FF00 /sf #FFFFFF)", root, 255, 255, 255, true)
        elseif (cmd == "drift") then
            outputChatBox ("[ #00FF00Tele#FFFFFF ]: " .. getPlayerName(thePlayer) .. " #828282Foi Para pista de Drift #FFFFFF(#00FF00 /drift #FFFFFF)", root, 255, 255, 255, true)
        -- elseif (cmd == "comando") then -- Adicione outras mensagens de teles aqui.
            -- outputChatBox ("[ #00FF00Tele#FFFFFF ]: " .. getPlayerName(thePlayer) .. " #828282Foi Para algum lugar #FFFFFF(#00FF00 /comando #FFFFFF)", root, 255, 255, 255, true)
        end
    end
end
addCommandHandler ("sf", teleporte)
addCommandHandler ("drift", teleporte)
-- addCommandHandler ("comando", teleporte) -- Adicione outros teles aqui.

function quitTimer ()
    if (isTimer (spamTimer[source])) then -- Se o jogador que saiu do servidor tinha um timer pendente, então:
        killTimer (spamTimer[source]) -- Cancela o timer de spam dele.
        spamTimer[source] = nil --  Limpa a variável do timer dele.
    end
end
addEventHandler ("onPlayerQuit", root, quitTimer) -- Chama essa função quando um jogador desconecta do servidor.

 

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