Otavio Posted December 23, 2020 Share Posted December 23, 2020 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
HiroShi Posted December 23, 2020 Share Posted December 23, 2020 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 !! 1 Link to comment
Otavio Posted December 23, 2020 Author Share Posted December 23, 2020 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
HiroShi Posted December 23, 2020 Share Posted December 23, 2020 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) 1 Link to comment
Otavio Posted December 23, 2020 Author Share Posted December 23, 2020 Ainda não possui nenhum valor Linha 35 do script que você me mandou Attempt to call global 'showtime' (a nil value) Link to comment
HiroShi Posted December 23, 2020 Share Posted December 23, 2020 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 ! 1 Link to comment
Otavio Posted December 23, 2020 Author Share Posted December 23, 2020 Eu adicionei porém não foi Agora foi amigo, agradeço demais por ter me ajudado!! 1 Link to comment
HiroShi Posted December 24, 2020 Share Posted December 24, 2020 On 23/12/2020 at 11:51, Otavio said: Eu adicionei porém não foi Agora foi amigo, agradeço demais por ter me ajudado!! tmj Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now