Jump to content

ERRO DEBUGSCRIPT 3


Recommended Posts

Olá, estou mais uma vez aqui para alguém poder me ajudar, Lord Henry como sempre humilde me ajudou com um script, e eu fiz umas mudanças nele porém ele está com erro e queria uma ajuda1 o erro é: 
"attempt to call global 'showTime' (a nil value)"

Está é a linha que possui o erro: 
 

local horario = showTime()

E esté é o valor que eu dei para showTime: 
 

function showtime() 
	local time = getRealTime()
	local hours = time.hour
	local minutes = time.minute
	local seconds = time.second
	if (hours < 10) then
		hours = "0"..hours
	end
	if (minutes < 10) then
		minutes = "0"..minutes
	end
	if (seconds < 10) then
		seconds = "0"..seconds
	end
	return hours..":"..minutes..":"..seconds
end

 

Link to comment
1 minute ago, Otavio said:

Olá, estou mais uma vez aqui para alguém poder me ajudar, Lord Henry como sempre humilde me ajudou com um script, e eu fiz umas mudanças nele porém ele está com erro e queria uma ajuda1 o erro é: 
"attempt to call global 'showTime' (a nil value)"

Está é a linha que possui o erro: 
 


local horario = showTime()

E esté é o valor que eu dei para showTime: 
 


function showtime() 
	local time = getRealTime()
	local hours = time.hour
	local minutes = time.minute
	local seconds = time.second
	if (hours < 10) then
		hours = "0"..hours
	end
	if (minutes < 10) then
		minutes = "0"..minutes
	end
	if (seconds < 10) then
		seconds = "0"..seconds
	end
	return hours..":"..minutes..":"..seconds
end

 

bote a 'local horario = showTime', abaixo da função !!

  • Thanks 1
Link to comment

Coloquei a baixo da função porém não foi

function showtime() 
	local time = getRealTime()
	local hours = time.hour
	local minutes = time.minute
	local seconds = time.second
	if (hours < 10) then
		hours = "0"..hours
	end
	if (minutes < 10) then
		minutes = "0"..minutes
	end
	if (seconds < 10) then
		seconds = "0"..seconds
	end
	return hours..":"..minutes..":"..seconds
end


function ptriniciar(thePlayer, cmd, state)
    local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policial" ) ) then
    if (state == "iniciar" or state == "finalizar") then -- Verifica se o comando é seguido por um parâmetro válido.
        local nameOfPerson = getPlayerName (thePlayer) -- Obtém o nick de quem executou o comando.
	local horario = showTime()
        if (fileExists ("logPTR.txt")) then -- Se já existe um arquivo de texto com este nome neste resource, então:
            newFile = fileOpen ("logPTR.txt") -- Abre o arquivo para poder editá-lo.
            fileSetPos (newFile, fileGetSize (newFile)) -- Coloca o cursor de escrita no fim do arquivo, caso contrário ele vai começar a escrever no começo dele, antes do que já estiver escrito no arquivo.
            if (state == "iniciar") then -- Se o parâmetro que o jogador usou após o comando foi "iniciar" então:
                outputChatBox ("Patrulha iniciada.", thePlayer) -- Apenas pra saber q o comando funcionou, normalmente teria as verificações antes de permissões e se já está em patrulha.
                fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Iniciou sua patrulha.\n") -- Escreve isso no documento. O \n pula para a linha seguinte após a mensagem.
            elseif (state == "finalizar") then
                outputChatBox ("Patrulha finalizada.", thePlayer)
                fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Finalizou sua patrulha.\n")
            end
            fileClose (newFile) -- Para todo fileOpen ou fileCreate, é necessário um fileClose pois enquanto arquivos estiverem abertos, eles podem ser corrompidos e os dados serão perdidos.
        else -- Se o arquivo ainda não existe, então:
            newFile = fileCreate ("logPTR.txt") -- Cria o arquivo de texto dentro deste resource e abre ele. (se já existisse um arquivo com esse nome, substituiria por um novo em branco)
            if (newFile) then -- Se conseguiu criar o arquivo, então: (as vezes pode dar erro de permissão no servidor, então use isso para evitar erros.)
                fileSetPos (newFile, fileGetSize (newFile))
                if (state == "iniciar") then
                    outputChatBox ("Patrulha iniciada.", thePlayer)
                    fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Iniciou sua patrulha.\n")
                elseif (state == "finalizar") then
                    outputChatBox ("Patrulha finalizada.", thePlayer)
                    fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Finalizou sua patrulha.\n")
                end
                fileClose (newFile)
            else -- Se não conseguiu criar o arquivo, então:
                debug ("ERRO: Impossivel criar arquivo 'logPTR.txt' no servidor.")
            end
        end
    else -- Se não usou nenhum parâmetro após o comando ou então usou um parâmetro incorreto, então:
        outputChatBox ("Sintaxe: /ptr <iniciar / finalizar>", thePlayer, 255, 255, 0)
       end
    end
end
addCommandHandler("ptr", ptriniciar)

 

Link to comment
3 minutes ago, Otavio said:

Coloquei a baixo da função porém não foi


function showtime() 
	local time = getRealTime()
	local hours = time.hour
	local minutes = time.minute
	local seconds = time.second
	if (hours < 10) then
		hours = "0"..hours
	end
	if (minutes < 10) then
		minutes = "0"..minutes
	end
	if (seconds < 10) then
		seconds = "0"..seconds
	end
	return hours..":"..minutes..":"..seconds
end


function ptriniciar(thePlayer, cmd, state)
    local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policial" ) ) then
    if (state == "iniciar" or state == "finalizar") then -- Verifica se o comando é seguido por um parâmetro válido.
        local nameOfPerson = getPlayerName (thePlayer) -- Obtém o nick de quem executou o comando.
	local horario = showTime()
        if (fileExists ("logPTR.txt")) then -- Se já existe um arquivo de texto com este nome neste resource, então:
            newFile = fileOpen ("logPTR.txt") -- Abre o arquivo para poder editá-lo.
            fileSetPos (newFile, fileGetSize (newFile)) -- Coloca o cursor de escrita no fim do arquivo, caso contrário ele vai começar a escrever no começo dele, antes do que já estiver escrito no arquivo.
            if (state == "iniciar") then -- Se o parâmetro que o jogador usou após o comando foi "iniciar" então:
                outputChatBox ("Patrulha iniciada.", thePlayer) -- Apenas pra saber q o comando funcionou, normalmente teria as verificações antes de permissões e se já está em patrulha.
                fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Iniciou sua patrulha.\n") -- Escreve isso no documento. O \n pula para a linha seguinte após a mensagem.
            elseif (state == "finalizar") then
                outputChatBox ("Patrulha finalizada.", thePlayer)
                fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Finalizou sua patrulha.\n")
            end
            fileClose (newFile) -- Para todo fileOpen ou fileCreate, é necessário um fileClose pois enquanto arquivos estiverem abertos, eles podem ser corrompidos e os dados serão perdidos.
        else -- Se o arquivo ainda não existe, então:
            newFile = fileCreate ("logPTR.txt") -- Cria o arquivo de texto dentro deste resource e abre ele. (se já existisse um arquivo com esse nome, substituiria por um novo em branco)
            if (newFile) then -- Se conseguiu criar o arquivo, então: (as vezes pode dar erro de permissão no servidor, então use isso para evitar erros.)
                fileSetPos (newFile, fileGetSize (newFile))
                if (state == "iniciar") then
                    outputChatBox ("Patrulha iniciada.", thePlayer)
                    fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Iniciou sua patrulha.\n")
                elseif (state == "finalizar") then
                    outputChatBox ("Patrulha finalizada.", thePlayer)
                    fileWrite (newFile, "["..horario.."] "..nameOfPerson.." Finalizou sua patrulha.\n")
                end
                fileClose (newFile)
            else -- Se não conseguiu criar o arquivo, então:
                debug ("ERRO: Impossivel criar arquivo 'logPTR.txt' no servidor.")
            end
        end
    else -- Se não usou nenhum parâmetro após o comando ou então usou um parâmetro incorreto, então:
        outputChatBox ("Sintaxe: /ptr <iniciar / finalizar>", thePlayer, 255, 255, 0)
       end
    end
end
addCommandHandler("ptr", ptriniciar)

 

tente assim:

 

--https://forum.multitheftauto.com/forum/127-programação-em-lua/page/2/

function showtime (TimeType)
	local time = getRealTime()
	local hours = time.hour
	local minutes = time.minute
	local seconds = time.second
	-- Make sure to add a 0 to the front of single digits.
	if (hours < 10) then
		hours = "0"..hours
	end
	if (minutes < 10) then
		minutes = "0"..minutes
	end
	if (seconds < 10) then
		seconds = "0"..seconds
	end
	if TimeType == 'horas' then
		return hours
	elseif TimeType == 'minutos' then
		return minutes
	elseif TimeType == 'segundos' then
		return minutes
	end
end

function ptriniciar(thePlayer, cmd, state)
    local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policial" ) ) then
    if (state == "iniciar" or state == "finalizar") then -- Verifica se o comando é seguido por um parâmetro válido.
        local nameOfPerson = getPlayerName (thePlayer) -- Obtém o nick de quem executou o comando.
        if (fileExists ("logPTR.txt")) then -- Se já existe um arquivo de texto com este nome neste resource, então:
            newFile = fileOpen ("logPTR.txt") -- Abre o arquivo para poder editá-lo.
            fileSetPos (newFile, fileGetSize (newFile)) -- Coloca o cursor de escrita no fim do arquivo, caso contrário ele vai começar a escrever no começo dele, antes do que já estiver escrito no arquivo.
            if (state == "iniciar") then -- Se o parâmetro que o jogador usou após o comando foi "iniciar" então:
                outputChatBox ("Patrulha iniciada.", thePlayer) -- Apenas pra saber q o comando funcionou, normalmente teria as verificações antes de permissões e se já está em patrulha.
                fileWrite (newFile, "["..showTime('horas')..":"..showTime('minutos').."] "..nameOfPerson.." Iniciou sua patrulha.\n") -- Escreve isso no documento. O \n pula para a linha seguinte após a mensagem.
            elseif (state == "finalizar") then
                outputChatBox ("Patrulha finalizada.", thePlayer)
                fileWrite (newFile, "["..showTime('horas')..":"..showTime('minutos').."] "..nameOfPerson.." Finalizou sua patrulha.\n")
            end
            fileClose (newFile) -- Para todo fileOpen ou fileCreate, é necessário um fileClose pois enquanto arquivos estiverem abertos, eles podem ser corrompidos e os dados serão perdidos.
        else -- Se o arquivo ainda não existe, então:
            newFile = fileCreate ("logPTR.txt") -- Cria o arquivo de texto dentro deste resource e abre ele. (se já existisse um arquivo com esse nome, substituiria por um novo em branco)
            if (newFile) then -- Se conseguiu criar o arquivo, então: (as vezes pode dar erro de permissão no servidor, então use isso para evitar erros.)
                fileSetPos (newFile, fileGetSize (newFile))
                if (state == "iniciar") then
                    outputChatBox ("Patrulha iniciada.", thePlayer)
                    fileWrite (newFile, "["..showTime('horas')..":"..showTime('minutos').."] "..nameOfPerson.." Iniciou sua patrulha.\n")
                elseif (state == "finalizar") then
                    outputChatBox ("Patrulha finalizada.", thePlayer)
                    fileWrite (newFile, "["..showTime('horas')..":"..showTime('minutos').."] "..nameOfPerson.." Finalizou sua patrulha.\n")
                end
                fileClose (newFile)
            else -- Se não conseguiu criar o arquivo, então:
                debug ("ERRO: Impossivel criar arquivo 'logPTR.txt' no servidor.")
            end
        end
    else -- Se não usou nenhum parâmetro após o comando ou então usou um parâmetro incorreto, então:
        outputChatBox ("Sintaxe: /ptr <iniciar / finalizar>", thePlayer, 255, 255, 0)
       end
    end
end
addCommandHandler("ptr", ptriniciar)

 

  • Thanks 1
Link to comment
1 minute ago, Otavio said:

Ainda não possui nenhum valor

 Linha 35 do script que você me mandou Attempt to call global 'showtime' (a nil value)

function showTime (TimeType)
	local time = getRealTime()
	local hours = time.hour
	local minutes = time.minute
	local seconds = time.second
	-- Make sure to add a 0 to the front of single digits.
	if (hours < 10) then
		hours = "0"..hours
	end
	if (minutes < 10) then
		minutes = "0"..minutes
	end
	if (seconds < 10) then
		seconds = "0"..seconds
	end
	if TimeType == 'horas' then
		return hours
	elseif TimeType == 'minutos' then
		return minutes
	elseif TimeType == 'segundos' then
		return minutes
	end
end

bote isso !

  • Thanks 1
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...